我目前正在使用keras来训练回归网络。
网络已构建,但我不确定如何将输入和输出数据传递给模型。
输入和输出都存储为numpy数组列表。 输入列表中的numpy数组的形状为(400行, y 列)。 输出中的numpy数组的形状为( y 行,13列)
网络的输入维度为400,输出为13.
fit(self, x, y, batch_size=32, nb_epoch=10, verbose=1, callbacks=[], validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None)
在这种情况下,x:输入数据,作为Numpy数组或Numpy数组列表(如果模型有多个输入)。
y:标签,作为Numpy数组。
y不是标签,但原始数据也是如此。但是如何确保模型。知道将输入和行的每一列作为输出,对列表中的所有条目执行...
只是解析数据而不对它做任何事情就会给我这个错误。
Traceback (most recent call last):
File "tensorflow_datapreprocess_mfcc_extraction_rnn.py", line 167, in <module>
model.fit(train_set_data,train_set_output,verbose=1)
File "/usr/local/lib/python2.7/dist-packages/keras/models.py", line 620, in fit
sample_weight=sample_weight)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 1034, in fit
batch_size=batch_size)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 961, in _standardize_user_data
exception_prefix='model input')
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 51, in standardize_input_data
'...')
Exception: Error when checking model input: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 1 arrays but instead got the following list of 270 arrays: [array([[ -1.52587891e-04, 3.05175781e-05, -1.52587891e-04,
-5.18798828e-04, 3.05175781e-05, -3.96728516e-04,
1.52587891e-04, 3.35693359e-04, -9.15527344e-05,
3.3...
代码:
print "Training!"
model = Sequential()
model.add(Dense(output_dim=13, input_dim=400, init="normal"))
model.add(Activation("relu"))
model.compile(loss='mean_squared_error', optimizer='sgd')
model.fit(train_set_data,train_set_output,verbose=1)
答案 0 :(得分:1)
尝试通过转换numpy数组来重塑你的训练输入,即
x = np.transpose(x)
然后你应该以(number_samples,number_features)的形状输入你的训练,这是输入所需的格式。您的训练输出格式正确。