读书笔记TF055:TensorFlow神经网络简单实现一元二软函数。学习笔记TF055:TensorFlow神经网络简单实现一元二浅函数,tf055tensorflow

TensorFlow运行方式。加载数据、定义超参数,构建网络,训练模型,评估模型、预测。

上笔记TF055:TensorFlow神经网络简单实现一元二不好函数,tf055tensorflow

TensorFlow运行方式。加载数据、定义超参数,构建网络,训练模型,评估模型、预测。

组织一个满足一首批二涂鸦函数y=ax^2+b原来数据,构建最简便易行神经网络,包含输入层、隐藏层、输出层。TensorFlow学习隐藏层、输出层weights、biases。观察训练次数多,损失价值变化。

转移、加载数据。方程y=x^2-0.5。构造满足方程的x、y。加入不满足方程噪声点。

import tensor flow as tf
import bumpy as np
# 构造满蒙一元二次方程的函数
x_data = np.linspace(-1,1,300)[:,np.newaxis] #
构建起300个点,分布在-1到1区里边,用np生成等差数列,300只点之平等维数组转换为300×1的二维数组
noise = np.random.normal(0, 0.05, x_data.shape) #
加入噪声点,与x_data维度一致,拟合均值0、方差0.05正态分布
y_data = np.square(x_data) – 0.5 + noise # y = x^2 – 0.5 + 噪声

定义x、y占位符作输入神经网络变量。

xs = tf.placeholder(tf.float32, [None, 1])
ys = tf.placeholder(tf.float32, [None, 1])

构建网络模型。

构建一个隐藏层,一个输出层。输入参数4只变量,输入数据、输入数据维度、输出数据维度、激活函数。每层向量化处理(y
= weights*x
+biases),激活函数非线性化处理,输出数据。定义隐藏层、输出层:

def add_layer(inputs, in_size, out_size,
activation_function=None):
# 构建权重:in_size*out_size 大小的矩阵
weights = tf.Variable(tf.random_normal([in_size, out_size]))
# 构建偏置:1 * 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 #取输出数据
# 构建隐藏层,假设隐藏层有10只神经元
h1 = add_layer(xs, 1, 20, activation_function=tf.nn.relu)
# 构建输出层,假要输出层和输入层一样,有1个神经元
prediction = add_layer(h1, 20, 1, activation_function=None)

构建损失函数,计算输出层预测值、真实值间误差。二者差的平方求和另行拿走平均。梯度下降法,以0.1频率最小化损失。

loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys – prediction),
reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

教练模型。训练1000糟糕,每50蹩脚输出训练损失价值。

init = tf.global_variables_initializer() # 初始化所有变量
sess = tf.Session()
sess.run(init)

