tensorflow学习(五)使用Tensorboard进行结构可视化

在b站上看视频学习tensorflow基本知识,同时记录一下~
由于课程第一节讲的是环境搭建,那部分自己完成了,没有听课,所以就从(二)开始吧

  • 视频内容:05-1;05-2;05-3
  • 主要内容:使用Tensorboard进行结构可视化
  • 代码链接参考github,由于所有的代码都是在Jupyter Notebook中进行编写以及运行,所有代码编写过程中有很多次运行,查看输出结果。
  • 代码格式是.ipynb格式,查看代码方法:已经安装好了Anaconda等环境,打开终端,输入Jupyter Notebook,就可以按照路径打开代码了。

tensorboard的安装和简单使用

5-1 优化mnist手写识别

优化策略

  • 批次大小设置为128;
  • 学习率设置为变量,epoch(50)每迭代一次改一次学习率,赋给学习率,学习率越来越小;
  • 网络两个隐藏层2000和500个神经元;
  • 定义了dropout,设置为0.8;
  • 使用交叉熵代价函数;

结果:发现迭代速度很快。

完整代码如下

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
# 载入数据
mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
# 批次的大小
batch_size = 128
n_batch = mnist.train.num_examples // batch_size

x = tf.placeholder(tf.float32, [None,784])
y = tf.placeholder(tf.float32, [None, 10])
keep_prob = tf.placeholder(tf.float32)
lr = tf.Variable(1,dtype = tf.float32)

# 创建神经网络
W1 = tf.Variable(tf.truncated_normal([784,2000],stddev=0.1))
b1 = tf.Variable(tf.zeros([1, 2000]))
# 激活层
layer1 = tf.nn.relu(tf.matmul(x,W1) + b1)
# drop层
layer1 = tf.nn.dropout(layer1,keep_prob=keep_prob)

# 第二层
W2 = tf.Variable(tf.truncated_normal([2000,500],stddev=0.1))
b2 = tf.Variable(tf.zeros([1, 500]))
layer2 = tf.nn.relu(tf.matmul(layer1,W2) + b2)
layer2 = tf.nn.dropout(layer2,keep_prob=keep_prob)

# 第三层
W3 = tf.Variable(tf.truncated_normal([500,10],stddev=0.1))
b3 = tf.Variable(tf.zeros([1,10]))
# prediction = tf.nn.softmax(tf.matmul(layer2,W3) + b3)
prediction = tf.matmul(layer2,W3) + b3


loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=prediction))

# 梯度下降法
# train_step = tf.train.GradientDescentOptimizer(0.2).minimize(loss)
train_step = tf.train.AdadeltaOptimizer(lr).minimize(loss)  
# train_step = tf.train.AdamOptimizer().minimize(loss)  
# train_step = tf.train.RMSPropOptimizer(learning_rate=0.001).minimize(loss) 
# train_step = tf.train.AdagradOptimizer(learning_rate=1).minimize(loss) 


# 初始化变量
init 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值