![](/img/trans.png)
[英]InvalidArgumentError: Matrix size-incompatible: In[0]: [32,21], In[1]: [128,1]
[英]Tensorflow InvalidArgumentError Matrix size incompatible
當我啟動簡單的神經網絡時,出現錯誤。 順便說一句,代碼應該輸出測試數組的第一個數字。
還有其他錯誤(有一個與數據的dtype有關的錯誤)。
import tensorflow as tf
import numpy as np
from tensorflow import keras
data = np.array([[0, 1, 1], [0, 0, 1], [1, 1, 1]])
labels = np.array([0, 0, 1])
data.dtype = float
print(data.dtype)
model = keras.Sequential([
keras.layers.Dense(3, activation=tf.nn.relu),
keras.layers.Dense(2, activation=tf.nn.softmax)])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(data, labels)
prediction = model.predict([0, 1, 0])
print(prediction)
我收到此錯誤:
tensorflow.python.framework.errors_impl.InvalidArgumentError: Matrix size-incompatible: In[0]: [3,1], In[1]: [3,3]
[[{{node sequential/dense/Relu}}]]
由於以下行,您遇到了以上錯誤:
prediction = model.predict([0, 1, 0])
您要傳遞的list
應該是一個numpy數組,形狀為Nx3
,其中N
基本上是批處理大小,可以為1、2等。在這種情況下,它將為1
。
為了使其正確,請將其更改為
prediction = model.predict(np.expand_dims(np.array([0, 1, 0], dtype=np.float32), 0))
要么
prediction = model.predict(np.array([[0, 1, 0]], dtype=np.float32))
並且,將data.dtype = float
更改為data.dtype = np.float32
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.