for i in range(1000): # 训练1000次
sess.run(train_step, feed_dict = (xs: x_data, ys: y_data)
if i % 50 == 0: #各50次等打印出一致次等损失价值
print(sets.run(loss, feed_dict={xs: x_data, ys: y_data}))

训练权重值,模型拟合y =
x^2-0.5的系数1及-0.5。损失价值更小,训练参数越来越薄目标结果。评估模型,学习系数weights、biase前奔传来后与真值y
= x^2-0.5结实系数比,根据相近程度计算准确率。

越参数设定。hyper-parameters,机器上型框架参数。手动设定、不断试错。

学习率(learning
rate),设置更加老,训练时进而欠,速度更是快。设置更加小,训练准确度越强。可变换学习率,训练过程记录最桂准确率,连续n轮(epoch)没上最佳准确率,认为准确率不再提高,停止训练,early
stopping,no_improvement-in-n规则。学习率减半,再满足时重减半。逐渐接近最优解,学习率越聊,准确度越强。

mini-batch大小。每批大小决定权重更新规则。整批样书梯度全部计算截止,才要平均值,更新权重。批次越老训练进度更快,利用矩阵、线性代数仓库加速,权重更新频率低。批次越小,训练进度越慢。结合机器硬件性能及数集大小设定。

凑巧则项系数(regularization
parameter,λ)。凭经验。复杂网络出现明显了拟合(训练多少准确率高,测试数据准确率下降)。一开始设0,确定好学习率,再吃λ设值,根据准确率精细调整。

参考资料:
《TensorFlow技术解析和实战》

接推荐上海机械上工作机会,我的微信:qingxingfengzi

http://www.bkjia.com/Pythonjc/1231790.htmlwww.bkjia.comtruehttp://www.bkjia.com/Pythonjc/1231790.htmlTechArticle学习笔记TF055:TensorFlow神经网络简单实现一元二次函数,tf055tensorflow
TensorFlow运行方式。加载数据、定义超参数,构建网络,训练模型,评估…

结构一个饱一处女二不好函数y=ax^2+b本来数据,构建最简便易行神经网络,包含输入层、隐藏层、输出层。TensorFlow学习隐藏层、输出层weights、biases。观察训练次数增多,损失价值变化。

转移、加载数据。方程y=x^2-0.5。构造满足方程的x、y。加入不满足方程噪声点。

import tensor flow as tf
import bumpy as np
# 构造满蒙一元二次方程的函数
x_data = np.linspace(-1,1,300)[:,np.newaxis] #
构建起300个点,分布于-1到1区里头,用np生成等差数列,300只点之均等维数组转换为300×1之二维数组
noise = np.random.normal(0, 0.05, x_data.shape) #
加入噪声点,与x_data维度一致,拟合均值0、方差0.05正态分布
y_data = np.square(x_data) – 0.5 + noise # y = x^2 – 0.5 + 噪声

定义x、y占位符作输入神经网络变量。

xs = tf.placeholder(tf.float32, [None, 1])
ys = tf.placeholder(tf.float32, [None, 1])

构建网络模型。

构建一个隐藏层,一个输出层。输入参数4单变量,输入数据、输入数据维度、输出数据维度、激活函数。每层向量化处理(y
= weights*x
+biases),激活函数非线性化处理,输出数据。定义隐藏层、输出层:

def add_layer(inputs, in_size, out_size,
activation_function=None):
# 构建权重:in_size*out_size 大小的矩阵
weights = tf.Variable(tf.random_normal([in_size, out_size]))
# 构建偏置:1 * 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 #落输出数据
# 构建隐藏层,假设隐藏层有10单神经元
h1 = add_layer(xs, 1, 20, activation_function=tf.nn.relu)
# 构建输出层,假要输出层和输入层一样,有1个神经元
prediction = add_layer(h1, 20, 1, activation_function=None)

构建损失函数,计算输出层预测值、真实值间误差。二者差的平方求和重复沾平均。梯度下降法,以0.1效率最小化损失。

loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys – prediction),
reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

训练模型。训练1000糟,每50糟输出训练损失价值。

init = tf.global_variables_initializer() # 初始化所有变量
sess = tf.Session()
sess.run(init)

for i in range(1000): # 训练1000次
sess.run(train_step, feed_dict = (xs: x_data, ys: y_data)
if i % 50 == 0: #每50潮打印出同不好损失价值
print(sets.run(loss, feed_dict={xs: x_data, ys: y_data}))

训练权重值,模型拟合y =
x^2-0.5的系数1同-0.5。损失价值更粗,训练参数越来越薄目标结果。评估模型,学习系数weights、biase前于传播后以及真值y
= x^2-0.5结实系数比较,根据相近程度计算准确率。

超越参数设定。hyper-parameters,机器上型框架参数。手动设定、不断试错。

学习率(learning
rate),设置更怪,训练时更欠,速度越来越快。设置更聊,训练准确度越强。可易学习率,训练过程记录最桂准确率,连续n轮(epoch)没上最佳准确率,认为准确率不再提高,停止训练,early
stopping,no_improvement-in-n规则。学习率减半,再满足时又减半。逐渐接近最优解,学习率越聊,准确度越强。

mini-batch大小。每批大小决定权重更新规则。整批样书梯度全部测算了,才要平均值,更新权重。批次越怪训练进度更是快,利用矩阵、线性代数库房加速,权重更新频率低。批次越聊,训练进度越慢。结合机器硬件性能及数量集大小设定。

正要则项系数(regularization
parameter,λ)。凭经验。复杂网络出现显著了拟合(训练多少准确率高,测试数据准确率下降)。一开始设0,确定好学习率,再吃λ设值,根据准确率精细调整。

参考资料:
《TensorFlow技术解析及实战》

迎推荐上海机械上工作时,我的微信:qingxingfengzi