在学习深度学习等知识之前,首先得了解著名的框架TensorFlow里面的一些基础知识,下面首先看一下这个框架的一些基本用法。

import tensorflow as tf
a = 3 # Python中普通的变量创建方式 # Create a variable.
w = tf.Variable([[0.5, 1.0]]) # tensorflow创建变量方式
x = tf.Variable([[2.0], [1.0]]) y = tf.matmul(w, x) # 矩阵内积 变量的操作
print(y) # tensor 里面没有具体的值 # variables have to be explicitly initialized before you can run Ops
# 初始化全局变量 w,x,y
init_op = tf.global_variables_initializer()
# 计算图
with tf.Session() as sess:
sess.run(init_op)
print(y.eval()) # 通过这种方式打印具体的值

得到的结果是:

Tensor("MatMul_2:0", shape=(1, 1), dtype=float32)
[[2.]]

通过上面可以看出,只是简单的一个矩阵的乘法,我们就写了这么多的代码,看起来比较麻烦,但是没有办法,要用这个框架就必须按照它的用法去用,但是在用这个框架来写深度学习里面的代码,那就不是很复杂了。上面的代码展示了TensorFlow框架的基本用法,导入库、变量定义、初始化变量、Session操作、然后才能进行具体的操作。

下面学习一下TensorFlow框架中一些函数的用法,可以和numpy库中的一些函数对比着学习。

from numpy import int32
# float32 在TensorFlow最好使用这种格式 # 创建都是0的矩阵
tf.zeros([3, 4], int32) # ==> [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] tensor = tf.constant([[1, 2, 3], [4, 5, 6]])
# 矩阵格式相似
tf.zeros_like(tensor) # ==> [[0, 0, 0], [0, 0, 0]] # 矩阵元素都为1
tf.ones([2, 3], int32) # ==> [[1, 1, 1], [1, 1, 1]]
tf.ones_like(tensor) # ==> [[1, 1, 1], [1, 1, 1]] # Constant 1-D Tensor populated with value list.
# 创建一个常量,必须使用这种方式
tensor = tf.constant([1, 2, 3, 4, 5, 6, 7]) # => [1 2 3 4 5 6 7] # Constant 2-D tensor populated with scalar value -1.
# 创建二维矩阵常量
tensor = tf.constant(-1.0, shape=[2, 3]) # => [[-1. -1. -1.]
# [-1. -1. -1.]] # 创建间隔矩阵
tf.linspace(10.0, 12.0, 3, name="linspace") # => [ 10.0 11.0 12.0] # 'start' is 3
# 'limit' is 18
# 'delta' is 3
# tf.range(start, limit, delta)
tf.range(3, 18, 3)# ==> [3, 6, 9, 12, 15]

可以看出TensorFlow里面一些函数和numpy里面的用法差不多,下面看看TensorFlow中随机数的一些用法。

# 高斯分布的均值矩阵  指定均值和方差
norm = tf.random_normal([2, 3], mean=-1, stddev=4) # Shuffle the first dimension of a tensor
c = tf.constant([[1, 2], [3, 4], [5, 6]]) # shuffle操作
shuff = tf.random_shuffle(c) # Each time we run these ops, different results are generated
# 要执行这些操作的方法。推荐使用上面With结构
sess = tf.Session()
print(sess.run(norm))
print(sess.run(shuff))

运行得到的结果是

[[-2.4004993   5.356218    0.51297414]
[-4.353016 2.234075 -4.2948236 ]]
[[1 2]
[3 4]
[5 6]]

下面来看一个使用TensorFlow完成打印0到4之间的数字这样的一个小栗子,在原生Python中很简单,主要看看在TensorFlow中的用法。

# 打印0到4之间的的值
state = tf.Variable(0) # 初始化常量0
new_value = tf.add(state, tf.constant(1)) # 执行加1操作
update = tf.assign(state, new_value) # 将new_value赋给state # Session计算块
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(state))
for _ in range(3):
sess.run(update)
print(sess.run(state))

得到的结果是

0
1
2
3

下面再来看看在创建变量时将numpy里面的格式转换为tensor格式,但是并不推荐使用这种方法

import numpy as np
a = np.zeros((3,3)) # 将numpy里面的格式转换为tensor格式,并不推荐使用这种方法
# 推荐使用上面创建变量的方法
ta = tf.convert_to_tensor(a)
with tf.Session() as sess:
print(sess.run(ta))

得到的结果是

[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]

下面再来看看TensorFlow中占位符的用法

# 创建占位符,用的时候再具体赋值。
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.multiply(input1, input2) # 矩阵元素相乘
with tf.Session() as sess:
print(sess.run([output], feed_dict={input1:[7.], input2:[2.]}))

得到的结果是

[array([14.], dtype=float32)]

总结,这篇博文包含了TensorFlow框架中一些常见的用法,但是肯定很多细节没有写全,只是写了一些大概的用法留作以后查看。

  

最新文章

  1. [恶趣味]搞了下局域网内的arp网络欺骗
  2. [UWP]UWP App Data存储和获取
  3. hdu 1048 The Hardest Problem Ever
  4. ubuntu terminal 介绍及相关命令
  5. JS思维导图
  6. 送给刚刚開始学cocos2d-x引擎 移植Android的同学
  7. [bzoj2957][楼房重建] (线段树)
  8. C语言:json库使用学习
  9. 圆形border渐变加载
  10. Android的ListView异步加载图片时,错位、重复、闪烁问题的分析及解决方法
  11. Rabbitmq集群高可用
  12. Python开发【内置模块篇】datetime
  13. 关于sql的查询操作记录
  14. day24,python习题
  15. Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码
  16. windows 安装 mysql5.7.17
  17. Java环境变量设置辅助工具
  18. 网络采集软件核心技术剖析系列(5)---将任意博主的全部博文下载到内存中并通过Webbrower显示(将之前的内容综合到一起)
  19. CocoSourcesCS 4
  20. python+NLTK 自然语言学习处理七:N-gram标注

热门文章

  1. Java 复制PPT幻灯片
  2. UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 16: illegal multibyte sequence
  3. 牛客暑假多校第六场 I Team Rocket
  4. 牛客网暑期ACM多校训练营(第二场) D money 思维
  5. window对象,BOM,window事件,延时器,DOM
  6. Springboot2.x 自动创建表并且执行初始化数据
  7. redis事务与关系型数据库事务比较
  8. Linux基础提高_sudo,行为审计,跳板机
  9. 剑指offer】Java版代码(完整版)
  10. ElasticSearch常见经典面试题