张量

TensorFlow用张量这种数据结构来表示所有的数据.你可以把一个张量想象成一个n维的数组或列表.一个张量有一个静态类型和动态类型的维数.张量可以在图中的节点之间流通.其实张量更代表的就是一种多位数组。

在TensorFlow系统中,张量的维数来被描述为阶.但是张量的阶和矩阵的阶并不是同一个概念.张量的阶(有时是关于如顺序或度数或者是n维)是张量维数的一个数量描述.比如,下面的张量(使用Python中list定义的)就是2阶.

t = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

你可以认为一个二阶张量就是我们平常所说的矩阵,一阶张量可以认为是一个向量.

数学实例 Python 例子
0 纯量 (只有大小) s = 483
1 向量 (大小和方向) v = [1.1, 2.2, 3.3]
2 矩阵 (数据表) m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
3 3阶张量 (数据立体) t = [[[2], [4], [6]], [[8], [10], [12]], [[14], [16], [18]]]
n n阶 (自己想想看) ....

数据类型

Tensors有一个数据类型属性.你可以为一个张量指定下列数据类型中的任意一个类型:

数据类型 Python 类型 描述
DT_FLOAT tf.float32 32 位浮点数.
DT_DOUBLE tf.float64 64 位浮点数.
DT_INT64 tf.int64 64 位有符号整型.
DT_INT32 tf.int32 32 位有符号整型.
DT_INT16 tf.int16 16 位有符号整型.
DT_INT8 tf.int8 8 位有符号整型.
DT_UINT8 tf.uint8 8 位无符号整型.
DT_STRING tf.string 可变长度的字节数组.每一个张量元素都是一个字节数组.
DT_BOOL tf.bool 布尔型.
DT_COMPLEX64 tf.complex64 由两个32位浮点数组成的复数:实数和虚数.
DT_QINT32 tf.qint32 用于量化Ops的32位有符号整型.
DT_QINT8 tf.qint8 用于量化Ops的8位有符号整型.
DT_QUINT8 tf.quint8 用于量化Ops的8位无符号整型.

然后是tensorflow中对于各种数据的操作:

注意上面向量运算中第三个:分割(split)

固定值张量

tf.zeros(shape, dtype=tf.float32, name=None)

tf.zeros_like(tensor, dtype=None, name=None)

tf.ones(shape, dtype=tf.float32, name=None)

tf.ones_like(tensor, dtype=None, name=None

tf.fill(dims, value, name=None)创建一个张量的形状dims并填充它value

tf.constant(value, dtype=None, shape=None, name='Const')创建一个常数张量。

创建随机张量

tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

从正态分布中输出随机值,由随机正态分布的数字组成的矩阵

tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

从截断的正态分布中输出随机值,和 tf.random_normal() 一样,但是所有数字都不超过两个标准差

tf.random_shuffle(value, seed=None, name=None)

沿其第一维度随机打乱

tf.set_random_seed(seed)

设置图级随机种子

形状和变换

可用于确定张量的形状并更改张量的形状

  • tf.shape(input, name=None)

  • tf.size(input, name=None)

  • tf.rank(input, name=None)

  • tf.reshape(tensor, shape, name=None)

  • tf.squeeze(input, squeeze_dims=None, name=None)

  • tf.expand_dims(input, dim, name=None)

t = tf.placeholder(tf.float32,[None,2])

张量复制与组合

  • tf.identity(input, name=None)

  • tf.tuple(tensors, name=None, control_inputs=None)

  • tf.group(inputs, *kwargs)

  • tf.no_op(name=None)

  • tf.count_up_to(ref, limit, name=None)

逻辑运算符

  • tf.logical_and(x, y, name=None)

  • tf.logical_not(x, name=None)

  • tf.logical_or(x, y, name=None)

  • tf.logical_xor(x, y, name='LogicalXor')

比较运算符

  • tf.equal(x, y, name=None)

  • tf.not_equal(x, y, name=None)

  • tf.less(x, y, name=None)

  • tf.less_equal(x, y, name=None)

  • tf.greater(x, y, name=None)

  • tf.greater_equal(x, y, name=None)

  • tf.select(condition, t, e, name=None)

  • tf.where(input, name=None)

判断检查

  • tf.is_finite(x, name=None)

  • tf.is_inf(x, name=None)

  • tf.is_nan(x, name=None)

  • tf.verify_tensor_all_finite(t, msg, name=None) 断言张量不包含任何NaN或Inf

  • tf.check_numerics(tensor, message, name=None)

  • tf.add_check_numerics_ops()

  • tf.Assert(condition, data, summarize=None, name=None)

  • tf.Print(input_, data, message=None, first_n=None, summarize=None, name=None)。

运行注意

import   os

os.environ['TF_CPP_MIN_LOG_LEVEL']=''

实例代码:

import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = ''
a = tf.constant(2)
# 0维() 一维(4) 二维(2,3) 三维(2,3,4)
# with tf.Session() as sess:
# print(a.shape)
# print(a.op)
# print(a.name)
b = tf.placeholder(tf.float32,[None,2])
print(b)
b.set_shape([3,2])
print(b)
# 一旦静态形状已经固定则不能设置了
# b.set_shape([3,2]) ValueError
# 下面是动态修改,就是生成一个和原来数据的元素数量匹配的新的
c = tf.reshape(b,[2,3])
print(c)

TensorFlow笔记-组件的更多相关文章

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

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

  2. tensorflow笔记(二)之构造一个简单的神经网络

    tensorflow笔记(二)之构造一个简单的神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7425200.html ...

  3. tensorflow笔记(三)之 tensorboard的使用

    tensorflow笔记(三)之 tensorboard的使用 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7429344.h ...

  4. tensorflow笔记(四)之MNIST手写识别系列一

    tensorflow笔记(四)之MNIST手写识别系列一 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7436310.html ...

  5. tensorflow笔记(五)之MNIST手写识别系列二

    tensorflow笔记(五)之MNIST手写识别系列二 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7455233.html ...

  6. tensorflow笔记:多层LSTM代码分析

    tensorflow笔记:多层LSTM代码分析 标签(空格分隔): tensorflow笔记 tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) ten ...

  7. Tensorflow 笔记

    TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点 TensorFlow笔记-07-神经网络优化-学习率,滑动平均 TensorFlow笔记-06-神经网络优化-损失函数 ...

  8. TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点

    TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点 首先提醒一下,第7讲的最后滑动平均的代码已经更新了,代码要比理论重要 今天是过拟合,和正则化,本篇后面可能或更有兴趣, ...

  9. TensorFlow笔记-07-神经网络优化-学习率,滑动平均

    TensorFlow笔记-07-神经网络优化-学习率,滑动平均 学习率 学习率 learning_rate: 表示了每次参数更新的幅度大小.学习率过大,会导致待优化的参数在最小值附近波动,不收敛:学习 ...

