# Tensorflow快速入门

PART

01 Tensorflow简介

1

2

3

4

5

PART

02 Tensorflow 概念介绍

import tensorflow as tf a = tf.constant(5, name="input_a") b = tf.constant(3, name="input_b") c = tf.multiply(a, b, name="mul_c") d = tf.add(a, b, name="add_d") e = tf.add(c, d, name="add_e")

sess = tf.Session() # 创建会话 print(sess.run(e)) # 运行计算图得到e sess.close() # 关闭会话

TF创建张量

# tf.zeros(shape, dtype=tf.float32, name=None) a = tf.zeros([2, 3], tf.int32) # [[0, 0, 0], [0, 0, 0]] # tf.ones(shape, dtype=tf.float32, name=None) b = tf.ones([2, 3], tf.int32) # [[1, 1, 1], [1, 1, 1]]

# tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None) a = tf.random_normal([5, 5], mean=0.0, stddev=1.0) # 均值为0，标准差为1的高斯分布 # tf.random_uniform(shape, minval=0, maxval=None, dtype=tf.float32, seed=None, name = None) b = tf.random_uniform([5, 5], minval=0, maxval=1) # [0, 1]内的均匀分布

# tf.constant(value, dtype=None, shape=None, name='Const', verify_shape=False) a = tf.constant([[0, 1], [2, 3]]) # [[0, 1], [2, 3]]

# 定义一个占位张量 a = tf.placeholder(tf.int32, [3,]) # 定义一个costant张量 b = tf.constant([1, 1, 1]) # 计算a+b c = a + b with tf.Session() as sess: # 给占位张量送入数据，并执行计算图 print(sess.run(c, feed_dict={a: [1, 2, 3]})) # [2, 3, 4]

a = tf.Variable([[2, 3], [1, 2]]) # 初始值为[[2, 3], [1, 2]] b = tf.Variable((tf.zeros([10, 10]))) # 初始值为全0，shape为[10,10]的张量 c = tf.Variable(tf.random_normal([5, 5], mean=0.0, stddev=1.0)) # 初始值为标准正态分布，shape为[5, 5]的张量

init = tf.global_variables_initializer() # 初始化所有变量的算子 with tf.Session() as sess: sess.run(init) # 执行初始化，此时变量被填值

a = tf.Variable([1, 1]) b = tf.Variable([2, 2]) assign_op = a.assign(b) # a的值用b替换 init = tf.global_variables_initializer() # 初始化所有变量的算子 with tf.Session() as sess: sess.run(init) # 执行初始化，此时变量被填值 print(sess.run(a)) # [1, 1] sess.run(assign_op) # 执行assign print(sess.run(a)) # [2, 2]

x = tf.constant([2.0, 1.0]) y = tf.constant([1.0, 2.0]) z = x * y + x * x dx, dy = tf.gradients(z, [x, y]) # 求z关于x,y的导数 with tf.Session() as sess: dx_v, dy_v = sess.run([dx, dy]) print(dx_v) # [5.0, 4.0] print(dy_v) # [2.0, 1.0]

PART

03 Tensorflow实战

```import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

# 加载mnist数据集

# 定义输入与输出
x = tf.placeholder(tf.float32, [None, 784])
y = tf.placeholder(tf.float32, [None, 10])

# 定义模型参数
W = tf.Variable(tf.random_normal([784, 10]))
b = tf.Variable(tf.zeros([10,]))

# 定义模型
output = tf.nn.xw_plus_b(x, W, b)
prob = tf.nn.softmax(output)

# 定义loss，采用交叉熵
cross_entropy = -tf.reduce_mean(tf.reduce_sum(y * tf.log(prob), axis=1))

# 定义优化器
learning_rate = 1e-04

# 定义精确度
correct_pred = tf.equal(tf.argmax(y, axis=1), tf.argmax(output, axis=1))
accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))

# 训练参数
steps = 10000
batch_size = 128

with tf.Session() as sess:
sess.run(tf.global_variables_initializer())  # 初始化参数
# 开始训练
for i in range(steps):
xs, ys = mnist.train.next_batch(batch_size)
# 执行训练
_, l = sess.run([train_op, cross_entropy], feed_dict={x:xs, y:ys})
if i % 1000 == 0:
print("Steps %d , loss: %f" % (i, l))
# 测试集上测试
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y: mnist.test.labels}))```

PART

04 结束

197 篇文章93 人订阅

0 条评论

## 相关文章

### 四个用于Keras的很棒的操作（含代码）

Keras是最广泛使用的深度学习框架之一。它在易于使用的同时，在性能方面也与TensorFlow，Caffe和MXNet等更复杂的库相当。除非你的应用程序需要一...

2114

50613

2377

1163

### [编程经验] SciPy之图像处理小结

Python中可以处理图像的module有很多个，比如Opencv，Matplotlib， Numpy， PIL以及今天要分享的SciPy。其他几个后续都会总结...

8587

1612

3707

37612

3552

5007