磨炼模型,练习模型

TensorFlow运营情势。加载数据、定义超参数,营造网络,陶冶模型,评估模型、预测。

学习笔记TF055:TensorFlow神经网络简单实现壹元二遍函数,tf05五tensorflow

TensorFlow运市价势。加载数据、定义超参数,营造互连网,练习模型,评估模型、预测。

协会3个知足壹元叁回函数y=ax^2+b原有数据,营造最简单易行神经网络,包含输入层、隐藏层、输出层。TensorFlow学习隐藏层、输出层weights、biases。阅览操练次数增多,损失值变化。

变动、加载数据。方程y=x^二-0.伍。构造满足方程的x、y。出席不满意方程噪声点。

import tensor flow as tf
import bumpy as np
# 构造满中壹元贰次方程的函数
x_data = np.linspace(-1,1,300)[:,np.newaxis] #
塑造起300个点,分布在-一到一区间,用np生成等差数列,300个点的一维数组转换为300x一的二维数组
noise = np.random.normal(0, 0.05, x_data.shape) #
出席噪声点,与x_data维度壹致,拟合均值0、方差0.0五号正楷字态分布
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])

营造互连网模型。

创设3个隐藏层,一个输出层。输入参数多少个变量,输入数据、输入数据维度、输出数据维度、激活函数。每层向计量化验处理(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]))
# 创设偏置:一 * 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 #获得输出数据
# 创设隐藏层,假诺隐藏层有13个神经元
h1 = add_layer(xs, 1, 20, activation_function=tf.nn.relu)
# 创设输出层,假如输出层和输入层一样,有3个神经元
prediction = add_layer(h1, 20, 1, activation_function=None)

创设损失函数,总括输出层预测值、真实值间相对误差。二者差的平方求和再取平均。梯度下落法,以0.①频率最小化损失。

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

教练模型。磨炼一千次,每肆十九回输出锻炼损失值。

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: #每四陆次打字与印刷出叁次损失值
print(sets.run(loss, feed_dict={xs: x_data, ys: y_data}))

练习权重值,模型拟合y =
x^二-0.五的全面一和-0.5。损失值越来越小,演习参数越来越逼近指标结果。评估模型,学习周详weights、biase前向传来后和真值y
= x^二-0.5结实周密比较,依照周边程度计算准确率。

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

学习率(learning
rate),设置越大,陶冶时间越短,速度越快。设置越小,磨练准确度越高。可变学习率,演习进度记录最桂准确率,延续n轮(epoch)没完结最棒准确率,认为准确率不再提升,甘休磨练,early
stopping,no_improvement-in-n规则。学习率减半,再满意时再减半。逐步接近最优解,学习率越小,准确度越高。

mini-batch大小。每批大小决定权重更新规则。整批样书梯度全体盘算完,才求平均值,更新权重。批次越大演习进程越快,利用矩阵、线性代数库加快,权重更新频率低。批次越小,陶冶进程越慢。结合机器硬件质量与数量集大小设定。

正则项周到(regularization
parameter,λ)。凭经验。复杂网络出现明显过拟合(陶冶多少准确率高,测试数据准确率下跌)。1发轫设0,明确好学习率,再给λ设值,依据准确率精细调整。

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

欢迎推荐新加坡机械学习工作机会,笔者的微信:qingxingfengzi

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

TensorFlow运维格局。加载数据、定义超参数,构建网络,磨练模型,评估模型、预测。

布局1个知足一元二回函数y=ax^贰+b原有数据,营造最简便神经互连网,包蕴输入层、隐藏层、输出层。TensorFlow学习隐藏层、输出层weights、biases。观看练习次数增添,损失值变化。

协会1个满足1元2次函数y=ax^二+b土生土长数据,创设最简便神经互连网,包涵输入层、隐藏层、输出层。TensorFlow学习隐藏层、输出层weights、biases。观看磨炼次数扩张,损失值变化。

转移、加载数据。方程y=x^2-0.伍。构造满意方程的x、y。插足不满意方程噪声点。

浮动、加载数据。方程y=x^二-0.伍。构造满意方程的x、y。参加不满足方程噪声点。

import tensor flow as tf
import bumpy as np
# 构造满中一元二回方程的函数
x_data = np.linspace(-1,1,300)[:,np.newaxis] #
构建起300个点,分布在-1到一区间,用np生成等差数列,300个点的壹维数组转换为300x一的二维数组
noise = np.random.normal(0, 0.05, x_data.shape) #
插手噪声点,与x_data维度1致,拟合均值0、方差0.0五号正楷字态分布
y_data = np.square(x_data) – 0.5 + noise # y = x^2 – 0.5 + 噪声

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

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

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

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

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

