簡體   English   中英

如何使用 numpy 數組值在 Keras model 中輸入張量?

[英]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.

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