初步认识 库的用途
初步学习 数据的操作
2.1 本次实验主要使用的 ℎ库
| 名称 | 简介 |
| | 数组运算、矩阵运算、生成随机数
| | 深度学习第三方库 |
2.2 理论学习
的基本概念
2.3 实践实验
的安装
常量、变量、会话的创建以及它的属性
3.1 先导课程
需要具备 ℎ基础
需要具备数据可视化基础
3.2 学习者
本科学生、研究生
人工智能、算法相关研究者、开发者
3.3 课程范畴
大数据、与人工智能
TensorFlow基本概念
使用图(graphs)来表示计算任务
在被称之为会话(Session)的上下文(Context)中执行图
使用 Tensor 表示数据
通过变量(Variable)维护状态
使用 feed 和 Fetch 可以为任意的操作赋值或者从中获取数据
TensorFlow 是一个编程系统,使用图 graphs 来表示计算任务,图 graphs 中的节点称之为 operation,一个 operation 获得 0 个或者多个 Tensor,执行计算,产生 0 个或者多个 Tensor。Tensor 看作是一个 n 维的数组或者列表。图必须在会话 Session 里被启动。
**首先,安装本次实验需要的 第三方库。**
!pip install numpy==1.16.0
!pip install tensorflow==1.13.1
import tensorflow as tf
**步骤 2.1 创建常量创建计算**
# 创建两个常量
m1 = tf.constant([[3, 3]])
m2 = tf.constant([[2], [3]])
#创建一个矩阵乘法,并把m1,m2传入
product = tf.matmul(m1, m2)
print(product)
**步骤 2.2 创建 Session 会话,完成上述计算**
# 定义Session,启动会话
sess = tf.Session()
#调用run方法调用会话,查看计算结果
result = sess.run(product)
print(result)
sess.close()
**步骤 2.3 创建 Session 会话,展示计算结果**
with tf.Session() as sess:
result = sess.run(product)
print(result)
**步骤 3.1 变量的定义以及计算**
#定义常量
x = tf.Variable([1, 2])
#定义常量
a = tf.constant([3, 3])
#定义减法操作
sub = tf.subtract(x, a)
#定义加法操作
add = tf.add(x, sub)
#全局初始化变量
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
# 打印计算结果
print(sess.run(sub))
print(sess.run(add))
**步骤 3.2 变量的自增操作**
# 创建一个变量初始化为0
state = tf.Variable(0, name='counter')
# 创建一个操作,作用是使 state 加 1
new_value = tf.add(state, 1)
# 赋值
update = tf.assign(state, new_value)
# 初始化全局变量
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(sess.run(state))
for _ in range(4):
sess.run(update)
print(sess.run(state))
步骤 4.1 Fetch 操作
# Fetch 同时运行多个操作
input1 = tf.constant(3.0)
input2 = tf.constant(2.0)
input3 = tf.constant(5.0)
# 定义计算操作
add = tf.add(input2, input3)
mul = tf.multiply(input1, add)
# 定义会话
with tf.Session() as sess:
result = sess.run([mul, add])
print(result)
**步骤 4.2 Feed 操作**
# Feed
# 创建占位符 placeholder
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.multiply(input1, input2)
with tf.Session() as sess:
# feed 的数据以字典的形式传入
print(sess.run(output, feed_dict={input1: [8.], input2: [2. ]}))
# 引入第三方库 TensorFlow 与 Numpy
import tensorflow as tf
import numpy as np
# 使用numpy生成100个随机点
x_data = np.random.rand(100)
y_data = x_data*0.1 + 0.2
# 创建一个线性模型
b = tf.Variable(0.)
k = tf.Variable(0.)
y = k*x_data + b
# 损失函数
loss = tf.reduce_mean(tf.square(y_data - y))
# 定义一个随机梯度下降法来进行训练器
optimizer = tf.train.GradientDescentOptimizer(0.2)
# 最小化loss
train = optimizer.minimize(loss)
# 初始化变量
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for step in range(201):
sess.run(train)
# 每 20step 打印一次结果
if step%20 == 0:
print('step: ', step, 'K & b: ', sess.run([k, b]), 'loss: ', sess.run(loss))
本节实验首先讲述了,TensorFlow的常量、变量的定义、Session 对话方法的简单用法。
根据最后面的小例子,尝试修改不同的 K&b 值观察神经网络是否能够优化出相应的参数。