之前,有写过关于TensorBoard使用的文章,后来因为科研任务繁重,加上找工作原因,一直没时间总结。趁今天周末有时间总结下,用了个简单的CNN网络来举例子。
第一步:老规矩,导入相关的包;
第二步:设置参数,就算batch的个数。很多情况,由于内存原因,不能一次性把所有的训练集全部加装到内存上,因此需要使用batch;
第三步:定义一些函数,主要通过tf.summary.scalar()记录参数;
权重初始化函数
卷积函数
池化函数
定义输入的placeholder,因为使用了卷积函数,需要将784维的一维数据,转为28*28像素的数据。
搭建卷积网络:第一层的卷积层,5x5的卷积核,2个卷积核从1个平面抽取特征
第二层的卷积层,5x5的卷积核,64个卷积核从32个平面抽取特征
28*28的图片第一次卷积后还是28*28(使用了SAME方式,SAME模式是最常见的模式,是指经过卷积的特征图和原图的size保持不变),第一次池化后变为14*14;
第二次卷积后为14*14,第二次池化后变为了7*7;
进过上面操作后得到64张7*7的平面。
全连接层:
交叉熵代价函数
使用AdamOptimizer进行优化
求准确率
合并所有的summary
最后,进行训练
输出结果
TensorBoard使用
tensorboard --logdir=文件夹路径 --host=127.0.0.1
(复制指定路径后就可以访问了)
网络拓补图:
记录的权重参数的信息
还有很多记录的数据,就不一一展示,感兴趣的同学可以自己尝试下(大神请绕路(~_~))
需要代码的,可私聊我。
閱讀更多 AI機器學習與數據挖掘 的文章