簡體   English   中英

在使用Tensorflow服務提供Keras構建的Tensorflow模型時,連接層出現錯誤

[英]Error with Concatenation layer when serving Keras-built Tensorflow model with Tensorflow Serving

嘗試在張量流服務中調用特定模型的預測時出現奇怪的錯誤:

grpc.framework.interfaces.face.face.AbortionError: 
AbortionError(code=StatusCode.INVALID_ARGUMENT, details="ConcatOp : Expected 
concatenating dimensions in the range [-1, 1), but got 1
 [[Node: lys_conc/concat = ConcatV2[N=4, T=DT_FLOAT, Tidx=DT_INT32, _device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_lys_in_0_4, _arg_lyb_in_0_0, flatten_1/Reshape, batch_normalization_2/batchnorm_1/add_1, lyt_conc/concat/axis)]]")

背景:我設置了一個張量流服務容器,並成功地將一些模型移入並檢查是否可以得到客戶端響應(可以)。

按照這篇文章的答案我通過在keras中構建和訓練模型,然后將其導出並加載到tf-serving中來制作模型。

發生故障的節點旨在連接4個源(2個輸入,1個扁平化嵌入和1個輟學輸出)。 退出過程已被導出過程刪除-這就是為什么我們在那里看到(先前的)batchnorm的原因。

其他要點:

  • 我有另一個模型,它只有兩個輸入(一個嵌入+一個dropout)具有類似的效果,可以在同一個tf服務實例上正常工作。
  • 在Keras中,我沒有為concat指定軸,但是在def圖中(導出之前-參見下文),我可以看到它默認(正確)為1。
  • 我注意到錯誤中引用的axis變量不是屬於此concat層(lyt而不是lys)的變量。 但是被引用的那個也應該設置為1。我想知道這是否與錯誤有關,或者僅僅是在導出過程中發生了一些小的優化。

相關圖定義:

node {
  name: "lys_conc/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "lys_conc/concat"
  op: "ConcatV2"
  input: "lys_in"
  input: "lyb_in"
  input: "flatten_1/Reshape"
  input: "dropout_2/Identity"
  input: "lys_conc/concat/axis"
  attr {
    key: "N"
    value {
      i: 4
    }
  }
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}

任何幫助或建議調試表示贊賞!

首先,將張量流服務和數據輸入格式中的潛在問題與預測本身分開是一個好主意。最有可能存在輸入維問題,以便在嵌入嵌入時引發錯誤。

嘗試從導出的​​模型創建一個tensorflow預測器對象,並查看是否可以從預測中獲得有效輸出

from tensorflow.contrib import predictor
predictor_obj = predictor.from_saved_model(export_dir)
y = predictor_obj(inputs_to_model)

如果運行成功,則您的輸入應具有正確的尺寸。 確保您嘗試批輸入以及單輸入)

如果失敗,則可能需要重塑輸入

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM