Keras 不兼容的形状 NN
Keras incompatible shapes NN
所以我有这个神经网络,我正在提供形状为:
的示例“X”和标签“Y”
X.shape = (10,10,2)
Y.shape = (10,10,2)
模型代码如下:
import tensorflow as tf
from convert import process
import numpy as np
X, Y, rate = process('songs/song1.wav')
X = np.array(X[:10])
Y = np.array(Y[:10])
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(128))
model.add(tf.keras.layers.Dense(128))
model.add(tf.keras.layers.Dense(20))
model.compile(optimizer='adam', loss='categorical_crossentropy')
model.fit(X, Y, epochs=2)
现在由于某种原因,一旦我 运行 我收到错误:
ValueError: Shapes (None, 10, 2) and (None, 20) are incompatible
我很困惑,因为我给它输入了数据,其中“X”和“Y”的每个示例都具有形状 (10, 2)。那为什么说我通过了 (None, 10, 2) and (None, 20)
你的最后一层使用 linear
激活,而你选择 categorical_crossentropy
损失。设置
model.add(tf.keras.layers.Dense(20, activations='softmax'))
....loss='categorical_crossentropy')
或者,
model.add(tf.keras.layers.Dense(20))
....loss='mse')
还要检查您的数据形状,尤其是标签 (y
)。
所以我有这个神经网络,我正在提供形状为:
的示例“X”和标签“Y”X.shape = (10,10,2)
Y.shape = (10,10,2)
模型代码如下:
import tensorflow as tf
from convert import process
import numpy as np
X, Y, rate = process('songs/song1.wav')
X = np.array(X[:10])
Y = np.array(Y[:10])
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(128))
model.add(tf.keras.layers.Dense(128))
model.add(tf.keras.layers.Dense(20))
model.compile(optimizer='adam', loss='categorical_crossentropy')
model.fit(X, Y, epochs=2)
现在由于某种原因,一旦我 运行 我收到错误:
ValueError: Shapes (None, 10, 2) and (None, 20) are incompatible
我很困惑,因为我给它输入了数据,其中“X”和“Y”的每个示例都具有形状 (10, 2)。那为什么说我通过了 (None, 10, 2) and (None, 20)
你的最后一层使用 linear
激活,而你选择 categorical_crossentropy
损失。设置
model.add(tf.keras.layers.Dense(20, activations='softmax'))
....loss='categorical_crossentropy')
或者,
model.add(tf.keras.layers.Dense(20))
....loss='mse')
还要检查您的数据形状,尤其是标签 (y
)。