tensorflow-0.基本概念

Tensorflow基本概念

  1. tensorflow两个版本差异
    CPU:综合能力强,处理各种事务
    GPU:专注计算,计算单元多
    所以如果显卡支持的话,GPU版本会运行的更快

  2. 运行有CPU加速建议的warning
    如果是通过pip自动安装的tensorflow,运行时会有建议开启cpu加速的提示,关闭的方法:

import os
os.environ[‘TR_CPP_MIN_LOG_LEVEL’]=‘2’
3. tensorflow基本结构
tensor:张量,就是tensorflow的基本数据类型,实质内部时numpy中 ndarray的再封装
operation(op):专门运算的操作结点,所有操作都叫op
graph:图,表示整个程序结构,各图之间互不干扰
session:会话,所有操作都需要通过会话运行
variavle:变量,tensorflow中的一个op,默认可以训练
4. 图
默认图:获取:g=tf.get_default_graph() 创建新图:

g=tf.Graph()
with g.as_default():
pass #此内操作不再对其他图产生影响
5. 会话
一次只能运行一个图
with tf.Session(graph=g) as sess:
pass #对g图进行操作,如果Session()中参数不填写,则对默认图进行操作
打印某张量的值
p=sess.run(sum) #或则 p=sum.eval()
print§
6. 会话的run()方法
run(fetches, feed_dict=None, graph=None)
参数介绍:

张量/op的元组、列表或字典
用来覆盖指定张量的值,给placeholder使用
plt=tf.placeholder(tf.float32, [2,3])
… # 开启会话
sess.run(plt,feed_dict={plt:[[1,2,3],[4,5,6]]})
返回值异常的原因:

RuntimeError:Session可能处于无效状态,例如已关闭
TypeError:不适合的类型
ValueError:值无效或则tensor不存在
7. 张量
依赖于numpy的ndarray,一个类型化的N阶数组(tf.Tensor)
三部分组成:名字、形状、类型

形状:0维:()、1维:(1)、2维:(2, 2)、3维(3, 3, 3) 如果某一维数量不确定可用?代替

修改形状:

静态形状:
plt = tf.placeholder(tf.float32, [None, 3])
plt.set_shape([3,3])

如设置为[3,4]会报错,金泰只能对未确认的位置进行固定

动态形状
plt_reshape = tf.reshape(plt, [3,4])

会生成一个新的tensor,而静态形状是直接修该原数据

  1. 生成张量
    固定类型:

tf.zeros(shape, dtype=tf.float32, name=None):全0
tf.ones(shape, dtype=tf.float32, name=None):全1
tf.constant(value, dtype=tf.float32, shpe=None, name=None):常量
随机类型:

tf.random_normal(shape,mean=0,stddev=1.0,dtype=float32,seed=None,name=None) 满足正态分布的随机值
tf.truncated_normal(shape,mean=0,stddev=1.0,dtype=float32,seed=None,name=None) 满足不超过两个标准差的的随机值
9. 类型转换
a=tf.cast(x, dtype, name=None) 将x转换为dtype赋给a

  1. 切片与扩展
    c=tf.concat([a,b],axis=1) 将a,b按axis=1方向合并

  2. 张量的所有API
    https://tensorflow.google.cn/api_docs/python/

  3. 变量创建
    a=tf.Variable(initial_value=None,name=None,trainable=True)

a.assign(value) 为变量赋初值
a.eval(session=Node) 计算并返回值
a.name 返回变量名
注意:

变量能够持久化保存,普通张量不行
运行前鼻部初始化
13. 可视化Tensorboard
在Session中生成events文件 tf.summary.FileWriter(‘路径不包括文件名’,graph=?)
命令行启动 tensorboard --logdir=‘路径不包括文件名’
按照命令行提示打开url

猜你喜欢

转载自blog.csdn.net/weixin_43003274/article/details/83378597