随机推荐

  1. 常用json解析库比较及选择 fastjson & gson

    一.常用json解析库比较及选择 1.简介 fastjson和gson是目前比较常用的json解析库,并且现在我们项目代码中,也在使用这两个解析库. fastjson 是由阿里开发的,号称是处理jso ...

  2. Windows完成端口与猪肉佬

    首先应该说明的是,我也是第一次使用完成端口.虽然以前偶尔在网上看到完成端口的文章和代码,但真正自己动手写还是第一次,不过我这个人有个特点就是大胆,例如没有写那个界面编程系列前,其实我甚至不知道原来一个 ...

  3. WebBrowser中获得脚本中的变量值

    //项目中添加Micrsoft.mshtml引用 --c:/temp/temp.htm-- <html> <script language="JavaScript" ...

  4. ASP.NET 5 (vNext) 牛刀小試:自帶 DI 容器

    小引 在 ASP.NET 5(vNext)之前,亦即 MVC 4/5.Web API 2 的时代,MVC 与 Web API 框架彼此有非常相似的设计,却是以不同的代码来实现.现在,ASP.NET 5 ...

  5. Python连载12-shutil模块

    一.shutil模块 1.函数:copy() (1)用法:复制文件0 (2)格式:copy(来源路径,目标路径) (3)返回值:返回目标路径 (4)注意:拷贝的同时可以给文件重命名 source_pa ...

  6. Spring如何解决循环引用

    概念 什么是循环引用? 故名思义,多个对象形成环路. 有哪几种循环引用? 在Spring中存在如下几种循环引用,一一举例分析一下 注入循环引用(Set注入 注解注入) package c.q.m; i ...

  7. sql server编写简洁四则运算表达式脚本实现计算批次功能(C#等其它编程语言也能直接用此通用表达式)

    问题: 在数据库编程开发中,有时会遇到数据量比较大的情况,如果直接大批量进行添加数据.修改数据.删除数据,就会是比较大的事务,事务日志也比较大,耗时久的话会对正常操作造成一定的阻塞.虽不至于达到删库跑 ...

  8. 【设计模式】【最后一个】结构型07适配器模式(Adapter Pattern)

    适配器模式(Adapter Pattern) 推荐一个很全面的博客:https://blog.csdn.net/zxt0601/article/details/52848004 定义:将一个类的接口转 ...

  9. 两张图示轻松看懂 UML 类图

    一个类如何表示 第一格为类名 第二格为类中字段属性 格式:权限 属性名:类型 [ = 默认值 ] 权限:private.public .protected.default,它们分别对应 -.+.#.~ ...

  10. 对于BIO/NIO/AIO,你还只停留在烧开水的水平吗?

    1.发发牢骚 相信大家在网上看过不少讲解 BIO/NIO/AIO 的文章,文章中举起栗子来更是夯吃夯吃一大堆,我是越看越觉得 What are you 你讲啥嘞? 本文将针对 BIO/NIO/AIO ...