求解线性回归
代码块如下
import tensorflow as tf
import numpy as np
x_data = np.random.rand(100).astype(np.float32)
y_data = 0.1*x_data +0.3
print(tf.random_uniform([1],-1,1))
weights = tf.Variable(tf.random_uniform([1],-1,1))
bias = tf.Variable(tf.zeros((1)))
y = weights*x_data+bias
loss = tf.reduce_mean(tf.square(y-y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
init = tf.global_variables_initializer()
session = tf.Session()
session.run(init)
for step in range(200):
session.run(train)
if step %20==0:
print(session.run(weights),session.run(bias))
random_uniform
tf.random_uniform((6, 6), minval=low,maxval=high,dtype=tf.float32)))返回6*6的矩阵,产生于low和high之间,产生的值是均匀分布的。
暂时没发现()和[]有什么区别
Tensorflow的优化器
Optimizer
GradientDescentOptimizer
AdagradOptimizer
AdagradDAOptimizer
MomentumOptimizer
AdamOptimizer
FtrlOptimizer
RMSPropOptimizer
详细的优化器具体可以参考https://blog.youkuaiyun.com/winycg/article/details/79363169
也可以参考我之前的博客
tf.global_variables_initializer()的目的
# 添加用于初始化变量的节点
当我们训练自己的神经网络的时候,无一例外的就是都会加上一句 sess.run(tf.global_variables_initializer()) ,这行代码的官方解释是 初始化模型的参数。那么,它到底做了些什么?
一步步看源代码:(代码在后面)
global_variables_initializer 返回一个用来初始化 计算图中 所有global variable的 op。
这个op 到底是啥,还不清楚。
函数中调用了 variable_initializer() 和 global_variables()
global_variables() 返回一个 Variable list ,里面保存的是 gloabal variables。
variable_initializer() 将 Variable list 中的所有 Variable 取出来,将其 variable.initializer 属性做成一个 op group。
然后看 Variable 类的源码可以发现, variable.initializer 就是一个 assign op。
所以: sess.run(tf.global_variables_initializer()) 就是 run了 所有global Variable 的 assign op,这就是初始化参数的本来面目。
源码如下
def global_variables_initializer():
"""Returns an Op that initializes global variables.
Returns:
An Op that initializes global variables in the graph.
"""
return variables_initializer(global_variables())
def global_variables():
"""Returns global variables.
Returns:
A list of `Variable` objects.
"""
return ops.get_collection(ops.GraphKeys.GLOBAL_VARIABLES)
def variables_initializer(var_list, name="init"):
"""Returns an Op that initializes a list of variables.
Args:
var_list: List of `Variable` objects to initialize.
name: Optional name for the returned operation.
Returns:
An Op that run the initializers of all the specified variables.
"""
if var_list:
return control_flow_ops.group(*[v.initializer for v in var_list], name=name)
return control_flow_ops.no_op(name=name)
---------------------
作者:ke1th
来源:优快云
原文:https://blog.youkuaiyun.com/u012436149/article/details/78291545
版权声明:本文为博主原创文章,转载请附上博文链接!