TensorFlow 内置重要函数解析
概要
本部分介绍一些在 TensorFlow 中内置的重要函数,了解这些函数有时候更加方便我们进行数据的处理或者构建神经网络。
这些函数如下:
tf.one_hot()
tf.random_shuffle()
主要内容
tf.one_hot()
这是一个用来生成符合 one_hot 编码的张量的函数。完整参数形式是:
tf.one_hot(indices, depth, on_value=None, off_value=None, axis=None, dtype=None, name=None)
下面我们一一通过实例来了解各个参数表示什么意思。
为了容易理解,我们举个例子,比如我们熟悉的 mnist 数据集中标签的 one_hot 编码中,数字 4 是用向量 \([0,0,0,0,1,0,0,0,0,0]\) 来表示的。
on_value,float 类型,表示在 one_hot 编码中标签标记值,在上述编码中on_value的值就是 1off_value, float 类型,就是标记点除外的其它值,即off_value为 0indices,一个列表,表示要生成的 one_hot 张量中标记值所在索引,即indices = [4]depth,int 类型,表示要生成的 one_hot 张量的长度,即depth = 10Axis,取值为 -1,0 或 1,Axis取 -1 时造成的张量shape=[indices 长度, depth],默认值虽是 None,但是和取 -1 效果一样。为 0 时shape=[depth, indices 长度],取 1 时,比较复杂,是指在三维以上情况下,比方考虑批量输入中,有个批 batch 大小,shape=[batch, indices 长度, depth],具体的可以做下实验验证就好,不需要刻意去记。
下面用代码验证一下:
# -*- coding: utf-8 -*-
"""
Created on Mon Jun 4 08:56:57 2018
@author: zhoukui
"""
import tensorflow as tf
tf.reset_default_graph()
indices = [0, 2, -1, 1, 2]
depth = 4
on_value = 3.0
off_value = 0.0
axis = -1
t = tf.one_hot(indices, depth, on_value, off_value, axis)
with tf.Session() as sess:
print(sess.run(t)) #输出 [[ 3. 0. 0. 0.]
# [ 0. 0. 3. 0.]
# [ 0. 0. 0. 0.]
# [ 0. 3. 0. 0.]
# [ 0. 0. 3. 0.]]
tf.random_shuffle()
这个函数相对简单,它就一个参数 input,表示沿着 input 的第一维度进行随机重新排列,在进行数据分批的时候特别实用。实例如下:
# -*- coding: utf-8 -*-
"""
Created on Mon Jun 4 08:56:57 2018
@author: zhoukui
"""
import tensorflow as tf
tf.reset_default_graph()
input = tf.reshape(tf.linspace(1.0, 10.0, 10), (-1,2))
tf.set_random_seed(666) # 可以选择固定种子
t = tf.random_shuffle(input)
with tf.Session() as sess:
print(sess.run(input)) # 输出 [[ 1. 2.]
# [ 3. 4.]
# [ 5. 6.]
# [ 7. 8.]
# [ 9. 10.]]
print(sess.run(t)) #输出 [[ 7. 8.]
# [ 5. 6.]
# [ 1. 2.]
# [ 3. 4.]
# [ 9. 10.]]
TensorFlow 内置重要函数解析的更多相关文章
- 浏览器内置Console函数使用详解
浏览器内置Console函数比较好用:Chrome 和 FireFox(Firebug插件) 利用此功能可以像直接在面板里面运行JS一样(写法不同而已) 一.显示信息的命令 Firebug内置一个co ...
- javascript笔记整理(回调、递归、内置顶层函数)
1.回调函数(通过函数的指针来调用函数,把一个函数的指针做为另一个函数的参数,当调用这个参数的时候,这个函数就叫做回调函数) a.通过指针来调用 function aa(a,b,fun){ retur ...
- 如何利用.Net内置类,解析未知复杂Json对象
如何利用.Net内置类,解析未知复杂Json对象 如果你乐意,当然可以使用强大的第三方类库Json.Net中的JObject类解析复杂Json字串 . 我不太希望引入第三方类库,所以在.Net内置类J ...
- 【学习】js学习笔记:内置顶层函数eval()的兼容用法
今天学了一个内置顶层函数,eval();其作用是将字符串转换成javascript命令执行,但必须符合语法,否则会报错. 如果写成window.eval(),则其定义的变量会在全局生效. 但是,在IE ...
- 学习angularjs的内置API函数
angularjs的内置API函数有很多,如isString()判断给定的对象是否为字符串,如果是返回 true,反之返回false:isNumber()判断给定的对象是否为数字,如果是返回 true ...
- PHP内置安全函数一览
内置安全函数 filter_var函数 根据参数中的过滤类型进行过滤,如过滤Email类型的,则符合的字符串返回字符串,不符合的返回False. urldecode函数 写这个函数是特别为了提醒注意, ...
- Python descriptor 以及 内置property()函数
Python Descriptor 1, Python Descriptor是这样一个对象 它按照descriptor协议, 有这样的属性之一 def __get__(self, obj, type ...
- JavaWeb -jsp文件和内置对象的解析
jsp文件和内置对象的解析 对page解析 JSP九大内置对象(自带,无需new) 1 out:输出对象 2 request:请求对象,存储“客户端像服务端发送的请求信息” 3 response:响应 ...
- Oracle SQL常用内置系统函数总结
Oracle数据库 内置系统函数主要分为以下类别:数学函数.字符串函数.日期函数.转换函数.聚合函数.分析聚合函数 一.数学函数 ------------返回数字 abs(n):返回数字 ...
随机推荐
- 清北刷题冲刺 11-03 p.m
三向城 #include<iostream> #include<cstdio> using namespace std; int n,x,y; int main(){ freo ...
- bzoj2039: [2009国家集训队]employ人员雇佣(最小割)
传送门 膜一下大佬->这里 不难看出这是一个最小割的模型(然而我看不出来) 我们从源点向每一个点连边,容量为他能带来的总收益(也就是他能对其他所有经理产生的贡献) 然后从每一个点向汇点连边,容量 ...
- springboot jpa mongodb 多条件分页查询
public Page<Recorded> getRecordeds(Integer page, Integer size, Recorded recorded) { if (page&l ...
- IDEA调试方法总结及各种Step的区别
1.打断点 IDEA 添加断点的方式还是比较简单的,我们可以直接在某一行的代码行号后点击鼠标左键进行添加 2.启动调试 如果我们想要调试我们的程序,那我们必须以DEBUG的形式启动我们的程序,以DEB ...
- 一些有关PyCharm使用总结
目前在这里,你能看见 license server Python版本配置 添加另外版本的Python 设置字体大小 关于编码 关于模版 安装好之后,第一个问题就是 license server 问题, ...
- 1095 Cars on Campus(30 分
Zhejiang University has 8 campuses and a lot of gates. From each gate we can collect the in/out time ...
- 关于jetty的那些奇葩问题
Jetty的解压目录并不像Tomcat那样直接是在webapps下,如果你什么都不做修改的话,Ubuntu14.04下Jetty的默认解压目录是/var/cache/jetty/data/下: 比如我 ...
- poj(3080)
题目链接:http://poj.org/problem?id=3080 学习博客:https://www.cnblogs.com/acjiumeng/p/6818213.html Blue Jeans ...
- Maven插件和细节
1.父工程统一版本号 <!-- 集中定义依赖版本号 --> <properties> <junit.version>4.12</junit.version&g ...
- 在sublime text3下,用快捷键把文件打开到浏览器中
使用背景 在编辑html或者js文件的时候,是否想在浏览器中预览一下, 你的步骤可能是这样的: 找到编辑文件的位置, 右键使用某一浏览器打开.如果是这样,你就out了, 因为在sublime中有更加简 ...