tensorflow学习笔记--构建一个初始的神经网络

原学习视频链接如下所示:
https://www.bilibili.com/video/BV1Lx411j7ws?p=9&vd_source=86dc52f925822270fe5d0498ebe0afd2

import  tensorflow as tf
print('Tensorflow Vesion:{}'.format(tf.__version__))#输出tensorflow版本,这里版本为2.50
import numpy as np

#tensorflow2.0以上的版本会出现一些不同
#为确保高版本的TF支持低版本的TF代码,升级脚本加入了 compat.v1 模块
#关闭立即执行的函数
#“loss传递给Optimizer.compute_gradients启用了一个立即执行的函数。在Tensorflow 2.0中,eager execution默认开启。
tf.compat.v1.disable_eager_execution()


#创建数据集
x_data=np.random.rand(100).astype(np.float32)
y_data=x_data*0.1+0.3

#初始化权重和偏置
Weigths=tf.Variable(tf.random.uniform([1],-0.1,0.1))
biases=tf.Variable(tf.zeros([1]))

#预测值
y=Weigths*x_data+biases

#损失误差
loss=tf.reduce_mean(tf.square(y-y_data))

#构建优化器并对参数进行优化,使误差最小
optimizer=tf.compat.v1.train.GradientDescentOptimizer(0.5)
train=optimizer.minimize(loss)

#建立变量后还要出示话变量
init=tf.compat.v1.global_variables_initializer()#初始化神经网络的结构


#创建结构图
sess=tf.compat.v1.Session()
#激活结构图
#run()相当于一个指针
sess.run(init)

#优化训练
for step in range(200):
    sess.run(train)#指向需要优化的损失函数
    if step %20==0:
        print(step,sess.run(Weigths),sess.run(biases))
print('训练结束!')

结果:可见weigths和biases在训练过程中逐渐接近0.1和0.3

0 [0.22956732] [0.3162965]
20 [0.12569664] [0.2861895]
40 [0.10704458] [0.29621392]
60 [0.10193123] [0.2989621]
80 [0.10052945] [0.29971546]
100 [0.10014514] [0.29992202]
120 [0.10003977] [0.29997864]
140 [0.10001092] [0.29999414]
160 [0.10000302] [0.2999984]
180 [0.10000083] [0.29999956]
训练结束!

进程已结束,退出代码为 0

注意!!
tensorflow2.0以上的的版本有些不支持原有版本里面的用法
如:
1.均匀分布
原版本:

tf.random_uniform()

2.0以上版本:

tf.random.uniform()

2.AttributeError: module 'tensorflow._api.v2.train' has no attribute 'GradientDescentOptimizer’
原版本:

tf.train.GradientDescentOptimizer(0.5)

2.0以上版本:

tf.compat.v1.train.GradientDescentOptimizer(0.5)

其中compat.v1是为了高版本的tf可以支持低版本里面的代码

同理:
3.创建结构图
原版本:

sess=tf.compat.v1.Session()

2.0以上版本:

sess=tf.compat.v1.Session()

4.初始化神经网络结构
原版本:

init=tf.global_variables_initializer()
或:
Init=tf.initialize_all_variables()

2.0以上版本:

init=tf.compat.v1.global_variables_initializer()#初始化神经网络的结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值