使用tensorflow带你5分钟快速入坑神经网络

使用tensorflow搭建自己的小demo

  1. 首先导入tensorflow的包
# 导入相关的包
import tensorflow as tf
import numpy as np
  1. 创建数据
# 使用tensorflow创建随机数据,tf默认使用np的
x_data = np.random.rand(1000).astype(np.float32)
# 创建y关联数据
y_data = x_data*0.1+0.3
  1. tensorflow建模开始,构建整个神经网络的模型
# 首先定义初始的权重和偏置,随机产生
Weights = tf.Variable(tf.random_uniform([1],-1.0,1.0))#创建0维的标量限定范围 
biases = tf.Variable(tf.zeros([1]))#设置初始的偏置为0
# 然后对以上定义好的参数建立我们初始的数学模型
y = Weights*x_data + biases
# 定义损失函数,目标是让损失值变得越来越小
loss = tf.reduce_mean(tf.square(y-y_data))
# 定义完损失函数之后要定义优化器对损失函数进行优化
# 我们选择梯度下降法进行优化,训练效率选择0.5
optimizer = tf.train.GradientDescentOptimizer(0.5)
# 定义好优化器之后,我们告诉优化器需要做什么(减少loss的值)
train = optimizer.minimize(loss)
# 此时我们已经完成了我们整个神经网络的构建了
# 我们需要初始化所有定义的tensor来构建整个'图'
init = tf.global_variables_initializer()
# 创建一个会话,会话是提供我们访问整个网络结构图的唯一入口
session = tf.Session()
# 使用session.run来激活整个神经网络
session.run(init)
  1. 整个网络已经构建完成并且激活可用,我们直接开始进行训练
#训练300次
for step in range(300):
    session.run(train)
    if step%20==0:
        print(step,session.run(Weights),session.run(biases))
0 [-0.16157272] [0.60883236]
20 [0.01327186] [0.34641898]
40 [0.07733138] [0.3121328]
60 [0.09407498] [0.30317122]
80 [0.09845136] [0.30082887]
100 [0.09959523] [0.30021665]
120 [0.0998942] [0.30005664]
140 [0.09997234] [0.30001482]
160 [0.09999278] [0.3000039]
180 [0.09999812] [0.30000103]
200 [0.09999952] [0.30000028]
220 [0.09999987] [0.30000007]
240 [0.0999999] [0.30000007]
260 [0.0999999] [0.30000007]
280 [0.0999999] [0.30000007]

可以发现,训练其实就是使用优化器来不断调整我们整个网络的结构,以期达到拟合的目的,这边是深度学习和其他机器学习算法的不同

你可能感兴趣的:(使用tensorflow带你5分钟快速入坑神经网络)