Python/Tensorflow/Numbery设置一个数组元素时出现序列错误



我正在试验这里的生成对抗性网络:https://github.com/carpedm20/DCGAN-tensorflow我已经安装了所有的prereq并下载了代码,但我遇到了一个错误,我不确定它是从哪里来的。在使用任何图像集运行main.py后,我得到以下错误:

ValueError: setting an array element with a sequence

它提到的行,model.py的第153行,如下所示:

sample_images = np.array(sample).astype(np.float32)

"sample_images"似乎被设置为tensorflow占位符,基于model.py的第75行和第76行:

self.sample_images= tf.placeholder(tf.float32, [self.sample_size] + [self.output_size, self.output_size, self.c_dim],
name='sample_images')

一些谷歌搜索让我倾向于使用"feed_dict"之类的东西,但一些实验并没有奏效。此外,feed_dict稍后在代码中使用,如第187行所示:

feed_dict={ self.images: batch_images, self.z: batch_z, self.y:batch_labels })

我不确定是Python、Tensorflow、Numpy还是其他原因导致了错误,所以我真的不知道从哪里开始。感谢您的帮助。

作为参考,我在Windows7上运行Python 3.5 64位

感谢

Nathan

更新:在花了太长时间试图解决这个问题之后,我最终开发了一个Ubuntu虚拟机,安装了Python和Tensorflow,整个过程顺利进行。这不是最初问题的答案,但绝对是一种变通方法。

我没有tensorflow,所以不能直接帮你。但我可以用类似的创建你的错误

制作一个包含各种大小列表的dtype对象数组:

In [343]: x=np.array([3, [1,2], [1,2,3]],dtype=object)
In [344]: x
Out[344]: array([3, [1, 2], [1, 2, 3]], dtype=object)
In [345]: x.astype(np.float32)
...
ValueError: setting an array element with a sequence.

如果一个或多个元素是数组,同样的情况也会发生,我想tensorflow对象如果是可迭代的(作为序列),会产生同样的错误。

因此,检查sample_imagesdtype,并识别元素的类型。还要检查tensorflow是否有自己的方法将其对象转换为浮点数组。不要假设numpy函数和方法直接作用于tensorflow对象。

相关内容

最新更新