我正在按照教程步骤进行训练,如https://www.tensorflow.org/alpha/tutorials/keras/overfit_and_underfit所述,使用Tensorflow训练神经网络
在训练数据ValueError上运行拟合函数时遇到输入形状有问题。
模型架构:
NUM_WORDS = 10000
baseline_model = keras.Sequential([
keras.layers.Dense(16, activation = 'relu',input_shape(NUM_WORDS,)),
keras.layers.Dense(16, activation = 'relu'),
keras.layers.Dense(1, activation = 'sigmoid')
])
baseline_model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy', 'binary_crossentropy'])
baseline_model.summary()
baseline_history = baseline_model.fit(train_data,
train_labels,
epochs=20,
batch_size=512,
validation_data=(test_data, test_labels),
verbose=2)
-------------------------------------------------- ---------------------------- ValueError Traceback(最近的呼叫 最后) 4 batch_size = 512, 5validation_data =(test_data,test_labels), ----> 6 verbose = 2)
〜/ env_tensorflow2_alpha / lib / python3.6 / site-packages / tensorflow / python / keras / engine / training.py 适合(自我,x,y,batch_size,时代,冗长,回调, validate_split,validation_data,随机播放,class_weight, sample_weight,initial_epoch,steps_per_epoch,validation_steps, validation_freq,max_queue_size,工作者,use_multiprocessing, ** kwargs) 816 batch_size = batch_size, 817个步骤= validation_steps, -> 818 steps_name ='validation_steps') 819 elifvalidation_split和0。
〜/ env_tensorflow2_alpha / lib / python3.6 / site-packages / tensorflow / python / keras / engine / training.py 在_standardize_user_data(self,x,y,sample_weight,class_weight, batch_size,check_steps,steps_name,steps,validation_split,shuffle, extract_tensors_from_dataset)2594 feed_input_shapes,
2595 check_batch_axis = False,#不强制执行批处理 尺寸。 -> 2596 exception_prefix ='input')2597 2598如果y不为None:〜/ env_tensorflow2_alpha / lib / python3.6 / site-packages / tensorflow / python / keras / engine / training_utils.py 在standardize_input_data(数据,名称,形状,check_batch_axis, exception_prefix) 347':预期的'+名称[i] +'具有形状'+ 348 str(shape)+'但是得到了数组'+ -> 349 str(数据形状)) 350返回数据 351
ValueError:检查输入时出错:预期density_21_input具有 形状(10000,),但数组的形状为(1,)
train_data和train_labels具有以下形状:
print("Train data shape: ", train_data.shape)
print("Train label shape: ", train_labels.shape)
训练数据形状:(25000,10000) 火车标签形状:(25000,)
为什么在这里出现错误,我是否需要在输入数组中为batch_size容纳另一个维度?
我正在使用Tensorflow版本:2.0.0-alpha0 在此先感谢!
答案 0 :(得分:0)
除了行中的一个小错误,
keras.layers.Dense(16, activation = 'relu',input_shape(NUM_WORDS,))
您错过了一个=
的地方,
keras.layers.Dense(16, activation = 'relu',input_shape=(NUM_WORDS,))
我能够在Google colab空间中运行相同的代码而没有错误。
希望这会有所帮助!