莫烦python|Tensorflow笔记--tf4、tf5

Tensorflow首先要定义神经网络的结构,然后再把数据放入结构当中进行运算和训练。 

我们要做得就是要建立一个这样的结构,然后把数据放进去,之后tensorflow就可以自己运行,tensorflow字面意思翻译过来就是向量在里面飞

这里写图片描述

上图就是一个循环,从输入层输入数据,数据飞到隐藏层再到输出层,用梯度下降法处理,完成对几个参数的更新,用更新之后的参数再次应用到隐藏层中去学习,不停的循环直至结果收敛。 
TensorFlow是采用数据流图(data flow graphs)来计算,所以首先我们得创建一个数据流流图,然后再将我们的数据(数据以张量(tensor)的形式存在)放在数据流图中计算。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。训练模型时tensor会不断的从数据流图中的一个节点flow到另一节点,这就是TensorFlow名字的由来。

例子

import tensorflow as tf
import numpy as np  # 科学计算的模块

# create data
x_data = np.random.rand(100).astype(np.float32)  # 随机生成100个数,定制成float32的形式
y_data = x_data*0.1 + 0.3

### create tensorflow structure start ###
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))   # 随机定义一个初始序列,是一维变量,取值在-1到1之间
biases = tf.Variable(tf.zeros([1]))              # 初始为0

y = Weights*x_data + biases    # 预测的y

loss = tf.reduce_mean(tf.square(y-y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)  # 优化器 用来减少误差 0.5是学习效率 一般是小于1的数
train = optimizer.minimize(loss)  # 用优化器减小误差

init = tf.initialize_all_variables()  # 初始化
### create tensorflow structure end ###

sess = tf.Session()  # session像一个指针,指向要处理的地方
# tf.initialize_all_variables() no long valid from
# 2017-03-02 if using tensorflow >= 0.12
if int((tf.__version__).split('.')[1]) < 12 and int((tf.__version__).split('.')[0]) < 1:
    init = tf.initialize_all_variables()
else:
    init = tf.global_variables_initializer()
sess.run(init)      # Very important 激活init  相当于一个session的指针

for step in range(201):   # 训练201步
    sess.run(train)   # 要训练train,也就是optimizer
    if step % 20 == 0:
        print(step, sess.run(Weights), sess.run(biases))  # 每20步打印一个结果,sess.run指向w和b并输出

结果

0 [ 0.22812711] [ 0.30664828]
20 [ 0.124109] [ 0.28806746]
40 [ 0.10579662] [ 0.29713103]
60 [ 0.10139372] [ 0.29931021]
80 [ 0.10033511] [ 0.29983416]
100 [ 0.10008058] [ 0.29996014]
120 [ 0.10001939] [ 0.29999042]
140 [ 0.10000466] [ 0.29999772]
160 [ 0.10000113] [ 0.29999945]
180 [ 0.10000028] [ 0.29999986]
200 [ 0.10000011] [ 0.29999995]

猜你喜欢

转载自blog.csdn.net/qq_27318693/article/details/82661145
今日推荐