张量

张量是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() 函数, lgamma()函数导数
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)之基础知识的更多相关文章

  1. 三分钟快速上手TensorFlow 2.0 (上)——前置基础、模型建立与可视化

    本文学习笔记参照来源:https://tf.wiki/zh/basic/basic.html 学习笔记类似提纲,具体细节参照上文链接 一些前置的基础 随机数 tf.random uniform(sha ...

  2. ZYNQ笔记(0):C语言基础知识复习

    ZYNQ的SDK是用C语言进行开发的,C语言可以说是当今理工类大学生的必备技能.我本科学C语言时就是对付考试而已,导致现在学ZYNQ是一脸懵逼.现在特开一帖,整理一下C语言的基础知识. 一.定义 1. ...

  3. java8新特性视频、spring4.0视频讲解,javaee基础知识讲解等网址汇总

    1.http://ke.atguigu.com/     海量视频首页 2.http://ke.atguigu.com/course/56    java8新特性学习地址

  4. 三分钟快速上手TensorFlow 2.0 (中)——常用模块和模型的部署

    本文学习笔记参照来源:https://tf.wiki/zh/basic/basic.html 前文:三分钟快速上手TensorFlow 2.0 (上)——前置基础.模型建立与可视化 tf.train. ...

  5. C# 基础知识系列-13 常见类库(三)

    0. 前言 在<C# 基础知识系列- 13 常见类库(二)>中,我们介绍了一下DateTime和TimeSpan这两个结构体的内容,也就是C#中日期时间的简单操作.本篇将介绍Guid和Nu ...

  6. C# 基础知识系列- 16 开发工具篇

    0. 前言 这是C# 基础知识系列的最后一个内容讲解篇,下一篇是基础知识-实战篇.这一篇主要讲解一下C#程序的结构和主要编程工具. 1. 工具 工欲善其事必先利其器,在实际动手之前我们先来看看想要编写 ...

  7. tensorflow笔记(一)之基础知识

    tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...

  8. 【深度学习与TensorFlow 2.0】入门篇

    注:因为毕业论文需要用到相关知识,借着 TF 2.0 发布的时机,重新捡起深度学习.在此,也推荐一下优达学城与 TensorFlow 合作发布的TF 2.0入门课程,下面的例子就来自该课程. 原文发布 ...

  9. Tensorflow深度学习之十二:基础图像处理之二

    Tensorflow深度学习之十二:基础图像处理之二 from:https://blog.csdn.net/davincil/article/details/76598474   首先放出原始图像: ...

随机推荐

  1. 【转】Mac系统常用快捷键大全

    Mac系统常用快捷键大全 通用 Command是Mac里最重要的修饰键,在大多数情况下相当于Windows下的Ctrl.所以以下最基本操作很好理解: Command + Z 撤销 Command + ...

  2. Python中ThreadLocal的理解与使用

    一.对 ThreadLocal 的理解 ThreadLocal,有的人叫它线程本地变量,也有的人叫它线程本地存储,其实意思一样. ThreadLocal 在每一个变量中都会创建一个副本,每个线程都可以 ...

  3. linux 权限笔记

    权限模型 linux权限模型,指的是对文件.文件夹同的读写权限,同用户之间的权限管理模型 三种角色 user 文件.文件夹的创建者,所有人 group 一个group对应多个user,user自动具有 ...

  4. Python操作Word与Excel并打包

    安装模块 # Word操作库 pip install docx # Excel操作库 pip install openpyxl # 打包exe工具 pip install pyinstaller Wo ...

  5. [SD.TEAM语录]AC语录

    决定做了就要马上去做,不要有任何犹豫     本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士) 转载自[宝宝巴士SuperDo团队] 原文链接: http:// ...

  6. [Objective-C] 012_数据持久化_XML属性列表,NSUserDefaults

    在日常开发中经常要对NSString.NSDictionary.NSArray.NSData.NSNumber这些基本类的数据进行持久化,我们可以用XML属性列表持久化到.plist 文件中,也可以用 ...

  7. nginx学习资料整理一

    一.安装运行 1.1.安装环境支撑 1.gcc 环境,一般情况linux 系统自带该环境,也可自行下载安装使用新版本: 2.pcre 环境,一般需自行安装,其是一个perl库,包含正则表达式等功能,h ...

  8. 04 . Nginx的Rewrite重写

    Rewrite简介 # Rewrite对应URL Rewrite,即URL重写,就是把传入web的请求重定向到其他URL的过程. # 当运维遇到要重写情况时,往往是要程序员把重写规则写好后,发给你,你 ...

  9. Windows平台搭建Git服务教程详解

    引言 软件企业的核心就是代码,如何确保代码的安全?如何在团队开发中协同工作?为解决这些问题,我们需要采用相应的管理工具来满足管理的需求.探长从最初的VSS.SVN.TFS到现在的Git存储一路走来,感 ...

  10. fix元素居中

    今天的一个面试题,我是这么写的: div{ position:fixed; margin:auto; left:; right:; top:; bottom:; width:200px; height ...