tensorflow学习笔记(北京大学) tf4_2.py 完全解析 酸奶学习模型
程序员文章站
2022-07-13 12:27:24
...
#coding:utf-8
#tensorflow学习笔记(北京大学) tf4_2.py 完全解析 酸奶学习模型
#QQ群:476842922(欢迎加群讨论学习)
#酸奶成本1元, 酸奶利润9元
#预测少了损失大,故不要预测少,故生成的模型会多预测一些
#0导入模块,生成数据集
import tensorflow as tf
import numpy as np
BATCH_SIZE = 8
SEED = 23455#随机种子
COST = 1#花费
PROFIT = 9#成本
rdm = np.random.RandomState(SEED)#基于seed产生随机数
X = rdm.rand(32,2)#随机数返回32行2列的矩阵 表示32组 体积和重量 作为输入数据集
Y = [[x1+x2+(rdm.rand()/10.0-0.05)] for (x1, x2) in X]
#1定义神经网络的输入、参数和输出,定义前向传播过程。
x = tf.placeholder(tf.float32, shape=(None, 2))#占位
y_ = tf.placeholder(tf.float32, shape=(None, 1))#占位
w1= tf.Variable(tf.random_normal([2, 1], stddev=1, seed=1))#正态分布
y = tf.matmul(x, w1)#点积
#2定义损失函数及反向传播方法。
# 定义损失函数使得预测少了的损失大,于是模型应该偏向多的方向预测。
#tf.where:如果condition对应位置值为True那么返回Tensor对应位置为x的值,否则为y的值.
#where(condition, x=None, y=None,name=None)
loss = tf.reduce_sum(tf.where(tf.greater(y, y_), (y - y_)*COST, (y_ - y)*PROFIT))
train_step = tf.train.GradientDescentOptimizer(0.001).minimize(loss)#随机梯度下降
#3生成会话,训练STEPS轮。
with tf.Session() as sess:
init_op = tf.global_variables_initializer()#初始化
sess.run(init_op)
STEPS = 3000
for i in range(STEPS):#三千轮
start = (i*BATCH_SIZE) % 32
end = (i*BATCH_SIZE) % 32 + BATCH_SIZE
sess.run(train_step, feed_dict={x: X[start:end], y_: Y[start:end]})#训练
if i % 500 == 0:
print "After %d training steps, w1 is: " % (i)
print sess.run(w1), "\n"
print "Final w1 is: \n", sess.run(w1)
After 0 training steps, w1 is:
[[-0.762993 ]
[ 1.5095658]]
After 500 training steps, w1 is:
[[1.0235443]
[1.0463386]]
After 1000 training steps, w1 is:
[[1.0174844]
[1.0406483]]
After 1500 training steps, w1 is:
[[1.0211805]
[1.0472497]]
After 2000 training steps, w1 is:
[[1.0179386]
[1.0412899]]
After 2500 training steps, w1 is:
[[1.0205938]
[1.0390677]]
Final w1 is:
[[1.0296593]
[1.0484432]]
推荐阅读
-
tensorflow学习笔记(北京大学) tf4_8_forward.py 完全解析
-
tensorflow学习笔记(北京大学) tf4_8_generateds.py 完全解析
-
tensorflow学习笔记(北京大学) tf4_2.py 完全解析
-
tensorflow学习笔记(北京大学) tf4_6.py 完全解析 滑动平均
-
tensorflow学习笔记(北京大学) tf4_2.py 完全解析 酸奶学习模型
-
tensorflow学习笔记(北京大学) tf4_5.py 完全解析 设损失函数 loss=(w+1)^2
-
tensorflow学习笔记(北京大学) tf4_8_backward.py 完全解析
-
tensorflow学习笔记(北京大学) tf4_4.py 完全解析
-
tensorflow学习笔记(北京大学) tf4_7.py 完全解析 正则化