Tensorflow常用函数说明
1.矩阵操作
1.1矩阵生成
这部分主要将如何生成矩阵,包括全0矩阵,全1矩阵,随机数矩阵,常数矩阵等
sess=tf.InteractiveSession()
#x=tf.ones([2,3],tf.int32)
x=tf.zeros([2,3],tf.int32)
print (sess.run(x))
新建一个与给定的tensor类型大小一致的tensor,使其所有元素为0和1
sess=tf.InteractiveSession()
tensor=[[1,2,3],[4,5,6]]
#x=tf.ones_like(tensor)
x=tf.zeros_like(tensor)
print (sess.run(x))
创建一个形状大小为shape的tensor,初始值为value
sess=tf.InteractiveSession()
x=tf.fill([2,3],2)
print (sess.run(x))
创建一个常量tensor,按照给出value来赋值,可以用shape来指定其形状。value可以是一个数,也可以是一个list。
如果是一个数,那么这个常量中所有值的按该数来赋值。
如果是list,那么len(value)一定要小于等于shape展开后的长度。赋值时,先将value中的值逐个存入。不够的部分,则全部存入value的最后一个值。
sess=tf.InteractiveSession()
#x=tf.constant(2,shape=[2,3])
x=tf.constant([2,3],shape=[2,3])
print (sess.run(x))
random_normal:正态分布随机数,均值是mean,标准差是stddev
truncated_normal:截断正态分布随机数,均值是mean,标准差是stddev,只保留[mean-2*stddev,mean+2*stddev]范围内的随机数
random_uniform:均匀分布随机数,范围为[minval,maxval]
sess=tf.InteractiveSession()
x=tf.random_normal(shape=[1,5],mean=0.0,stddev=1.0,dtype=tf.float32)
print (sess.run(x))
tf.get_variable(name, shape=None, dtype=dtypes.float32, initializer=None,
regularizer=None, trainable=True, collections=None,
caching_device=None, partitioner=None, validate_shape=True,
custom_getter=None):
如果在该命名域中之前已经有名字=name的变量,则调用那个变量;如果没有,则根据输入的参数重新创建一个名字为name的变量。
initializer为初始化工具,有tf.zero_initializer,tf.ones_initializer,tf.constant_initializer,tf.random_uniform_initializer,tf.random_normal_initializer,tf.truncated_normal_initializer
1.2 矩阵变换
tf.shape(Tensor)
返回张量的形状。但是注意,tf.shape函数本身也是返回一个张量。而在tf中,张量是需要用sess.run(Tensor)
来得到具体的值的。
sess=tf.InteractiveSession()
x=[[1,2,3],[4,5,6]]
shape=tf.shape(x)
print (shape)
print (sess.run(shape)) Tensor("Shape:0", shape=(2,), dtype=int32)
[2 3]
tf.expand_dims(Tensor,dim)
为张量增加一个维度
sess=tf.InteractiveSession()
x=[1,2,3]
y=tf.expand_dims(x,1)
print (sess.run(y)) [[1]
[2]
[3]] #y=tf.expand_dims(x,0)
[[1,2,3]]
tf.pack()
将一个R维张量列表沿着axis轴组合成一个R+1维的张量。
x=[1,4]
y=[2,5]
z=[3,6]
t=tf.stack([x,y,z],1)
print (sess.run(t)) [[1 2 3]
[4 5 6]]
tf.concat(concat_dim,values)将张量沿着指定的维数拼接起来。
tf.sparse_to_dense()将稀疏矩阵转化为密集矩阵
def sparse_to_dense(sparse_indices,
output_shape,
sparse_values,
default_value=0,
validate_indices=True,
name=None):
sparse_indices: 元素的坐标[[0,0],[1,2]] 表示(0,0),和(1,2)处有值
output_shape: 得到的密集矩阵的shape
sparse_values: sparse_indices坐标表示的点的值,可以是0D或者1D张量。若0D,则所有稀疏值都一样。若是1D,则len(sparse_values)应该等于len(sparse_indices)
default_values: 缺省点的默认值
tf.random_shuffle(value)
沿着value的第一维进行随机重新排列。
tf.argmax|tf.argmin(input=tensor,dimension=axis)
找到给定的张量tensor在指定轴axis上的最大值/最小值的位置。
tf.equal(x,y)
判断两个tensor是否每个元素都相等。
tf.cast(x,dtype)
将x的数据格式转化为dtype。
tf.matmul(a,b,transpose_a=False,transpose_b=False,a_is_parse=False,b_is_sparse=False)
如果对应的transpose项为True,例如transpose_a=True,那么a在参与运算之前就会先转置一下。
而如果a_is_sparse=True,那么a会被当做稀疏矩阵来参与运算。
tf.reshape(tensor,shape)
如果shape=[-1],表示将tensor展开成一个list。
2. 神经网络相关操作
tf.nn.embedding_lookup(params,ids)
简单来说,就是讲一个数字序列ids转化成embedding序列表示。
tf.trainable_variables()
返回所有可以训练的变量。
tf.gradients(ys,xs)
ys和xs都可以是一个tensor或者tensor列表。而计算完成以后,该函数会返回一个长为len(xs)的tensor列表,列表中的每个tensor是ys中每个值对xs[i]求导之和。
tf.clip_by_global_norm(t_list,clip_norm)
修正梯度值,用于控制梯度爆炸的问题。梯度爆炸和梯度弥散的原因一样,都是因为链式法则求导的关系,导致梯度的指数级衰减。为了避免梯度爆炸,需要对梯度进行修剪。
t_list为待修剪的张量,clip_norm表示修剪比例,函数返回两个参数:list_clipped,修剪后的张量,以及global_norm,一个中间计算量。
list_clipped[i]=t_list[i] * clip_norm / max(global_norm, clip_norm),其中
global_norm = sqrt(sum([l2norm(t)**2 for t in t_list]))
tf.nn.dropout(x,keep_prob)
按照概率将x中的一些元素置0,并将其他的值放大。x是一个张量,而keep_prob是一个(0,1]之间的值。x中的各个元素清零的概率互相独立,为1-keep_prob,而没有清零的元素,则会统一乘以1/keep_prob, 目的是为了保持x的整体期望值不变。
3.普通操作
tf.linspace|tf.range
tf.linspace(start,stop,num)
在[start,stop]的范围内产生num个数的等差数列,start和stop要用浮点数进行表示。
tf.range(start,limit=None,delta=1) 在[start,limit)范围内以步进值delta产生等差数列。
tf.assign(ref,value)
用来更新模型中变量的值,ref是待赋值的变量,value是更新的值。
4.规范化
tf.variable_scope
为变量添加命名域
with tf.variable_scope("foo"):
tf.get_variable_scope()返回当前变量的命名域。
Tensorflow常用函数说明的更多相关文章
- 深度学习TensorFlow常用函数
tensorflow常用函数 TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU.一般你不需要显式指定使用 CPU 还是 GPU, Tensor ...
- TensorFlow 常用函数汇总
本文介绍了tensorflow的常用函数,源自网上整理. TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU.一般你不需要显式指定使用 CPU ...
- TensorFlow 常用函数与方法
摘要:本文主要对tf的一些常用概念与方法进行描述. tf函数 TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU.一般你不需要显式指定使用 CP ...
- TensorFlow常用函数
[1]卷积层(Convolutional Layer),构建一个2维卷积层,常用的参数有 conv = tf.layers.conv2d( inputs=pool, filters=64, kerne ...
- Tensorflow常用函数说明(一)
首先最开始应该清楚一个知识,最外面的那个[ [ [ ]]]括号代表第一维,对应维度数字0,第二个对应1,多维时最后一个对应数字-1:因为后面有用到 1 矩阵变换 tf.shape(Tensor) 返回 ...
- tensorflow常用函数解析
一.tf.transpose函数的用法 tf.transpose(input, [dimension_1, dimenaion_2,..,dimension_n]):这个函数主要适用于交换输入张量的不 ...
- tensorflow常用函数解释
从二维数组中选一个矩形 import tensorflow as tf data = [[1,2,3,4,5,6,7,8],[11,12,13,14,15,16,17,18]] x = tf.stri ...
- tensorflow常用函数(二)
一.变量相关的函数 1)tf.train.list_variables(ckpt_dir_or_file) Returns list of all variables in the checkp ...
- tensorflow常用函数库
归一化函数: def norm_boxes(boxes, shape): """Converts boxes from pixel coordinates to norm ...
随机推荐
- 什么是Viewport
什么是Viewport 手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机 ...
- MySQL如何进行索引重建操作?
在MySQL数据库中,没有类似于SQL Server数据库或Oracle数据库中索引重建的语法(ALTER INDEX ... REBUILD),那么在MySQL数据库中,是否有什么方式重建索引呢? ...
- NOIP模拟 32
我在31反思中膜拜过了B哥 没想到这次又... 我给老姚家丢脸了...STO 首先T1暴力就写挂了... 贪图从$n^3$*$2^n$优化成$n^2$*$2^n$然后打错了 哗哗的扔分 而且正解都想不 ...
- python爬虫-携程-eleven参数
携程-eleven分析 一.eleven的位置 通过对旁边栈的分析,它是在另一个js文件中调用的.那个js文件是一个自调用的函数,所以我们可以直接copy下来,用浏览器执行看看 执行运行是会报错的,u ...
- C表达式中的汇编指令
C 表达式中的汇编指令 asm 为 gcc 中的关键字,asm 表达式为在 C代码中嵌套汇编指令,该表达式只是单纯的替换出汇编代码,并不对汇编代码的含义进行解析. asm 表达式有两种形式,第二种 a ...
- 利用Python获取统计自己的qq群成员信息
利用python获取自己的qq群成员信息! 首先说明一下需要使用的工具以及技术:python3 + selenium selenium安装方法:pip install selenium 前提:获取自己 ...
- 014.Kubernetes二进制部署docker
一 部署docker 1.1 部署docker组件 docker 运行和管理容器,kubelet 通过 Container Runtime Interface (CRI) 与它进行交互. 1.2 下载 ...
- nyoj 366 D的小L (全排列)
D的小L 时间限制:4000 ms | 内存限制:65535 KB 难度:2 描述 一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡匡玩但又怕匡匡生气,这时小L给 ...
- requests模拟登陆的三种方式
###获取登录后的页面三种方式: 一.实例化seesion,使用seesion发送post请求,在使用他获取登陆后的页面 import requests session = requests.sess ...
- JS三座大山再学习(一、原型和原型链)
原文地址 ## 前言 西瓜君之前学习了JS的基础知识与三座大山,但之后工作中没怎么用,印象不太深刻,这次打算再重学一下,打牢基础.冲鸭~~ 原型模式 JS实现继承的方式是通过原型和原型链实现的,JS中 ...