[英]How do I feed a tensor in Keras model using a numpy array values?
我試圖用 numpy 數組值輸入 keras model 張量。 但是張量是 4D,數組是 3D。 如何將這個 3D numpy 數組(128、128、3)轉換為 4D(?、128、128、3)張量?
您可以使用 numpy arrays 作為 keras 模型的輸入。 這取決於你的 model,但通常第一個維度是樣本數,最后一個維度是 1。
假設您有 1000 個樣本,每個樣本都有一個形狀數組 (128, 128, 3)。 您可以使用 np.stack 組合 arrays。 這是一個簡化的示例:
a=np.array([[0,1,2],[3,4,5]])
b=np.array([[6,7,8],[9,10,11]])
c=np.stack((a,b)) #shape (2,2,3) with the first 2 representing the number of samples
如果您想重塑數組以將 1 作為附加的最終維度(例如,將形狀從 (1000, 128, 128, 3) 更改為 (1000, 128, 128, 3, 1)),您可以執行以下操作:
X_train = X_train.reshape(X_train.shape[0], X_train.shape[1], \
X_train.shape[2], X_train.shape[3], 1)
然后可以將其傳遞給 model。 如果您有一個要求將張量傳遞給它的 model,您可以將數組轉換為張量。 在 Tensorflow 中,可以使用 tf.convert_to_tensor-https://www.tensorflow.org/api_docs/python/tf來完成
只需使用np.expand_dims
擴展第一個維度。 4D 張量意味着您有一批具有 3 個通道的圖像。 由於您只有一個圖像,因此將其添加到數組中並將其提供給 model 或使用np.expand_dims(image_ref, axis=0)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.