发布于2019-08-22 16:45 阅读(2878) 评论(0) 点赞(24) 收藏(5)
Traceback (most recent call last):
File "main.py", line 69, in <module>
pggan.train()
File "D:\我的文档\**.py", line 199, in train
sess.run(opti_D, feed_dict={self.images: realbatch_array, self.z: sample_z})
File "D:\ProgramData\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\client\session.py", line 929, in run
run_metadata_ptr)
File "D:\ProgramData\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\client\session.py", line 1121, in _run
np_val = np.asarray(subfeed_val, dtype=subfeed_dtype)
File "D:\ProgramData\Anaconda3\envs\tensorflow\lib\site-packages\numpy\core\numeric.py", line 538, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: could not broadcast input array from shape (16,4,4,3) into shape (16)
很明显根据错误类型,报这种类型的错误,因为你输入数据的尺寸和网络需要的尺寸不一致,才会报错。
然后查看了self.images占位符以及自己图片的大小,很明显是一样的,都是(16,4,4,3),百思不得其解,最终又查看了一下自己写的nextBatch()函数,原始生成模型中只需要图片即可,因此nextBatch()只返回图片即可,但是分类问题中我的返回值多了标签。这时仍然使用如下输入到网络中简单测试生成网络就会出错,因为现在该句返回的是一个元组。
realbatch_array,_ = self.data_In.getNextBatch(batch_num,self.batch_size,resize_w = self.output_size)
说的这,不得不吐槽一下自己基础不扎实了。。。。
这是python返回函数使用的一个问题,如下函数,若a,b = test(),则a=1,b=2。若a = test(),则a = (1,2)是一个元组,若a , _ = test()则可以返回a = 1。所以归根结底,ValueError: could not broadcast input array from shape (16,4,4,3) into shape (16)
是因为输入数据与模型要求的输入不一样,我这里犯了这个错误,是因为python基础不扎实。
def test():
return 1,2
作者:fggfg
链接:https://www.pythonheidong.com/blog/article/53007/9376b7c9db10b3e058e9/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!