TensorFlow学习笔记(二)
2017-10-25 21:24
155 查看
1.
2.可视化
3.Optomizer
GradientDescentOptimizer—–取决于data 的size以及type
AdadeltaOptomizer
AdagradOptimizer
AdamOptimizer
MomentumOptomizer——–不仅仅考虑本步的学习效率,还考虑上一步的学习效率,比GradientDescentOptimizer更加快速到达
RMSPropOptimizer—阿尔法Go
4.可视化神经网络
进入terminal模式,然后执行如下命令
tersorboard –logdir=’/logs’
然后打开浏览器,输入显示的host, 然后进入graph
5.TensorBoard
import tensorflow as tf import numpy as np def add_layer(inputs,in_size,out_size,actvation_function=None): Weights = tf.Variable(tf.random_normal([in_size,out_size])) biases = tf.Variable(tf.zeros([1,out_size]) + 0.1) Wx_plus_b = tf.matmul(inputs,Weights) + biases if activation_function is None: outputs = Wx_plus_b else: outputs = activation_function(Wx_plus_b) return outputs x_data = np.linspace(-1,1,300)[:,np.newaxis] noise = np.random.normal(0,0.05,x_data.shape) y_data = np.square(x_data) - 0.5 + noise xs = tf.placeholder(tf.float32,[None,1]) ys = tf.placeholder(tf.float32,[None,1]) l1 = add_layer(xs, 1, 1,10, activation_function=tf.nn.relu) prediction = add_layer(l1, 10,1,activation_function=None) loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reducton_indices=[1])) train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss) init = tf.initialize_all_variables() sess = tf.Session() sess.run(init) for i in range(1000): sess.run(train_step, feed_dict={xs:x_data,ys:y_data}) if i % 50 == 0: print(sess.run(loss, feed_dict={xs:x_data,ys:y_data}))
2.可视化
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt def add_layer(inputs,in_size,out_size,actvation_function=None): Weights = tf.Variable(tf.random_normal([in_size,out_size])) biases = tf.Variable(tf.zeros([1,out_size]) + 0.1) Wx_plus_b = tf.matmul(inputs,Weights) + biases if activation_function is None: outputs = Wx_plus_b else: outputs = activation_function(Wx_plus_b) return outputs x_data = np.linspace(-1,1,300)[:,np.newaxis] noise = np.random.normal(0,0.05,x_data.shape) y_data = np.square(x_data) - 0.5 + noise xs = tf.placeholder(tf.float32,[None,1]) ys = tf.placeholder(tf.float32,[None,1]) l1 = add_layer(xs, 1, 1,10, activation_function=tf.nn.relu) prediction = add_layer(l1, 10,1,activation_function=None) loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reducton_indices=[1])) train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss) init = tf.initialize_all_variables() sess = tf.Session() sess.run(init) fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.scatter(x_data,y_data) plt.ion() #plt.show(block=False) old version for i in range(1000): sess.run(train_step, feed_dict={xs:x_data,ys:y_data}) if i % 50 == 0: #print(sess.run(loss, feed_dict={xs:x_data,ys:y_data})) try: ax.lines.remove(lines[0]) except Exception: pass prediction_value = sess.run(prediction,feed_dict={xs:x_data}) lines = ax.plot(x_data, prediction_value, 'r-', lw=5) plt.pause(0.1)
3.Optomizer
GradientDescentOptimizer—–取决于data 的size以及type
AdadeltaOptomizer
AdagradOptimizer
AdamOptimizer
MomentumOptomizer——–不仅仅考虑本步的学习效率,还考虑上一步的学习效率,比GradientDescentOptimizer更加快速到达
RMSPropOptimizer—阿尔法Go
4.可视化神经网络
""" Please note, this code is only for python 3+. If you are using python 2+, please modify the code accordingly. """ import tensorflow as tf def add_layer(inputs, in_size, out_size, activation_function=None): # add one more layer and return the output of this layer with tf.name_scope('layer'): with tf.name_scope('weights'): Weights = tf.Variable(tf.random_normal([in_size, out_size]), name='W') with tf.name_scope('biases'): biases = tf.Variable(tf.zeros([1, out_size]) + 0.1, name='b') with tf.name_scope('Wx_plus_b'): Wx_plus_b = tf.add(tf.matmul(inputs, Weights), biases) if activation_function is None: outputs = Wx_plus_b else: outputs = activation_function(Wx_plus_b, ) return outputs # define placeholder for inputs to network with tf.name_scope('inputs'): xs = tf.placeholder(tf.float32, [None, 1], name='x_input') ys = tf.placeholder(tf.float32, [None, 1], name='y_input') # add hidden layer l1 = add_layer(xs, 1, 10, activation_function=tf.nn.relu) # add output layer prediction = add_layer(l1, 10, 1, activation_function=None) # the error between prediciton and real data with tf.name_scope('loss'): loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction), reduction_indices=[1])) with tf.name_scope('train'): train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss) sess = tf.Session() writer = tf.train.SummaryWriter("logs/", sess.graph) # important step sess.run(tf.initialize_all_variables())
进入terminal模式,然后执行如下命令
tersorboard –logdir=’/logs’
然后打开浏览器,输入显示的host, 然后进入graph
5.TensorBoard
""" Please note, this code is only for python 3+. If you are using python 2+, please modify the code accordingly. """ import tensorflow as tf import numpy as np def add_layer(inputs, in_size, out_size, n_layer, activation_function=None): # add one more layer and return the output of this layer layer_name = 'layer%s' % n_layer with tf.name_scope(layer_name): with tf.name_scope('weights'): Weights = tf.Variable(tf.random_normal([in_size, out_size]), name='W') tf.histogram_summary(layer_name + '/weights', Weights) with tf.name_scope('biases'): biases = tf.Variable(tf.zeros([1, out_size]) + 0.1, name='b') tf.histogram_summary(layer_name + '/biases', biases) with tf.name_scope('Wx_plus_b'): Wx_plus_b = tf.add(tf.matmul(inputs, Weights), biases) if activation_function is None: outputs = Wx_plus_b else: outputs = activation_function(Wx_plus_b, ) tf.histogram_summary(layer_name + '/outputs', outputs) return outputs # Make up some real data x_data = np.linspace(-1, 1, 300)[:, np.newaxis] noise = np.random.normal(0, 0.05, x_data.shape) y_data = np.square(x_data) - 0.5 + noise # define placeholder for inputs to network with tf.name_scope('inputs'): xs = tf.placeholder(tf.float32, [None, 1], name='x_input') ys = tf.placeholder(tf.float32, [None, 1], name='y_input') # add hidden layer l1 = add_layer(xs, 1, 10, n_layer=1, activation_function=tf.nn.relu) # add output layer prediction = add_layer(l1, 10, 1, n_layer=2, activation_function=None) # the error between prediciton and real data with tf.name_scope('loss'): loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction), reduction_indices=[1])) tf.scalar_summary('loss', loss) with tf.name_scope('train'): train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss) sess = tf.Session() merged = tf.merge_all_summaries() writer = tf.train.SummaryWriter("logs/", sess.graph) # important step sess.run(tf.initialize_all_variables()) for i in range(1000): sess.run(train_step, feed_dict={xs: x_data, ys: y_data}) if i % 50 == 0: result = sess.run(merged, feed_dict={xs: x_data, ys: y_data}) writer.add_summary(result, i)
相关文章推荐
- TensorFlow学习笔记(1)----基础概念和程序的形式
- tensorflow学习笔记(二):tensor 变换
- tensorflow学习笔记(十六):rnn_cell.py
- tensorflow学习笔记(二十四):Bucketing
- tensorflow学习笔记(三十三):ExponentialMovingAverage
- tensorflow学习笔记(三十六):learning rate decay
- tensorflow学习笔记(一):tensorflow安装
- TensorFlow学习笔记(六):如何理解dropout?
- tensorflow学习笔记(七):TensorFLow实战之style_transfer(风格转换)
- TensorFlow学习笔记(六)Variable变量
- TensorFlow学习笔记(十七)tf.nn.conv2d
- tensorflow学习笔记(六):cnn过程可视化
- tensorflow学习笔记
- TensorFlow学习笔记(二)
- Tensorflow学习笔记(二):利用CNN实现手写数字(mnist)识别
- tensorflow学习笔记(5)卷积神经网络(CNN)
- tensorflow学习笔记(MNIST-2)
- Tensorflow学习笔记(2):tf.nn.dropout 与 tf.layers.dropout
- 我的tensorflow学习笔记(1)
- 【懒懒的Tensorflow学习笔记二之会话控制和变量的使用】