基于tensorflow的神经网络简单实例

基于tensorflow的神经网络简单实例

* 发布世家:2018年01月12日11:44:49 更新时间:2018年01月12日11:44:54*

内容摘要:

  1. 通过构建一个简单的拟合直线的神经网络来简单的讲解基于tensorflow框架的神经网络构建方法。
  2. 讲解简单的使用tensorboard 来展示、分析神经网络流图的方法。
# coding:utf-8

# 调用tensorflow
import tensorflow as tf
import numpy as np
LOG_PATH = "/home/lucky/mylog.log"
# 这里生成了100对数字,作为整个神经网络的input
x_data = np.random.rand(100).astype("float32")
# 使用with,让我们的数据以节点的方式落在tensorflow的报告上。
with tf.name_scope('y_data'):
    y_data = x_data * 2.5 + 0.8 #权重2.5,偏移设置2.5
    tf.summary.histogram("method_demo"+"/y_data",y_data) #可视化观看变量y_data
<tf.Tensor 'y_data/method_demo/y_data:0' shape=() dtype=string>
# 指定W和b变量的取值范围,随机在[-200,200]
with tf.name_scope('W'):
    W = tf.Variable(tf.random_uniform([1], -200.0, 200.0))
    tf.summary.histogram("method_demo"+"/W",W) #可视化观看变量
<tf.Tensor 'W/method_demo/W:0' shape=() dtype=string>
# 指定偏移值b,同时shape等于1
with tf.name_scope('b'):
    b = tf.Variable(tf.zeros([1]))
    tf.summary.histogram("method_demo"+"/b",b) #可视化观看变量
<tf.Tensor 'b/method_demo/b:0' shape=() dtype=string>
with tf.name_scope('y'):
    y = W * x_data + b #sigmoid神经元
    tf.summary.histogram("method_demo"+"/y",y) #可视化观看变量
<tf.Tensor 'y/method_demo/y:0' shape=() dtype=string>
# 最小化均方
with tf.name_scope('loss'):
    loss = tf.reduce_mean(tf.square(y - y_data))
    tf.summary.histogram("method_demo"+"/loss",loss) #可视化观看变量
    tf.summary.scalar("method_demo"+'loss',loss) #可视化观看常量
<tf.Tensor 'loss/method_demo/loss:0' shape=() dtype=string>






<tf.Tensor 'loss/method_demoloss:0' shape=() dtype=string>
# 定义学习率,我们先使用0.7来看看效果
optimizer = tf.train.GradientDescentOptimizer(0.7)
with tf.name_scope('train'):
    train = optimizer.minimize(loss)
# 初始化TensorFlow参数
init = tf.global_variables_initializer()
# 运行数据流图
sess = tf.Session()
#合并到Summary中
merged = tf.summary.merge_all()
#选定可视化存储目录
writer =tf.summary.FileWriter(LOG_PATH,sess.graph)
sess.run(init)
# 开始计算
for step in range(500):
    sess.run(train)
    if step % 20 == 0:
        print(step, "W:",sess.run(W),"b:", sess.run(b))
        result = sess.run(merged) #merged也是需要run的
        writer.add_summary(result,step) #result是summary类型的
0 W: [ 3.31470919] b: [ 0.79210788]
20 W: [ 2.60540962] b: [ 0.74690092]
40 W: [ 2.51701379] b: [ 0.79122424]
60 W: [ 2.50275946] b: [ 0.798576]
80 W: [ 2.50044751] b: [ 0.79976904]
100 W: [ 2.50007224] b: [ 0.7999627]
120 W: [ 2.50001168] b: [ 0.79999393]
140 W: [ 2.50000167] b: [ 0.79999912]
160 W: [ 2.50000072] b: [ 0.79999965]
180 W: [ 2.50000072] b: [ 0.79999965]
200 W: [ 2.50000072] b: [ 0.79999965]
220 W: [ 2.50000072] b: [ 0.79999965]
240 W: [ 2.50000072] b: [ 0.79999965]
260 W: [ 2.50000072] b: [ 0.79999965]
280 W: [ 2.50000072] b: [ 0.79999965]
300 W: [ 2.50000072] b: [ 0.79999965]
320 W: [ 2.50000072] b: [ 0.79999965]
340 W: [ 2.50000072] b: [ 0.79999965]
360 W: [ 2.50000072] b: [ 0.79999965]
380 W: [ 2.50000072] b: [ 0.79999965]
400 W: [ 2.50000072] b: [ 0.79999965]
420 W: [ 2.50000072] b: [ 0.79999965]
440 W: [ 2.50000072] b: [ 0.79999965]
460 W: [ 2.50000072] b: [ 0.79999965]
480 W: [ 2.50000072] b: [ 0.79999965]
#在终端中打开下面一句话
#tensorboard --logdir /home/lucky/mylog.log

tensorboard 的使用

  1. 在op上增加可视化变量声明:tf.summary.histogram(“method_demo”+”/y_data”,y_data)
  2. 在op上增加可视化常量声明:tf.summary.scalar(“method_demo”+’loss’,loss)
  3. 合并到Summary中:merged = tf.summary.merge_all()
  4. 选定可视化存储目录:writer =tf.summary.FileWriter(LOG_PATH,sess.graph)其中路径声明:LOG_PATH = “{the_log_dir_path}”例如:“/home/lucky/mylog.log”,当运行sess.run的时候,sess.graph就会写入log_path当中。
  5. 在每步训练的时候写入当时的数据信息:result = sess.run(merged) #merged也是需要run的;
    writer.add_summary(result,step) #result是summary类型的
  6. 在终端当中运行:tensorboard –logdir {the_log_dir_path},然后打开提供的链接就行啦!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值