我正在尝试使用此处的Generative Adversarial Network: https://github.com/carpedm20/DCGAN-tensorflow 我安装了所有的先决条件并下载了代码,我遇到了一个错误,我不知道它来自哪里。运行任何图像集的main.py后,我收到以下错误:
ValueError: setting an array element with a sequence
它提到的那一行,model.py的第153行,如下:
sample_images = np.array(sample).astype(np.float32)
'sample_images'似乎设置为张量流占位符,基于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还是导致错误的其他因素,所以不知道从哪里开始。帮助赞赏。
作为参考,我在Windows 7上运行Python 3.5 64位
由于
森
更新:经过长时间的努力来解决这个问题,我最终开发了一个Ubuntu虚拟机,安装了Python和Tensorflow,整个工作顺利进行。对原始问题不是一个完全答案,但绝对是一种解决方法。
答案 0 :(得分:-1)
我没有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
对象,如果可迭代(作为序列),会产生相同的错误。
所以 - 检查dtype
的{{1}},并确定元素的类型。还要检查sample_images
是否有自己的方法将其对象转换为浮点数组。不要认为tensorflow
函数和方法直接在numpy
个对象上起作用。