cifar10_input使用时的注意事项(per_image_whitening和image_summary)

cifar10_input使用时的注意事项

在使用cifar10数据集时,一般会使用cifar10_input.py导入测试图片和标签,但是由于tensorflow版本变化的原因,我们经常会遇到如下两种保存:
AttributeError:‘module’对象没有属性’per_image_whitening’和AttributeError: module ‘tensorflow’ has no attribute ‘image_summary’,这两个报错就是由于版本不兼容问题导致的。解决方案:
用per_image_standardization替换per_image_whitening
用summary.image替换image_summary
改完后就可以使用了,python代码如下:

import tensorflow as tf
import numpy as np
import pylab
import cifar10_input

filename='cifar-10-binary'
batch_size=128
images_test,labels_test=cifar10_input.inputs(eval_data=True,data_dir=filename,batch_size=batch_size)
sess=tf.InteractiveSession()
tf.global_variables_initializer().run()
tf.train.start_queue_runners()
image_batch,label_batch=sess.run([images_test,labels_test])
#print("__\n",image_batch[0])
#print("__\n",label_batch[0])
pylab.imshow(image_batch[0])
pylab.show()

运行结果:
在这里插入图片描述
由于cifar10_input.py对图片进行标准化处理,所以显示的图片有点怪异。正常的导入代码如下:

import tensorflow as tf
import numpy as np
import pylab
filename='cifar-10-binary/test_batch.bin'
bytestream=open(filename,'rb')
buf=bytestream.read(10000*(1+32*32*3))
bytestream.close()

data=np.frombuffer(buf,dtype=np.uint8)
data=data.reshape(10000,1+32*32*3)
labels_images=np.hsplit(data,[1])
labels=labels_images[0].reshape(10000)
images=labels_images[1].reshape(10000,32,32,3)
img=np.reshape(images[0],(3,32,32))
img=img.transpose(1,2,0)


print(labels[0])
pylab.imshow(img)
pylab.show()

运行结果:
在这里插入图片描述
代码参考《深度学习之TensorFlow入门、原理与进阶实战》

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值