深度学习:tensorflow框架
tensor(张量)就是数据的意思
operation(op)专门运算的操作节点,所有操作都是一个op
graph(图):整个程序的结构
Session(会话)运行程序的图,就是输出
变量和张量不一样
计算密集型:tensorflow cpu计算
IO密集型:web,scrapy http请求 磁盘操作等等
一、会话:tf.Session()
运行图的结构,分配资源计算,掌握资源(变量的资源,队列,多线程)
run就是运行图的结构,运行op
二、张量
张量的阶和数据类型
数据类型 float32 32位浮点数 float64 64位浮点数 代表的精度不一样
张量的属性
三、变量
变量也是一种op,是一种特殊的张量,能够进行存储持久化(可以保存在文件中,保存系数),它的值就是张量,默认被训练
四、线性回归(预测值)
权重+偏置
变量作用域能够更加清楚的看到程序的部分,模型代码更加清晰,代码分明
五、提高IO读取速度
可以通过多线程,子线程来读取数据,主线程来进行训练模式
队列:从一端进从另一端出,先进先出
线程协调器:
tf.train.Coordinator() 线程协调员,实现一个简单的机制来协调一个组线程的终止
六、图片的读取
每个图片由像素组成,图片数字化三要素:长度 宽度 通道数
黑白图片为单通道图片,灰度值[0-255],一个像素点只有一个值 200*200=40000
彩色图片是三通道图片,RGB一个像素点由三个值组成 200*200*3=120000
如何用张量表达图片的数据?3D张量 [height,width,channels]
每个样本必须保持特征值数量一样,所有图片统一特征的数量,像素值一样,就是让他们的长宽一样,减少数据量
tf.image.resize_images(images,size)缩小图片
[100,200,200,1]一百张长宽是200的黑白图片单通道就是黑白图片
图片用uint8进行存储。用float32进行计算
七、感知机
定义:有n个输入数据,通过权重与各数据之间的计算和,比较激活函数结果,得出输出。
softmax计算属于哪个类别的概率,交叉熵损失公式来计算
tf.placeholder(
dtype,
shape=None,
name=None
)
dtype:数据类型。常用的是tf.float32,tf.float64等数值类型
shape:数据形状。默认是None,就是一维值,也可以是多维(比如[2,3], [None, 3]表示列是3,行不定)
name:名称
# 随机初始化权重和偏置
weight = tf.Variable(tf.random_normal([784, 10], mean=0.0, steedv=1.0,name="w"))
bias = tf.Variable(tf.constant(0.0, shape=[10]))
# 预测None个样本的输出结matrix=[None,784]*[784,10]+[10]=[None,10]
y_predict = tf.matmul(x, weight) + bias