我是做机器学习项目的新手。我已经开始使用keras开发小项目了。最近,我的程序出现了一个错误。我执行了以下程序。我使用Sequential模型进行开发:
f=Sequential()
f.add(Dense(64,input_shape=(9,),activation='relu'))
f.add(Dense(128,activation='tanh'))
f.add(Dense(128,activation='relu'))
f.add(Dense(64,activation='tanh'))
f.add(Dense(1,activation='sigmoid'))
f.compile(loss='binary_crossentropy',optimizer='rmsprop',metrics=['accuracy'])
f.fit(d,f,epochs=20,batch_size=10)它显示以下错误:
AttributeError Traceback (most recent call last)
<ipython-input-7-4d0153cd53cb> in <module>
36 f.add(Dense(1,activation='sigmoid'))
37 f.compile(loss='binary_crossentropy',optimizer='rmsprop',metrics=['accuracy'])
---> 38 f.fit(d,f,epochs=20,batch_size=10)
~\Anaconda3\lib\site-packages\keras\engine\training.py in fit(self, x, y, batch_size, epochs, `
verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight,
initial_epoch, steps_per_epoch, validation_steps, **kwargs)`
950 sample_weight=sample_weight,
951 class_weight=class_weight,
--> 952 batch_size=batch_size)
953 # Prepare validation data.
954 do_validation = False
~\Anaconda3\lib\site-packages\keras\engine\training.py in _standardize_user_data(self, x, y,
sample_weight, class_weight, check_array_lengths, batch_size)
787 feed_output_shapes,
788 check_batch_axis=False, # Don't enforce the batch size.
--> 789 exception_prefix='target')
790
791 # Generate sample-wise weight values given the `sample_weight` and
~\Anaconda3\lib\site-packages\keras\engine\training_utils.py in standardize_input_data(data, names,
shapes, check_batch_axis, exception_prefix)
90 data = data.values if data.__class__.__name__ == 'DataFrame' else data
91 data = [data]
---> 92 data = [standardize_single_array(x) for x in data]
93
94 if len(data) != len(names):
~\Anaconda3\lib\site-packages\keras\engine\training_utils.py in <listcomp>(.0)
90 data = data.values if data.__class__.__name__ == 'DataFrame' else data
91 data = [data]
---> 92 data = [standardize_single_array(x) for x in data]
93
94 if len(data) != len(names):
~\Anaconda3\lib\site-packages\keras\engine\training_utils.py in standardize_single_array(x)
25 'Got tensor with shape: %s' % str(shape))
26 return x
---> 27 elif x.ndim == 1:
28 x = np.expand_dims(x, 1)`enter code here`
29 return x
AttributeError: 'Sequential' object has no attribute 'ndim'错误是由于我的错误编码,还是由于任何内部问题?
任何建议都会有帮助。
发布于 2020-01-19 17:01:25
代码的最后一行是错误的
f.fit(d,f,epochs=20,batch_size=10)您应该将机器学习问题的目标传递给fit,如doc所示
fit(x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None, validation_freq=1, max_queue_size=10, workers=1, use_multiprocessing=False)试试像这样的东西
f.fit(x,y,epochs=20,batch_size=10)其中x是变量,y是训练目标,例如线性模型中"y = Ax + b“中的x和y。
一条建议:在进行项目之前,先阅读Keras的文档或一些教程。
https://stackoverflow.com/questions/59807849
复制相似问题