Tensorflow从0到1(2)之基础知识
张量
张量是tensorflow中的基本数据结构
# 全零张量
zero_tsr = tf.zeros([row_dim, col_dim])
# 全1张量
ones_tsr = tf.ones([row_dim, col_dim])
# 填充张量
filled_tsr = tf.fill([row_dim, col_dim], 42)
# 常量
constant_tsr1 = tf.constant([1,2,3])
constant_tsr2 = tf.constant(42, [row_dim, col_dim])
# 形状相似的张量
zeros_similar = tf.zeros_like(constant_tsr)
ones_similar = tf.ones_like(constant_tsr)
# 序列张量
linear_tsr = tf.linspace(start=0., stop=1., num=3)
inter_seq_tsr = tf.range(start=6, limit=15, delta=3) # 不包括limit
# 随机张量
randunif_tsr = tf.random_uniform( # 均匀分布
[row_dim, col_dim], # 维度
minval=0, maxval=1) # 最大值(不包含),最小值
randnorm_tsr = tf.random_normal( # 正态分布
[row_dim, col_dim], #维度
mean = 0.0, # 均值
stddev = 1.0) # 标准差
truncnorm_tsr = tf.truncated_normal( # 截断正态分布,只取两个标准差之间的数
[row_dim, col_dim],
mean = 0.0,
stddec = 1.0)
## 张量随机洗牌,对每列
shuffled_output = tf.random_shuffle(input_tensor)
## 张量随机裁剪
cropped_output = tf.random_crop(input_tensor, crop_size) # 把张量随机裁剪成指定尺寸
cropped_image = tf.random_crop(my_image, [height/2, width/2, 3]) # 例如把图片长宽缩短一半
变量
tf.Variable()中传入一个张量就可以创建变量了
my_var = tf.Variable(tf.zeros([row_dim, col_dim]))
延伸学习
可以使用tf.convert_to_tensor()函数将任意numpy数组转换为张量,或者将常量转换为一个张量。
创建变量并初始化
my_var = tf.Variable(tf.zeros([2,3]))
sess = tf.Session()
initialize_op = tf.global_variable_initializer()
sess.run(initialize_op)
占位符
占位符仅仅声明数据位置,用于传入数据到计算图。占位符通过feed_dict参数获取数据。
sess = tf.Session()
x = tf.placeholder(shape=[2,2], dtype=tf.float32)
y = tf.identity(x) # return a tensor with the same shape and contents as input.
x_vals = np.random.rand(2,2)
sess.run(y, feed_dict={x:x_vals})
变量初始化延伸
tf.global_variables_initializer()函数会一次性初始化所创建的所有变量,使用方法如下:
initializer_op = tf.global_variables_initializer()
但是,如果是基于已经初始化的变量进行初始化,则必须按顺序初始化
sess = tf.Session()
first_var = tf.Variable(tf.zeros([2,3]))
sess.run(first_var.initializer)
second_var = tf.Variable(tf.zeros_like(first_var))
sess.run(second_var.initializer)
矩阵操作
import tensorflow as tf
sess = tf.Session()
identity_matrix = tf.diag([1., 1., 1.]) # 用tf.diag创建对角矩阵
A = tf.truncated_normal([2, 3])
B = tf.fill([2, 3], 5.0)
C = tf.random_uniform([3, 2])
D = tf.convert_to_tensor(np.array([[1., 2., 3.],
[-3., -7., -1.],
[0., 5., -2.]]))
# 矩阵加法
print(sess.run(A+B))
print(sess.run(tf.add(A,B)))
# 矩阵减法
print(sess.run(A-B))
print(sess.run(tf.subtract(A,B))
# 矩阵乘法
print(sess.run(tf.matmul(B, identity_matrix)))
# 矩阵转置
print(sess.run(tf.transpose(C)))
# 矩阵行列式
print(sess.run(tf.matrix_determinant(D)))
# 矩阵的逆
print(sess.run(tf.matrix_inverse(D)))
# 矩阵Cholesky分解
print(sess.run(tf.cholesky(identity_matrix)))
# 矩阵特征值和特征向量
print(sess.run(tf.self_adjoint_eig(D)))
矩阵的其他操作
add()、subtract()、multiply()、div()加、减、乘、除法,都是逐元素操作(elememt-wise)
# 注意div()对整数操作会向下取整
print(sess.run(tf.div(3,4))) # 输出为零
# truediv()会先转换为浮点数再相除
print(sess.run(tf.truediv(3,4))) # 输出0.75
# 对浮点数进行整数除法,可以使用floordiv()函数
print(sess.run(tf.floordiv(3.0, 4.0))) # 输出 0.0
另一个重要的函数是取模运算mod()
print(sess.run(tf.mod(22.0, 5.0))) # 输出 2.0
cross()函数计算两个张量间的点积。 (这个不是很懂?~?!)
print(sess.run(tf.cross([1., 0., 0.], [0., 1., 0.])))
常用数学函数列表
| 函数 | 功能 |
|---|---|
| abs() | 返回输入参数张量的绝对值 |
| ceil() | 返回输入参数张量的向上取整结果 |
| cos() | 返回输入参数张量的余弦值 |
| exp() | 返回输入参数张量的自然常数e的指数 |
| floor() | 返回输入参数张量的向下取整结果 |
| inv() | 返回输入参数张量的倒数 |
| log() | 返回输入参数张量的自然对数 |
| maximum() | 返回两个输入参数张量中的最大值 |
| minimum() | 返回两个输入参数张量中的最小值 |
| neg() | 返回输入参数张量的负值 |
| pow() | 返回输入参数第一个张量的第二个张量次幂 |
| round() | 返回输入参数张量的四舍五入结果 |
| rsqrt() | 返回输入参数张量的平方根的倒数 |
| sign() | 根据输入参数张量的符号,返回-1, 0 或1 |
| sin() | 返回输入参数张量的正弦值 |
| square() | 返回输入参数张量的平方 |
特殊数学函数列表
注:这里的函数不是很懂,日后用到了再深究
| 函数 | 功能 |
|---|---|
| digamma() |
|
| erf() | 返回张量的高斯误差函数 |
| erfc() | 返回张量的互补误差函数 |
| igamma() | 返回下不完全 |
| igammac() | 返回上不完全全 |
| lbeta() | 返回贝塔函数绝地值得自然对数 |
| lgamma() | 返回 |
| squared_difference() | 返回两个张量间差值的平方 |
实现激励函数
激励函数主要是为计算图归一化返回结果而引进的非线性部分。激励函数位于tensorflow的nn库(neural network, nn)。
| 激励函数 | 定义 | 备注 |
|---|---|---|
| tf.nn.relu() | max(0, x) | 大于零取原值,小于零取零 |
| tf.nn.relu6() | min(6, max(0, x)) | 大于六取六,其他与relu一样 |
| tf.nn.sigmoid() | 0到1之间平滑的s曲线 | |
| tf.nn.tanh() | -1到1之间平滑的s型曲线 | |
| softsign() | 符号函数的连续估计 | |
| softplus() | ReLU函数的平滑版 | |
| tf.nn.elu() | …… |
Tensorflow从0到1(2)之基础知识的更多相关文章
- 三分钟快速上手TensorFlow 2.0 (上)——前置基础、模型建立与可视化
本文学习笔记参照来源:https://tf.wiki/zh/basic/basic.html 学习笔记类似提纲,具体细节参照上文链接 一些前置的基础 随机数 tf.random uniform(sha ...
- ZYNQ笔记(0):C语言基础知识复习
ZYNQ的SDK是用C语言进行开发的,C语言可以说是当今理工类大学生的必备技能.我本科学C语言时就是对付考试而已,导致现在学ZYNQ是一脸懵逼.现在特开一帖,整理一下C语言的基础知识. 一.定义 1. ...
- java8新特性视频、spring4.0视频讲解,javaee基础知识讲解等网址汇总
1.http://ke.atguigu.com/ 海量视频首页 2.http://ke.atguigu.com/course/56 java8新特性学习地址
- 三分钟快速上手TensorFlow 2.0 (中)——常用模块和模型的部署
本文学习笔记参照来源:https://tf.wiki/zh/basic/basic.html 前文:三分钟快速上手TensorFlow 2.0 (上)——前置基础.模型建立与可视化 tf.train. ...
- C# 基础知识系列-13 常见类库(三)
0. 前言 在<C# 基础知识系列- 13 常见类库(二)>中,我们介绍了一下DateTime和TimeSpan这两个结构体的内容,也就是C#中日期时间的简单操作.本篇将介绍Guid和Nu ...
- C# 基础知识系列- 16 开发工具篇
0. 前言 这是C# 基础知识系列的最后一个内容讲解篇,下一篇是基础知识-实战篇.这一篇主要讲解一下C#程序的结构和主要编程工具. 1. 工具 工欲善其事必先利其器,在实际动手之前我们先来看看想要编写 ...
- tensorflow笔记(一)之基础知识
tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...
- 【深度学习与TensorFlow 2.0】入门篇
注:因为毕业论文需要用到相关知识,借着 TF 2.0 发布的时机,重新捡起深度学习.在此,也推荐一下优达学城与 TensorFlow 合作发布的TF 2.0入门课程,下面的例子就来自该课程. 原文发布 ...
- Tensorflow深度学习之十二:基础图像处理之二
Tensorflow深度学习之十二:基础图像处理之二 from:https://blog.csdn.net/davincil/article/details/76598474 首先放出原始图像: ...
随机推荐
- 【转】Mac系统常用快捷键大全
Mac系统常用快捷键大全 通用 Command是Mac里最重要的修饰键,在大多数情况下相当于Windows下的Ctrl.所以以下最基本操作很好理解: Command + Z 撤销 Command + ...
- Python中ThreadLocal的理解与使用
一.对 ThreadLocal 的理解 ThreadLocal,有的人叫它线程本地变量,也有的人叫它线程本地存储,其实意思一样. ThreadLocal 在每一个变量中都会创建一个副本,每个线程都可以 ...
- linux 权限笔记
权限模型 linux权限模型,指的是对文件.文件夹同的读写权限,同用户之间的权限管理模型 三种角色 user 文件.文件夹的创建者,所有人 group 一个group对应多个user,user自动具有 ...
- Python操作Word与Excel并打包
安装模块 # Word操作库 pip install docx # Excel操作库 pip install openpyxl # 打包exe工具 pip install pyinstaller Wo ...
- [SD.TEAM语录]AC语录
决定做了就要马上去做,不要有任何犹豫 本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士) 转载自[宝宝巴士SuperDo团队] 原文链接: http:// ...
- [Objective-C] 012_数据持久化_XML属性列表,NSUserDefaults
在日常开发中经常要对NSString.NSDictionary.NSArray.NSData.NSNumber这些基本类的数据进行持久化,我们可以用XML属性列表持久化到.plist 文件中,也可以用 ...
- nginx学习资料整理一
一.安装运行 1.1.安装环境支撑 1.gcc 环境,一般情况linux 系统自带该环境,也可自行下载安装使用新版本: 2.pcre 环境,一般需自行安装,其是一个perl库,包含正则表达式等功能,h ...
- 04 . Nginx的Rewrite重写
Rewrite简介 # Rewrite对应URL Rewrite,即URL重写,就是把传入web的请求重定向到其他URL的过程. # 当运维遇到要重写情况时,往往是要程序员把重写规则写好后,发给你,你 ...
- Windows平台搭建Git服务教程详解
引言 软件企业的核心就是代码,如何确保代码的安全?如何在团队开发中协同工作?为解决这些问题,我们需要采用相应的管理工具来满足管理的需求.探长从最初的VSS.SVN.TFS到现在的Git存储一路走来,感 ...
- fix元素居中
今天的一个面试题,我是这么写的: div{ position:fixed; margin:auto; left:; right:; top:; bottom:; width:200px; height ...