TensorFlow 第二步 小试牛刀:一个神经元

http://neuralnetworksanddeeplearning.com/chap3.html

 

neuralnetworks and deeplearning 第三章

 

如果采用方差函数做损失函数C,sigmod做激活函数σ(),当初始输出误差过大时,σ’≈0,导致神经元误差过小,学习很慢。

如,x=1.0,w=2.0,b=2.0,η=0.15   x*w+b=4.0

TensorFlow 第二步 小试牛刀:一个神经元_第1张图片

a=0.982014

a'=0.017663

 

 

TensorFlow 第二步 小试牛刀:一个神经元_第2张图片

下面用TensorFlow试试:

# coding=utf-8

import os  
#os.environ["TF_CPP_MIN_LOG_LEVEL"]='1' # 这是默认的显示等级,显示所有信息  
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' # 只显示 warning 和 Error   
#os.environ["TF_CPP_MIN_LOG_LEVEL"]='3' # 只显示 Error  

import tensorflow as tf
x=tf.constant(1.0, name="x")
w=tf.Variable(2.0,name="w")
b=tf.Variable(2.0,name="b")
y_desired=tf.constant(0.0,name="y_desired")
model=tf.multiply(x,w,"model")
model=tf.add(model,b)
model=tf.sigmoid(model)
loss_fun=0.5*tf.pow(y_desired-model,2,name="loss_fun")
opt=tf.train.GradientDescentOptimizer(0.15).minimize(loss_fun)
#以下汇总一些参数用于TensorBoard
for value in [x,w,y_desired,model,loss_fun]:
    tf.summary.scalar(value.op.name,value) #汇总的标签及值
summaries=tf.summary.merge_all() #汇总合并
sess=tf.Session()

# 生成一个写日志的writer,并将当前的tensorflow计算图写入日志。
# tensorflow提供了多种写日志文件的API
summary_writer=tf.summary.FileWriter(r'C:\temp\log_simple_stats',sess.graph)
sess.run(tf.global_variables_initializer())
for i in range(300):
    print(sess.run(model)) #取值打印
    summary_writer.add_summary(sess.run(summaries), i)
    sess.run(opt)
summary_writer.close()

在终端运行:

Tensorboard –logdir= C:\temp\log_simple_stats

 

C:\Users\li\AppData\Local\Programs\Python\Python36\Scripts>tensorboard --logdir=

C:\temp\log_simple_stats

TensorBoard 1.10.0 at http://li-PC:6006 (Press CTRL+C to quit)

 

 

用谷歌浏览器打开http://li-pc:6006/

 

写入日志文件中的可视化数据:

TensorFlow 第二步 小试牛刀:一个神经元_第3张图片

 

计算图:

TensorFlow 第二步 小试牛刀:一个神经元_第4张图片

你可能感兴趣的:(机器学习笔记,python)