概要

本部分介绍一些在 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. c语言指针,数组

    指针:说简单点就是一个地址.例如int *p,p是个变量,里面放的是地址0x0000,同理,每一个指针,不管什么类型,都是地址,也就是空间都是4个字节(32位机). 以此类推,指针也有指向它的指针in ...

  2. 洛谷P3003 苹果交货Apple Delivery

    题目描述 贝西有两个又香又脆的红苹果要送给她的两个朋友.当然她可以走的\(C(1 \leq C \leq 200000)\)条"牛路"都被包含在一种常用的图中,包含了\(P(1 \ ...

  3. STP-18-Port-Channl上的负载均衡

    Ether Channel通过在多条链路上传输多个数据帧,增加了可用带宽.一个以太网帧总是通过一个Ether Channel中的一条链路传输.针对数据帧地址字段执行散列计算能够产生一个编号,标识这个数 ...

  4. POJ1046 Color Me Less

    题目来源:http://poj.org/problem?id=1046 题目大意: 在RGB颜色空间中,用下面的公式来度量两个颜色值的距离. 现给出16个RGB表示的颜色,和一些用于测试的颜色,求被测 ...

  5. CBV 与 FBV

    FBV:function based view 视图函数,是指之前用的 views.py 中基于函数的开发,url 都是通过函数来实现的,每个 url 对应的函数之间都是独立的. 直接在views.p ...

  6. Python踩坑之旅其一杀不死的Shell子进程

    目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 坑后扩展 1.4.1 扩展知识 1.4.1 技术关键字 1.5 填坑总结 1.1 踩坑案例 踩坑的程序是个常驻的Agent类管理进程 ...

  7. PHP实例:使用PHPExcel导入Excel2003文档和Excel2007文档到MySQL数据库中

    如果要使用phpExcelReader将Excel 数据导入到mysql 数据库,请读者点击这个文章查看. 使用phpExcelReader将Excel 数据导入到mysql 数据库. 下面我们介绍另 ...

  8. Java修饰符/关键字

    修饰符分类: 权限修饰符:public.protected.default.private 其他修饰符:abstract.static.final.transient.volatile.native. ...

  9. Mybatis-Plus使用全解

    前言 之前写了<SpringBoot | 第九章:Mybatis-plus的集成和使用>一文,只是简单的使用条件构造器列举了一些通用的CURD操作.本人也想写一篇通用的关于mybatis- ...

  10. Ionic2集成DevExtreme

    安装Install DevExtreme Angular npm install --save devextreme devextreme-angular 或者在package.json 文件中增加依 ...