gpt4 book ai didi

python - Keras 神经网络错误 : Setting an Array Element with a Sequence

转载 作者:太空狗 更新时间:2023-10-30 00:01:29 25 4
gpt4 key购买 nike

我正在将虚拟数据加载到神经网络中,但我收到了一个我似乎无法调试的错误:

这是我的可视化数据:

 df:
Label Mar
0 | [[.332, .326], [.058, .138]]
0 | [[.234, .246], [.234, .395]]
1 | [[.084, .23], [.745, .923]],

我正在尝试使用“Mar”列来预测“Label”列(我知道这个数据没有意义,它与我的真实数据相似)。这是我的神经网络代码:

model = Sequential()
model.add(Dense(3, input_dim=(1), activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
X = df['Mar']
Y = pd.get_dummies(df['Label'])
model.fit(X, Y, epochs=150, batch_size=10)

这是创建示例数据的代码:

Sample = [{'Label': 0, 'Mar': [[.332, .326], [.058, .138]]},
{'Label': 0, 'Mar': [[.234, .246], [.013, .592]]},
{'Label': 1, 'Mar': [[.084, .23], [.745, .923]]}]

df = pd.DataFrame(Sample)

当我到达此代码的最后一行时,出现此错误:

Epoch 1/150
-----------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-271-3d2506918d89> in <module>()
----> 1 model.fit(X, Y, epochs=150, batch_size=10)

/usr/local/lib/python2.7/site-packages/keras/models.pyc in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, **kwargs)
854 class_weight=class_weight,
855 sample_weight=sample_weight,
--> 856 initial_epoch=initial_epoch)
857
858 def evaluate(self, x, y, batch_size=32, verbose=1,

/usr/local/lib/python2.7/site-packages/keras/engine/training.pyc in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, **kwargs)
1496 val_f=val_f, val_ins=val_ins, shuffle=shuffle,
1497 callback_metrics=callback_metrics,
-> 1498 initial_epoch=initial_epoch)
1499
1500 def evaluate(self, x, y, batch_size=32, verbose=1, sample_weight=None):

/usr/local/lib/python2.7/site-packages/keras/engine/training.pyc in _fit_loop(self, f, ins, out_labels, batch_size, epochs, verbose, callbacks, val_f, val_ins, shuffle, callback_metrics, initial_epoch)
1150 batch_logs['size'] = len(batch_ids)
1151 callbacks.on_batch_begin(batch_index, batch_logs)
-> 1152 outs = f(ins_batch)
1153 if not isinstance(outs, list):
1154 outs = [outs]

/usr/local/lib/python2.7/site-packages/keras/backend/tensorflow_backend.pyc in __call__(self, inputs)
2227 session = get_session()
2228 updated = session.run(self.outputs + [self.updates_op],
-> 2229 feed_dict=feed_dict)
2230 return updated[:len(self.outputs)]
2231

/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.pyc in run(self, fetches, feed_dict, options, run_metadata)
776 try:
777 result = self._run(None, fetches, feed_dict, options_ptr,
--> 778 run_metadata_ptr)
779 if run_metadata:
780 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)

/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.pyc in _run(self, handle, fetches, feed_dict, options, run_metadata)
952 np_val = subfeed_val.to_numpy_array()
953 else:
--> 954 np_val = np.asarray(subfeed_val, dtype=subfeed_dtype)
955
956 if (not is_tensor_handle_feed and

/usr/local/lib/python2.7/site-packages/numpy/core/numeric.pyc in asarray(a, dtype, order)
529
530 """
--> 531 return array(a, dtype, copy=False, order=order)
532
533

ValueError: setting an array element with a sequence.

我现在怀疑它与我的输入列是列表有关,而不是 np 数组?但是,我已经尝试先将它们制作成数组,但我仍然遇到同样的错误。真的很喜欢并感谢帮助!!

编辑 我尝试了一种对标签字段进行热编码的方法,因为我在网上发现的某个地方可能会有帮助。在这一点上它没有帮助

最佳答案

这里有几个问题,

  1. 输入的形状错误
  2. 输入是数组和列表的混合体。

一种可能的解决方案是使用 keras.layers.Flatten reshape 数据,并使用 pd.Series.tolist() 统一输入的数据类型数组:

model = Sequential()
model.add(Flatten(input_shape=(2,2)))
model.add(Dense(3, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
X = df['Mar'].tolist()
Y = df['Label']
model.fit(X, Y, epochs=150, batch_size=10)

关于python - Keras 神经网络错误 : Setting an Array Element with a Sequence,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44573784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com