Tensorflow 学习与复习 Epoch_1 # tensorflow的一些函数方法
来源:互联网 发布:2017年时代网络诗人奖 编辑:程序博客网 时间:2024/06/05 15:11
1:
一个例子
import tensorflow as tf
import numpy as np
# 随机生成数据,100个点,x,y
x_data = np.float32(np.random.rand(2, 100)) #np.random.rand(d0,d1,...,dn) 随机生成n维矩阵
y_data = np.dot([0.100, 0.200], x_data) + 0.300 #np.dot() 矩阵相乘
# 构造一个线性模型
b = tf.Variable(tf.zeros([1])) # tf.zero() 零值初始化()中的数据结构/变量
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0) ) # tf.random_uniform() 随机初始化/变量
y = tf.matmul(W, x_data) + b # tf.matmul() 矩阵相乘
# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data)) # 定义loss函数
optimizer = tf.train.GradientDescentOptimizer(0.5) # tf.train.GradientDescentOptimizer() 算法,以0.5的learning # rate 来 train
train = optimizer.minimize(loss) # 求最小的loss
# 初始化变量
init = tf.initialize_all_variables()
# 启动图(graph)
sess = tf.Session()
sess.run(init)
# 拟合平面
for step in range(1000):
sess.run(init)
if step%100 == 0:
print(step, sess.run(W), sess.run(b))
2:
由上面例子,一些基础的常用的函数应该整理一下
同时在之后的学习中遇到新的函数都会整理进来:
numpy 中的:
np.float32()
np.random.rand(d0, d1, ..., dn) 随机生成给定shape的矩阵
np.dot() 矩阵相乘,类似于tf中的tf.matmul()
tensorflow 中的:
tf.Variable() 定义变量
tf.random_normal(shape,mean=0.0,stddev=1.0,dtype=tf.float32,seed=None,name=None)
高斯分布,均值mean,方差stddev,但是这个seed是什么不知道
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
阶段高斯分布,随机数分布在[mean-2*stddev,mean+2*stddev]中
tf.random_uniform(shape,minval=0,maxval=None,dtype=tf.float32,seed=None,name=None)
均匀随机分布,范围为[min,max]
tf.zeros(shape, type=tf.float32, name= None)
tf.ones()
tf.ones_like(tensor, dype= None, name= None)
定义一个与目标tensor大小类型一样的tensor,用1填充
tf.fill(shape, value, name= None)
tf.constant(value, dtype= None, shape= None, name= None)
创建一个常量tensor,按照给出value来赋值,可以用shape来指定其形状。value可以是一个数,也可以是一个list。
如果是一个数,那么这个常亮中所有值的按该数来赋值。
如果是list,那么len(value)一定要小于等于shape展开后的长度。赋值时,先将value中的值逐个存入。不够的部分,则全部存入value的最后一个值。
tf.shape(Tensor) 返回tensor的(形状,。。。)等参数
tf.expand_dims(tensor, dim)
为tensor加一维,参数dim为加这一个1加在张量shape_list 的shape(tensor)[dim]位置
tf.add() |tf.sub |tf.matmul() 矩阵加减乘
tf.nn.bias_add()
1. tf.add(a, b) 与 a+b
在神经网络前向传播的过程中,经常可见如下两种形式的代码:
- tf.add(tf.matmul(x, w), b)
- tf.matmul(x, w) + b
简而言之,就是 tf.add(a, b)
与 a + b
二者的区别,类似的也有,tf.assign
与 =
(赋值运算符)的差异。
在计算精度上,二者并没有差别。运算符重载的形式a+b
,会在内部转换为,a.__add__(b)
,而a.__add__(b)
会再一次地映射为tf.add
,在 math_ops.py
中相关的映射如下:
- 1
In tensorflow what is the difference between tf.add and operator (+)?
2. tf.nn.bias_add 与 tf.add
tf.nn.bias_add 是 tf.add 的一个特例,也即 tf.add 支持的操作比 tf.nn.bias_add 更多。二者均支持 broadcasting(广播机制),也即两个操作数最后一个维度保持一致。
除了支持最后一个维度保持一致的两个操作数相加外,tf.add 还支持第二个操作数是一维的情况
tf.concat(concat_dim, values, name='concat')
http://blog.csdn.net/mao_xiao_feng/article/details/53366163
tf.sparse_to_dense
(sparse_indices, output_shape, sparse_values, default_value, name=None)
http://blog.csdn.net/mao_xiao_feng/article/details/53365889
将一系列rank-R的tensor打包为一个rank-(R+1)的tensor
# ‘x’ is [1, 4], ‘y’ is [2, 5], ‘z’ is [3, 6]
pack([x, y, z]) => [[1, 4], [2, 5], [3, 6]] # 沿着第[0]维pack
pack([x, y, z], axis=1) => [[1, 2, 3], [4, 5, 6]] #沿着第[1]维pack
等价于tf.pack([x, y, z]) = np.asarray([x, y, z]) ,用法与上面的tf.concat类似
- Tensorflow 学习与复习 Epoch_1 # tensorflow的一些函数方法
- Tensorflow 学习与复习 Epoch_2
- 【Tensorflow】Tensorflow一些常用基本概念与函数
- Tensorflow 学习与复习 Epoch_3 (未完)
- tensorflow的一些基本函数
- Tensorflow的一些常见函数
- 学习Tensorflow遇到的一些不懂函数的学习
- 【Tensorflow】Tensorflow一些常用基本概念与函数(2)
- Tensorflow一些常用基本概念与函数
- Tensorflow一些常用基本概念与函数
- Tensorflow一些常用基本概念与函数
- Tensorflow一些常用基本概念与函数1
- Tensorflow一些常用基本概念与函数2
- Tensorflow一些常用基本概念与函数3
- Tensorflow一些常用基本概念与函数4
- Tensorflow一些常用基本概念与函数
- Tensorflow一些常用基本概念与函数
- Tensorflow一些常用基本概念与函数
- JavaWeb 解决中文传参乱码
- pulltorefresh上拉下拉刷新的用法
- ubuntu64-server安装
- 最长公共子序列
- PTA 7-2 列车调度(25 分)
- Tensorflow 学习与复习 Epoch_1 # tensorflow的一些函数方法
- bzoj1560 [JSOI2009]火星藏宝图(dp+贪心)
- android 五大布局(1)线性布局
- 1到100之间质数的和--JAVA
- 第一二章课后习题
- 商城模式转换,recyclerView的LinearLayoutManager转成GridLayoutManager出现的bug
- 设计模式【迭代器模式Iterator Pattern】
- 深度优先搜索之寻找路径
- G1 收集器调优