run([], ={x: batch[0], y: batch[1]}) print("step %d,%g" % (i, ))# Run thestep sess 。run(, ={x: batch[0], : batch[1]})
很多小伙伴都写过类似的代码,构造网络,然后设定训练方式,最后输出一些基本的结果信息,如下:
step 0,10% step 500,12% step 1500,9% step 2000,13%
给你的不仅仅是这些,有一个特别棒的工具能够可视化训练过程中的信息,能让人直观的感受,当然需要一些简单的配置:
写入Graph
= tf..("/tmp//1") .(sess.graph)
文章插图
这里虽然能够可视化Graph,却感觉很杂乱,我们可以通过给一些node增加name,scope,让图变得更好看点:
def (input, , ,): with tf 。(name): w = tf 。(tf 。zeros([5, 5, , ]),) b = tf 。(tf 。zeros([]),) conv = tf 。nn 。(input, w, =[1, 1, 1, 1], ="SAME") act = tf 。nn 。relu(conv + b)tf 。nn 。(act, ksize=[1, 2, 2, 1], =[1, 2, 2, 1], ="SAME")def (input, , ,): with tf 。(name): w = tf 。(tf 。zeros([, ]),) b = tf 。(tf 。
zeros([]),)tf 。nn 。relu(tf 。(input, w) + b)# Setup , andthe data x = tf 。(tf 。, shape=[None, 784],)= tf 。(x, [-1, 28, 28, 1]) y = tf 。(tf 。, shape=[None, 10],)conv1 = (, 1, 32, "conv1") conv2 = (conv1, 32, 64, "conv2") = tf 。(conv2, [-1, 7 * 7 * 64]) fc1 = (, 7 * 7 * 64, 1024, "fc1")= (fc1, 1024, 10, "fc2")with tf 。("xent"): xent = tf 。
( tf 。nn 。(=, =y))with tf 。("train"):= tf 。train 。(1e-4) 。(xent)with tf 。(""):= tf 。equal(tf 。(, 1), tf 。(y, 1))= tf 。(tf 。cast(, tf 。)) = tf 。。("/tmp//2")。(sess 。graph)
文章插图
通过的api,收集更多的数据记录显示在中:
tf..('', xent) tf..('', )tf..image('input', , 3)
文章插图
修改Conv的代码,将,bias,act加入到中:
def (input, , ,): with tf.(name): w = tf.(tf.zeros([5, 5, , ]),) b = tf.(tf.zeros([]),) conv = tf.nn.(input, w, =[1, 1, 1, 1], ="SAME") act = tf.nn.relu(conv + b) tf..("", w) tf..("", b) tf..("", act)tf.nn.(act, ksize=[1, 2, 2, 1], =[1, 2, 2, 1], ="SAME")
配置将训练过程中的数据写入:
= tf..()= tf..("/tmp//3") .(sess.graph)for i in range(2001): batch = mnist.train.(100) if i % 5 == 0: s = sess.run(, ={x: batch[0], y: batch[1]}) .(s, i) sess.run(, ={x: batch[0], y: batch[1]})
文章插图
文章插图
这次这个的talk给我最大的收获就是用做是这么的方便, 这次talk中主要演示超参的两个方面:
# Try a fewrates forin [1E-3, 1E-4, 1E-5]: # Try a model with fewerforin [True, False]: forin [True, False]: #afor each one (: "lr_1E-3,fc=2,conv=2)= (, , )= tf..("/tmp//" + ) #run with the newmnist(, , , )
-- /tmp/
文章插图
文章插图
文章插图
= tf.(tf.zeros([10000, ]),)= .() = tf.....()= ..add() . = .name .. = os.path.join(, '.png') #the width andof a. ...([28, 28]) tf.....(, )for i in range(2001): batch = mnist.train.(100) if i % 5 == 0: [, s] = sess.run([, summ], ={x: batch[0], y: batch[1]}) .(s, i) if i % 500 == 0: sess.run(, ={x: mnist.test., : mnist.test.}) saver.save(sess, os.path.join(, "model.ckpt"), i) sess.run(, ={x: batch[0], : batch[1]})
文章插图
- 英鸟人康纳里成为不使用降落伞从高空安然堕地的世界纪录保持人
- 【微积分】算法数学基础之微积分
- 【风力发电机模型】风力涡轮机模型包括叶片、机舱、变桨和偏航驱动、发电机和控制系统
- 车间设备数据采集与MES系统应用
- 南瓜与苹果可以同食么 南瓜不能和什么食物一起吃
- 吉首大学张家界学院是几本 吉首大学张家界学院是公办还是民办
- 【Objects as Points】
- 西游记中曾把孙悟空当小孩耍的最神秘高手是谁?
- 【链块观点01期】当区块链的风刮到教育行业,哪些变革是注定要发生的?
- C语言实现字符串左旋转