《学术小白的学习之路 09》Tensorflow构建神经网络及其线性预测

书山有路勤为径,学海无涯苦作舟

  • 凡我不能创造的,我就不能理解
  • 年少不知愁滋味,识尽已过半余生

0 吃水不忘挖井人

原文链接
本文仅仅是对老师的学习总结,深入学习请支持老师的专刊

1.基础

激励函数
在这里插入图片描述

2.基础线性预测

2.1 定义x与y

x_data = np.random.rand(100).astype(np.float32)
x_data

array([0.31643674, 0.41896215, 0.9565355 , 0.26387843, 0.1386797 ,
0.7995507 , 0.95173264, 0.7368756 , 0.45786074, 0.9282564 ,
0.33079717, 0.9413649 , 0.07254787, 0.05659018, 0.25660256,
0.8353821 , 0.8647862 , 0.63502145, 0.9445729 , 0.13132158,
0.36272913, 0.8295511 , 0.38492438, 0.13560924, 0.7609099 ,
0.61876464, 0.01994181, 0.21931633, 0.6077617 , 0.20126577,
0.00889996, 0.071509 , 0.7599394 , 0.484272 , 0.02160514,
0.47822624, 0.18867029, 0.28840616, 0.09138368, 0.9152412 ,
0.4948804 , 0.44964537, 0.24259704, 0.37928325, 0.80003816,
0.07945208, 0.22445445, 0.975669 , 0.46585223, 0.9792802 ,
0.93128484, 0.8924253 , 0.7472319 , 0.37019694, 0.9010612 ,
0.66373396, 0.5142349 , 0.96667933, 0.25537804, 0.53754914,
0.4022136 , 0.4429519 , 0.8105122 , 0.73954076, 0.75219274,
0.5237604 , 0.58045846, 0.81374824, 0.11936764, 0.37671807,
0.40414917, 0.19340084, 0.4668596 , 0.35392874, 0.8262725 ,
0.8458066 , 0.92787874, 0.01829264, 0.20704101, 0.7663111 ,
0.71842116, 0.26344728, 0.40293914, 0.10487937, 0.00747042,
0.5407038 , 0.7570565 , 0.12365275, 0.1927579 , 0.5878373 ,
0.5609076 , 0.9780079 , 0.8511153 , 0.36223495, 0.29827732,
0.3897059 , 0.18022062, 0.9991688 , 0.5150761 , 0.49380884],
dtype=float32)

y_data = x_data *0.1 + 0.3
y_data

array([0.3316437 , 0.34189624, 0.39565358, 0.32638785, 0.313868 ,
0.37995508, 0.39517328, 0.37368757, 0.3457861 , 0.39282566,
0.33307973, 0.3941365 , 0.3072548 , 0.30565903, 0.32566026,
0.38353822, 0.38647863, 0.36350214, 0.3944573 , 0.31313217,
0.33627293, 0.38295513, 0.33849245, 0.31356093, 0.376091 ,
0.3618765 , 0.3019942 , 0.32193166, 0.3607762 , 0.3201266 ,
0.30089 , 0.3071509 , 0.37599397, 0.3484272 , 0.30216053,
0.34782264, 0.31886703, 0.3288406 , 0.3091384 , 0.39152414,
0.34948805, 0.34496456, 0.32425973, 0.33792832, 0.38000384,
0.30794522, 0.32244545, 0.3975669 , 0.34658524, 0.39792803,
0.3931285 , 0.38924253, 0.3747232 , 0.3370197 , 0.39010614,
0.36637342, 0.3514235 , 0.39666796, 0.3255378 , 0.35375494,
0.34022138, 0.3442952 , 0.38105124, 0.3739541 , 0.3752193 ,
0.35237604, 0.35804585, 0.38137484, 0.31193677, 0.33767182,
0.34041494, 0.3193401 , 0.34668598, 0.3353929 , 0.38262725,
0.38458067, 0.39278787, 0.30182928, 0.3207041 , 0.37663114,
0.37184215, 0.32634473, 0.3402939 , 0.31048796, 0.30074707,
0.3540704 , 0.37570566, 0.3123653 , 0.3192758 , 0.35878375,
0.35609078, 0.3978008 , 0.38511154, 0.3362235 , 0.32982776,
0.3389706 , 0.31802207, 0.3999169 , 0.35150763, 0.3493809 ],
dtype=float32)

2.2 定义权重与偏置

import tensorflow as tf

Weights = tf.Variable(tf.random_uniform([1],-1.0,1.0))
#Weights

biases = tf.Variable(tf.zeros([1]))
#biases

2.3 定义损失函数

损失值 = 预测y - 真实y

y = Weights * x_data +biases #预测y

loss = tf.reduce_mean(tf.square(y-y_data))

2.4定义优化器(梯度下降法 )

optimizetr = tf.train.GradientDescentOptimizer(learning_rate=0.5)
train = optimizer.minimize(loss)

2.5 初始化变量

init = tf.global_variables_initializer()

2.6 训练

# 定义Session 
sess = tf.Session()
# 运行时Session就像一个指针 指向要处理的位置并激活
sess.run(init)  
# 训练201次
for n in range(201):
    # 训练并且每隔20次输出结果
    sess.run(train)
    if n % 20 == 0:
        # 最佳拟合结果 W: [0.100], b: [0.300]
        print(n, sess.run(Weights), sess.run(biases))


# 可视化分析
plt.scatter(x_data, y_data)
plt.plot(x_data, pre, 'r-')
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驭风少年君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值