构建网络模型。

构建网络模型。

创设多少个隐藏层,一个输出层。输入参数七个变量,输入数据、输入数据维度、输出数据维度、激活函数。每层向计量化验处理(y
= weights*x
+biases),激活函数非线性化处理,输出数据。定义隐藏层、输出层:

营造三个隐藏层,三个输出层。输入参数伍个变量,输入数据、输入数据维度、输出数据维度、激活函数。每层向量化处理(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 #收获输出数据
# 创设隐藏层,要是隐藏层有13个神经元
h1 = add_layer(xs, 1, 20, activation_function=tf.nn.relu)
# 营造输出层,借使输出层和输入层一样,有贰个神经元
prediction = add_layer(h1, 20, 1, activation_function=None)

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 #得到输出数据
# 创设隐藏层,即便隐藏层有十个神经元
h1 = add_layer(xs, 1, 20, activation_function=tf.nn.relu)
# 创设输出层,假诺输出层和输入层一样,有一个神经元
prediction = add_layer(h1, 20, 1, activation_function=None)

营造损失函数,总括输出层预测值、真实值间相对误差。二者差的平方求和再取平均。梯度下落法,以0.壹频率最小化损失。

创设损失函数,计算输出层预测值、真实值间引用误差。贰者差的平方求和再取平均。梯度降低法,以0.一作用最小化损失。

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

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

磨练模型。磨炼一千次,每50次输出练习损失值。

教练模型。锻炼1000次,每43次输出磨练损失值。

init = tf.global_variables_initializer() # 起先化全部变量
sess = tf.Session()
sess.run(init)

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: #每四拾伍次打字与印刷出3遍损失值
print(sets.run(loss, feed_dict={xs: x_data, ys: y_data}))

for i in range(1000): # 训练1000次
sess.run(train_step, feed_dict = (xs: x_data, ys: y_data)
if i % 50 == 0: #每四十七遍打字与印刷出一次损失值
print(sets.run(loss, feed_dict={xs: x_data, ys: y_data}))

训练权重值,模型拟合y =
x^贰-0.5的周到壹和-0.五。损失值更小,磨练参数越来越逼近指标结果。评估模型,学习周全weights、biase前向传播后和真值y
= x^贰-0.5结出周到相比,依据周围程度总结准确率。

练习权重值,模型拟合y =
x^2-0.伍的系数一和-0.伍。损失值越来越小,磨练参数越来越逼近指标结果。评估模型,学习周详weights、biase前向传播后和真值y
= x^二-0.伍结果周密相比较,依据相近程度计算准确率。

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

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

学习率(learning
rate),设置越大,陶冶时间越短,速度越快。设置越小,磨炼准确度越高。可变学习率,演习进程记录最桂准确率,一而再n轮(epoch)没达到规定的标准最好准确率,认为准确率不再提升,甘休演练,early
stopping,no_improvement-in-n规则。学习率减半,再满足时再减半。渐渐接近最优解,学习率越小,准确度越高。

学习率(learning
rate),设置越大,磨练时间越短,速度越快。设置越小,磨练准确度越高。可变学习率,练习进程记录最桂准确率,一连n轮(epoch)没达到规定的标准最好准确率,认为准确率不再提升,结束磨练,early
stopping,no_improvement-in-n规则。学习率减半,再满足时再减半。逐步接近最优解,学习率越小,准确度越高。

mini-batch大小。每批大小决定权重更新规则。整批样书梯度全部总计完,才求平均值,更新权重。批次越大演练进程越快,利用矩阵、线性代数库加快,权重更新频率低。批次越小,磨练进程越慢。结合机器硬件品质与数码集大小设定。

mini-batch大小。每批大小决定权重更新规则。整批样书梯度全部测算完,才求平均值,更新权重。批次越大陶冶进程越快,利用矩阵、线性代数库加快,权重更新频率低。批次越小,演习进程越慢。结合机器硬件质量与数量集大小设定。

正则项周全(regularization
parameter,λ)。凭经验。复杂网络出现明显过拟合(陶冶多少准确率高,测试数据准确率降低)。壹开头设0,明确好学习率,再给λ设值,依照准确率精细调整。

正则项周密(regularization
parameter,λ)。凭经验。复杂互联网现身显著过拟合(磨练多少准确率高,测试数据准确率降低)。一伊始设0,明确好学习率,再给λ设值,依照准确率精细调整。

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

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

迎接推荐北京机械学习工作机会,小编的微信:qingxingfengzi

迎接推荐北京机械学习工作机遇,笔者的微信:qingxingfengzi

相关文章