簡體   English   中英

Tensorflow InvalidArgumentError矩陣大小不兼容

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

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