基于tensorflow的cifar10cifar100数据读取与分类模型搭建
在使⽤tensorflow进⾏分类模型搭建学习过程中,cifar10/cifar100数据集是⾮常经典的的问题,可以说处理好了这个数据集,你就基本上能够对tensorflow进⾏分类任务的所有知识点都有了整体掌握,下⼀步就可以去进军Imagenet这样的超⼤型数据集了。
本篇博客主要介绍基于tensorflow的cifar10/cifar100数据读取与分类模型搭建。
先说个题外话,如何使⽤tensorflow查看电脑的cpu与gpu。
其实吧,如果你熟悉nvidia的显卡驱动或者cuda原理,可以直接使⽤命令进⾏设备名称输出,不通过tensorflow也⾏。更不⾼端的⽅法,你甚⾄还可以使⽤相关辅助软件(⾃⼰⽹上搜。。),会者直接去设备管理器也能直接查看到。。
这⾥的tensorflow只是⼀个的⽅法。。不过往往在调试中可能会更加有⽤。
1、查看电脑GPU和CPU
import os
from tensorflow.python.client import device_lib
if __name__ == "__main__":
print(device_lib.list_local_devices())
2、指定CPU或GPU进⾏计算
#使⽤CPU进⾏计算
with tf.device("/cpu:0"):
a = tf.constant([1.0,2.0,3.0,4.0,5.0,6.0],shape=[2,3])
b = tf.constant([1.0,2.0,3.0,4.0,5.0,6.0],shape=[3,2])
c = tf.matmul(a,b)
#查看计算时硬件的使⽤情况
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print(sess.run(c))session如何设置和读取
通过tf.device可以指定计算时使⽤的设备,0表⽰设备的个数,如果想要使⽤GPU进⾏计算,将CPU改成GPU即可。
3、查看tensor详细情况
#设置运⾏时候的参数
options = tf.RunOptions(output_partition_graphs=True)
metadata = tf.RunMetadata()
c_val = sess.run(c,options=options,run_metadata=metadata)
print(metadata.partition_graphs)
#关闭session
sess.close()
再⾼端⼀点,你还可以使⽤terminal新开⼀个窗⼝,实时查看显存占⽤率与使⽤情况,在使⽤另外窗⼝直接定期显⽰tensorflowboard的内容。。
以上都是闲话,下⾯步⼊正题。
我补充⼏点:
1、对于cifar10/cifar100数据集,⼀般有好⼏种格式,都能⽤,但是往往有所侧重,这⾥tensorflow⼀般使⽤python版,并且⼀定要好好看这些数据集的介绍,往往会告诉你了这些数据的组织的⽅式,⼀般甚⾄还会直接给出下载使⽤并解析的代码。
2、但是其实tensorflow已经给出了相关功能函数(read,decode,show之类的),最新版的2.0还有直接的功能库下载处理这个数据集。
3、像tensorlayer这样的⼆次框架,你甚⾄还可以⾃定义数据集api,只要你知道数据组织结构,按规则读取就⾏。
4、更⾼端的⽤法,结合google原创的数据格式,⽐如tfrecorder,protobuffer,json等等之类的数据格式或结构,可以进步加速前期数据供给与预处理。
由于本⼈已经阅读过上⾯的所有代码,不想做重复进⾏复制粘贴的⽆⽤功,所以我更多的是给出了⼀条学习途径,避免你们少⾛弯路。如果有同学在学习过程中有什么不懂的,还是那样,留⾔,我必回复。。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论