TensorFlow教程——常用函数解析
2017-11-16 19:56
1086 查看
以下函数均返回一个Tensor对象,类似矩阵数据,包括单个值,向量,多维矩阵。
根据value和shape来创建一个常量Tensor。value可以是一个数,也可以是一个list。 如果是一个数,那么这个常量中所有值的按该数来赋值; 如果是list,那么len(value)一定要小于等于shape展开后的长度,赋值时,先将value中的值逐个存入,不够的部分,则全部存入value的最后一个值。若verify_shape为True,则value的数量跟shape的不一致时会报错。
跟tf.constant()类似,不过这里的value只能是一个数
产生均匀分布样本,范围为[minval, maxval]。
2. 正态分布
随机产生正态分布样本,均值mean,标准差stddev,默认生成标准正态分布。
3. 截断正态分布
随机产生截断正态分布样本,跟上一函数差不多,不过只保留[mean-2*stddev, mean+2*stddev]范围内的样本 ,不在此范围的重新生成,默认[-2, 2]。
4. 伽马分布
随机产生Gamma分布样本。
伽马分布密度函数:
g(t)=λαΓ(α)tα−1e−λt,t≥0
其中Γ(α)是伽马函数:
Γ(α)=∫+∞0uα−1e−udu,α>0
伽马函数是阶乘在实数域的拓展,它的来源可参考神奇的伽玛函数。
Γ(1)=∫+∞0e−udu=−e−u|+∞0=0
Γ(2)=∫+∞0ue−udu=−e−u|+∞0=1
Γ(3)=∫+∞0u2e−udu=−e−u|+∞0=2
Γ(3.5)=∫+∞0u2.5e−udu≈3.32
对于正整数来说,Γ(n)=(n−1)! 。
Python求微积分可以用
伽马分布密度函数有两个参数:α和λ,其中α表示事件发生的次数,λ表示平均每次事件发生的时间间隔。例如我们对地震发生的时间间隔进行建模,则α=1和λ=10的伽马分布密度函数,刻画的是平均10小时发生一次地震的某地区的发震时间间隔的概率分布,比如函数图像在[0,5]上的面积表示5小时发生一次地震的概率。
伽马分布密度函数图像分析:当α≤1时,函数图像都是悬崖状曲线(单调递减),当α>1时,函数图像都是山峰状曲线(凸函数);λ的变化不会改变函数图像的形状,而是随着λ的增大,函数图像向右“挤压”。因此,α又叫做形状参数(Shape Parameter),λ又叫做尺度参数(Scale Parameter)
5. 多项式分布
模拟多项式分布。logits是二维矩阵,每一行代表结果概率分布。num_samples代表独立实验次数。例如抛一枚不均匀的骰子10次,每个面的概率为[1/12, 1/12, 1/12, 3/12, 3/12, 3/12]。
随机洗牌
Randomly shuffles a tensor along its first dimension. 想象成洗牌,如value=[[1, 2], [3, 4], [5, 6]],可能返回[[3, 4], [5 6], [1, 2]]
随机裁剪
Randomly crops a tensor to a given size. 随机裁剪,想象随机裁剪一幅图像,因此需要
以上笔记部分摘抄自:
http://blog.csdn.net/u012969412/article/details/62044184
基本的两个创建常量Tensor的函数
tf.constant(value, dtype=None, shape=None, name="Const", verify_shape=False)
根据value和shape来创建一个常量Tensor。value可以是一个数,也可以是一个list。 如果是一个数,那么这个常量中所有值的按该数来赋值; 如果是list,那么len(value)一定要小于等于shape展开后的长度,赋值时,先将value中的值逐个存入,不够的部分,则全部存入value的最后一个值。若verify_shape为True,则value的数量跟shape的不一致时会报错。
tf.fill(dims, value, name=None)
跟tf.constant()类似,不过这里的value只能是一个数
类似Numpy的函数
tf.zeros(shape, dtype=dtypes.float32, name=None) tf. zeros_like(tensor, dtype=None, name=None, optimize=True) # 根据tensor的shape生成全0的Tensor tf.ones(shape, dtype=dtypes.float32, name=None) tf.ones_like(tensor, dtype=None, name=None, optimize=True) # 根据tensor的shape生成全1的Tensor tf.range(start, limit=None, delta=1, dtype=None, name="range") # 范围[start, limit),步长delta tf.lin_space(start, stop, num, name=None) # 范围[start, stop],num个数
随机生成常量
1. 均匀分布tf.random_uniform(shape, minval=0, maxval=None, dtype=dtypes.float32, seed=None, name=None)
产生均匀分布样本,范围为[minval, maxval]。
2. 正态分布
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=dtypes.float32, seed=None, name=None)
随机产生正态分布样本,均值mean,标准差stddev,默认生成标准正态分布。
3. 截断正态分布
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=dtypes.float32, seed=None, name=None)
随机产生截断正态分布样本,跟上一函数差不多,不过只保留[mean-2*stddev, mean+2*stddev]范围内的样本 ,不在此范围的重新生成,默认[-2, 2]。
4. 伽马分布
tf.random_gamma(shape, alpha, beta=None, dtype=dtypes.float32, seed=None, name=None)
随机产生Gamma分布样本。
伽马分布密度函数:
g(t)=λαΓ(α)tα−1e−λt,t≥0
其中Γ(α)是伽马函数:
Γ(α)=∫+∞0uα−1e−udu,α>0
伽马函数是阶乘在实数域的拓展,它的来源可参考神奇的伽玛函数。
Γ(1)=∫+∞0e−udu=−e−u|+∞0=0
Γ(2)=∫+∞0ue−udu=−e−u|+∞0=1
Γ(3)=∫+∞0u2e−udu=−e−u|+∞0=2
Γ(3.5)=∫+∞0u2.5e−udu≈3.32
对于正整数来说,Γ(n)=(n−1)! 。
Python求微积分可以用
sympy库。
伽马分布密度函数有两个参数:α和λ,其中α表示事件发生的次数,λ表示平均每次事件发生的时间间隔。例如我们对地震发生的时间间隔进行建模,则α=1和λ=10的伽马分布密度函数,刻画的是平均10小时发生一次地震的某地区的发震时间间隔的概率分布,比如函数图像在[0,5]上的面积表示5小时发生一次地震的概率。
伽马分布密度函数图像分析:当α≤1时,函数图像都是悬崖状曲线(单调递减),当α>1时,函数图像都是山峰状曲线(凸函数);λ的变化不会改变函数图像的形状,而是随着λ的增大,函数图像向右“挤压”。因此,α又叫做形状参数(Shape Parameter),λ又叫做尺度参数(Scale Parameter)
5. 多项式分布
tf.multinomial(logits, num_samples, seed=None, name=None)
模拟多项式分布。logits是二维矩阵,每一行代表结果概率分布。num_samples代表独立实验次数。例如抛一枚不均匀的骰子10次,每个面的概率为[1/12, 1/12, 1/12, 3/12, 3/12, 3/12]。
tf.multinomial([[1.0, 1.0, 1.0, 3.0, 3.0, 3.0]], 10),可能得到:
[[4 4 4 2 4 0 2 3 5 4]],5个5点,2个3点,1个1点,1个4点,1个6点。
随机洗牌
tf.random_shuffle(value, seed=None, name=None)
Randomly shuffles a tensor along its first dimension. 想象成洗牌,如value=[[1, 2], [3, 4], [5, 6]],可能返回[[3, 4], [5 6], [1, 2]]
随机裁剪
tf.random_crop(value, size, seed=None, name=None)
Randomly crops a tensor to a given size. 随机裁剪,想象随机裁剪一幅图像,因此需要
value.shape>=size。如
tf.random_crop([[1, 2, 3], [4, 5, 6], [7, 8, 9]], size=(2, 2)),可能返回
[[5, 6], [8,9]]。
运行
查看常量的值需要InteractiveSession:import tensorflow as tf a = tf.random_normal(shape=(5, 5)) tf.InteractiveSession() print a.eval()
以上笔记部分摘抄自:
http://blog.csdn.net/u012969412/article/details/62044184
相关文章推荐
- TensorFlow教程——nest.flatten()函数解析
- Tensorflow一些常用基本概念与函数
- tensorflow学习之常用函数总结:tensorflow.cast()函数
- TensorFlow教程——TensorArray解析
- 机器学习常用函数解析
- tensorflow笔记 :常用函数说明
- 机器学习常用python函数解析
- Tensorflow一些常用基本概念与函数(1)
- 最全面 Nginx 入门教程 + 常用配置解析
- Tensorflow一些常用基本概念与函数
- 【TensorFlow】激活函数(Activation Functions)原理解析(十二)
- 帝国cms教程之常用函数用法及实例
- TensorFlow 学习(七) — 常用函数 api、tf.nn 库
- Python学习入门基础教程(learning Python)--8.3 字典常用的方法函数介绍
- Discuz开发之function_core常用函数解析
- Tensorflow | Sequences | 常用函数介绍
- socket编程常用函数解析
- awk之7 常用函数的解析
- Tensorflow一些常用基本概念与函数(3)
- Tensorflow常用基本概念与函数(一)