【发布时间】:2016-03-13 10:01:07
【问题描述】:
我正在尝试实现一个使用我自己的图像集训练的简单逻辑回归模型,但在尝试训练模型时出现此错误:
Traceback (most recent call last):
File "main.py", line 26, in <module>
model.entrenar_modelo(sess, training_images, training_labels)
File "/home/jr/Desktop/Dropbox/Machine_Learning/TF/Míos/Hip/model_log_reg.py", line 24, in entrenar_modelo
train_step.run({x: batch_xs, y_: batch_ys})
File "/home/jr/.local/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1267, in run
_run_using_default_session(self, feed_dict, self.graph, session)
File "/home/jr/.local/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2763, in _run_using_default_session
session.run(operation, feed_dict)
File "/home/jr/.local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 334, in run
np_val = np.array(subfeed_val, dtype=subfeed_t.dtype.as_numpy_dtype)
ValueError: setting an array element with a sequence.
我提供给train_step.run({x: batch_xs, y_: batch_ys}) 的数据是这样的:
- batch_xs:张量对象列表,代表 100x100(10,000 个长张量)的图像
- batch_ys:作为浮点数的标签列表(1.0 或 0.0)
我做错了什么?
编辑
问题似乎是我必须先评估batch_xs 中的张量,然后再将它们传递给train_step.run(...)。我认为 run 方法会解决这个问题,但我想我错了?
无论如何,一旦我在调用函数之前这样做了:
for i, x in enumerate(batch_xs):
batch_xs[i] = x.eval()
#print batch_xs[i].shape
#assert all(x.shape == (100, 100, 3) for x in batch_xs)
# Now I can call the function
即使按照以下答案中的建议进行操作,我也遇到了一些问题。我终于通过放弃张量并使用 numpy 数组来解决所有问题。
【问题讨论】:
标签: python-2.7 tensorflow