概要

本部分介绍一些在 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 的值就是 1
  • off_value, float 类型,就是标记点除外的其它值,即 off_value 为 0
  • indices ,一个列表,表示要生成的 one_hot 张量中标记值所在索引,即 indices = [4]
  • depth,int 类型,表示要生成的 one_hot 张量的长度,即 depth = 10
  • Axis,取值为 -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 内置重要函数解析的更多相关文章

  1. 浏览器内置Console函数使用详解

    浏览器内置Console函数比较好用:Chrome 和 FireFox(Firebug插件) 利用此功能可以像直接在面板里面运行JS一样(写法不同而已) 一.显示信息的命令 Firebug内置一个co ...

  2. javascript笔记整理(回调、递归、内置顶层函数)

    1.回调函数(通过函数的指针来调用函数,把一个函数的指针做为另一个函数的参数,当调用这个参数的时候,这个函数就叫做回调函数) a.通过指针来调用 function aa(a,b,fun){ retur ...

  3. 如何利用.Net内置类,解析未知复杂Json对象

    如何利用.Net内置类,解析未知复杂Json对象 如果你乐意,当然可以使用强大的第三方类库Json.Net中的JObject类解析复杂Json字串 . 我不太希望引入第三方类库,所以在.Net内置类J ...

  4. 【学习】js学习笔记:内置顶层函数eval()的兼容用法

    今天学了一个内置顶层函数,eval();其作用是将字符串转换成javascript命令执行,但必须符合语法,否则会报错. 如果写成window.eval(),则其定义的变量会在全局生效. 但是,在IE ...

  5. 学习angularjs的内置API函数

    angularjs的内置API函数有很多,如isString()判断给定的对象是否为字符串,如果是返回 true,反之返回false:isNumber()判断给定的对象是否为数字,如果是返回 true ...

  6. PHP内置安全函数一览

    内置安全函数 filter_var函数 根据参数中的过滤类型进行过滤,如过滤Email类型的,则符合的字符串返回字符串,不符合的返回False. urldecode函数 写这个函数是特别为了提醒注意, ...

  7. Python descriptor 以及 内置property()函数

    Python Descriptor  1, Python Descriptor是这样一个对象 它按照descriptor协议, 有这样的属性之一 def __get__(self, obj, type ...

  8. JavaWeb -jsp文件和内置对象的解析

    jsp文件和内置对象的解析 对page解析 JSP九大内置对象(自带,无需new) 1 out:输出对象 2 request:请求对象,存储“客户端像服务端发送的请求信息” 3 response:响应 ...

  9. Oracle SQL常用内置系统函数总结

    Oracle数据库  内置系统函数主要分为以下类别:数学函数.字符串函数.日期函数.转换函数.聚合函数.分析聚合函数 一.数学函数 ------------返回数字       abs(n):返回数字 ...

随机推荐

  1. 验证您的Shell为Bash

    内容介绍 在管理Linux服务器时,命令行操作无疑是最为耗时的环节.对大多数用户而言,这意味着将大量时间用于操作Bash shell. 尽管大多数发行版都提供默认的用户类型与root prompts, ...

  2. 洛谷P4018 Roy&October之取石子

    题目背景 \(Roy\)和\(October\)两人在玩一个取石子的游戏. 题目描述 游戏规则是这样的:共有\(n\)个石子,两人每次都只能取\(p^k\)个(\(p\)为质数,\(k\)为自然数,且 ...

  3. Exadata SL6 是个什么鬼?

    就在 前两天,ORACLE的Exadata家族又发布了一个新成员:SL6. 变化上给人最直观的感觉是:从以前的X86架构变成了SPARC架构. Exadata Database Machine SL6 ...

  4. linux下ssh key秘钥登陆远程服务器设置

    本地的用户名需要和ssh服务器的用户名一致 1.在Server服务器上加载私钥文件ssh-add wang_rsa 2.如果系统提示:could not open a connection to yo ...

  5. Linux 查询服务器序列号命令

      1.查看服务器型号:dmidecode | grep 'Product Name' 2.查看主板的序列号:dmidecode |grep 'Serial Number' 3.查看系统序列号:dmi ...

  6. ACM-较大的数乘法取模技巧*

    比如模数是1e15这种,相乘的时候爆LL了,但是又不想用大数,咋办呢? long long ksc(long long a, long long b, long long mod){ ; while( ...

  7. CF C. Plasticine zebra (思维)

    题意: 是输入一个只有'w','b'的字符串,可以对他的任意位置切割成两个子串,切割后的右边的子串翻转后再和左边的子串拼起来会得到一个新的字符串,操作次数不限,问能得到的字符串中wb交替出现的最大的长 ...

  8. 常见的web性能优化方法

    前言:关于优化问题,随着项目经验不断累积,多方查找资料进行拼接合并,形成如下文章,之后遇到类似好的方法,会不断补充完善. 前端是庞大的,包括 HTML. CSS. Javascript.Image . ...

  9. Nologging操作对standby的影响

    1.primary 首先要设置为 force_log mode ,然后再做备份,在应用到备库上. 2.switch over 之前需要检查v$database_block_corruption  视图 ...

  10. 三,JVM 自带命令行工具之JMap

    jmap:java内存映像工具 jmap(Memory Map for java ) 命令用于生成堆转储快照(一般被称为headdump 或dump文件) jmap命令格式:jmap [option ...