炼数成金Tensorflow学习笔记之2.4_Tensorflow简单示例
代码及分析
"""
Created on Sat Mar 14 10:19:12 2020
@author: 寒火qwer
"""
import tensorflow as tf
import numpy as np
x_data = np. random. rand( 100 )
y_data = x_data * 0.1 + 0.2
b = tf. Variable( 0 . )
k = tf. Variable( 0 . )
y = k * x_data + b
loss = tf. reduce_mean( tf. square( y_data - y) )
optimizer = tf. train. GradientDescentOptimizer( 0.2 )
train = optimizer. minimize( loss)
init_op = tf. global_variables_initializer( )
with tf. Session( ) as sess:
sess. run( init_op)
for step in range ( 201 ) :
sess. run( train)
if step% 20 == 0 :
print ( sess. run( [ k, b] ) )
'''
运行结果:
[0.05650742, 0.10101616]
[0.10541707, 0.19695188]
[0.10316595, 0.19821858]
[0.10185029, 0.19895889]
[0.10108138, 0.19939153]
[0.100632, 0.19964439]
[0.10036936, 0.19979218]
[0.10021586, 0.19987854]
[0.10012616, 0.19992901]
[0.10007373, 0.19995852]
[0.10004308, 0.19997576]
'''
np.random.rand (d0,d1,d2……dn) 作用:返回对应维度的一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1),不包括1。tf.square (x, name=None) 作用:计算x中每个元素的平方tf.reduce_mean (input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None) 作用:计算张量的各个维度上的元素的平均值. axis是tf.reduce_mean函数中的参数,按照函数中axis给定的维度减少input_tensor.除非keep_dims是true,否则张量的秩将在axis的每个条目中减少1.如果keep_dims为true,则缩小的维度将保留为1. 如果axis没有条目,则减少所有维度,并返回具有单个元素的张量. input_tensor :要减少的张量.应该有数字类型. axis :要减小的尺寸.如果为None(默认),则减少所有维度.必须在[-rank(input_tensor), rank(input_tensor))范围内. keep_dims :如果为true,则保留长度为1的缩小尺寸. name :操作的名称(可选).tf.train.GradientDescentOptimizer (learning_rate, use_locking=False,name=’GradientDescent’) minimize () 函数处理了梯度计算和参数更新两个操作 compute_gradients () 函数用于获取梯度 apply_gradients () 用于更新参数 添加链接描述 添加链接描述