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
a=0.982014
a'=0.017663
下面用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/
写入日志文件中的可视化数据:
计算图: