Tensorflow | Tensorflow官方教程学习笔记之介绍

 

题外话:

躲是躲不掉的,就要开始使用最受欢迎的深度学习框架了。如之前 Pytorch入门之框架介绍,Tensorflow的前身为Theano,将所有运算转化为图结构,但有着代码可读性较难,上手较难的门槛。Anyway,开始学习吧!

 

作为明星的深度学习框架,线上已有众多入门博客。为避免踩坑,我直接看了 Tensorflow官方中文社区文档。本文记录的是官方文档《介绍》篇的学习笔记。

 

一、介绍

介绍篇主要给出简单的线性拟合例子,以下为全部代码。基本上手敲一遍+随时随地print中间变量之后可以有比较深刻的体验,对大概的训练过程有初步的认识。

import tensorflow as tf
import numpy as np

# 使用 NumPy 生成随机数据(phony data),总共100个点,数据类型为32位浮点型
# 此处打印x_data,即可x_data.shape为(2, 100)
x_data = np.float32(np.random.rand(2, 100)) # 随机输入

# np.dot为numpy的接口,功能是实现矩阵乘,等同于后文出现的tf.matmul
# 此处操作为[0.100, 0.200] × x_data(size为2×100)+0.300,得到 1 × 100的矩阵结果
y_data = np.dot([0.100, 0.200], x_data) + 0.300

# 构造一个线性模型
# tf.Variable声明变量,初始化为0
b = tf.Variable(tf.zeros([1]))
# tf.random_uniform()返回[1, 2]尺寸的矩阵,数据范围在区间[-1.0, 1.0]之间,均匀分布
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
# tf.matmul()如之前所述为矩阵乘操作,W为[1, 2] 乘 x_data得到结果尺寸为[1, 100]
y = tf.matmul(W, x_data) + b

# 最小化方差
# tf.reduce_mean()按照某一维度取数据的均值,不指定维度则取所有数值的均值
# tf.square()平方运算操作
loss = tf.reduce_mean(tf.square(y - y_data))
# tf.train.GradientDescentOptimizer()为梯度下降算法,参数为learning rate
optimizer = tf.train.GradientDescentOptimizer(0.5)
# optimizer最小化loss更新参数
train = optimizer.minimize(loss)

# 初始化变量
# 这个方法在2017年被弃用,之后使用tf.global_variables_initializer
# tf.global_variables_initializer返回的op对全局变量进行初始化
init = tf.initialize_all_variables()

# 启动图 (graph)
# 启动图的第一步是创建一个会话session
sess = tf.Session()
# 对变量进行初始化
sess.run(init)

# 拟合平面
# 在python3里使用range代替xrange
for step in xrange(0, 201):
    # 运行对loss最小化的train过程
    sess.run(train)
    if step % 20 == 0:
        # 打印训练过程中的参数值
        print step, sess.run(W), sess.run(b)

# 得到最佳拟合结果 W: [[0.100  0.200]], b: [0.300]
# 我运行之后得到的 W: [[0.100001 0.199999]], b: [0.299999]

 

官方给出的代码注释不是很全,为方便刻度,我把每行都进行了解释,方便日后复习。读示例代码时,发现很好用的官方文档,链接贴出来:https://www.tensorflow.org/api_docs/python/tf/ 遇到不懂得Op可以即查即用。Tensorflow第一课ending~

 

P.S. :

听着火箭少女的《绽放》,以歌词为结尾:

“面朝天空去闪亮,面朝大海去远航”

“面朝悲伤不绝望,面朝命运不投降”

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值