# tensorflow之张量

1.基础知识


rank_0_tensor = tf.constant(4)
print(rank_0_tensor)

rank_1_tensor = tf.constant([2.1,3.2,4.3])
print(rank_1_tensor)

rank_2_tensor = tf.constant([[1,2],[3,4],[5,6]],dtype = tf.float16)
print(rank_2_tensor)

rank_3_tensor = tf.constant([
[[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]],
[[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]],
[[20, 21, 22, 23, 24],
[25, 26, 27, 28, 29]],])
print(rank_3_tensor)

tf.Tensor(4, shape=(), dtype=int32)
tf.Tensor([2.1 3.2 4.3], shape=(3,), dtype=float32)
tf.Tensor(
[[1. 2.]
[3. 4.]
[5. 6.]], shape=(3, 2), dtype=float16)
tf.Tensor(
[[[ 0  1  2  3  4]
[ 5  6  7  8  9]]

[[10 11 12 13 14]
[15 16 17 18 19]]

[[20 21 22 23 24]
[25 26 27 28 29]]], shape=(3, 2, 5), dtype=int32)


3轴张量的不同表现形式

[En]

Tensors usually contain floating-point and integer data, but there are other data types, including complex numeric values and strings.

[En]

You can perform basic mathematical operations on tensors, including addition, element-by-element multiplication, and matrix multiplication.

[En]

Shape: the length (number of elements) of each axis of the tensor.

[En]

Rank: the number of tensor axes. The rank of scalar is 0, that of vector is 1, and that of matrix is 2.

[En]

Axis or dimension: a special dimension of a tensor.

Size：张量的总项数，即乘积形状向量。

[En]

Size: the total number of terms of the tensor, that is, the product shape vector.

rank_4_tensor = tf.zeros([3,2,4,5])
print("type of every element:",rank_4_tensor.dtype)
print("number of dimensions:",rank_4_tensor.ndim)
print("shape of tensor:",rank_4_tensor.shape)
print("elements along axis 0 of tensor:",rank_4_tensor.shape[0])
print("elements along the last axis of tensor:",tf.size(rank_4_tensor).numpy())

Type of every element: <dtype: 'float32'>
Number of dimensions: 4
Shape of tensor: (3, 2, 4, 5)
Elements along axis 0 of tensor: 3
Elements along the last axis of tensor: 5
Total number of elements (3*2*4*5):  120


[En]

Axes are generally sorted from global to local: first the batch axis, then the spatial dimension, and finally the characteristics of each location.

[En]

A negative index means indexing in reverse order

rank_1_tensor = tf.constant([0, 1, 1, 2, 3, 5, 8, 13, 21, 34])
print("First:", rank_1_tensor[0].numpy())
print("Second:", rank_1_tensor[1].numpy())
print("Last:", rank_1_tensor[-1].numpy())

print("Everything:", rank_1_tensor[:].numpy())
print("Before 4:", rank_1_tensor[:4].numpy())
print("From 4 to the end:", rank_1_tensor[4:].numpy())
print("From 2, before 7:", rank_1_tensor[2:7].numpy())
print("Every other item:", rank_1_tensor[::2].numpy())
print("Reversed:", rank_1_tensor[::-1].numpy())

first:0
second:1
last:34

Everything: [ 0  1  1  2  3  5  8 13 21 34]
Before 4: [0 1 1 2]
From 4 to the end: [ 3  5  8 13 21 34]
From 2, before 7: [1 2 3 5 8]
Every other item: [ 0  1  3  8 21]
Reversed: [34 21 13  8  5  3  2  1  1  0]


[En]

For each individual axis of the high rank tensor, the rules are exactly the same as those of the single axis.

rank_2_tensor = tf.constant([[1. 2.]
[3. 4.]
[5. 6.]])
Everything: [ 0  1  1  2  3  5  8 13 21 34]
Before 4: [0 1 1 2]
From 4 to the end: [ 3  5  8 13 21 34]
From 2, before 7: [1 2 3 5 8]
Every other item: [ 0  1  3  8 21]
Reversed: [34 21 13  8  5  3  2  1  1  0]

Second row: [3. 4.]
Second column: [2. 4. 6.]
Last row: [5. 6.]
First item in last column: 2.0
Skip the first row:
[[3. 4.]
[5. 6.]]


dtypes详解

tf.cast()函数的作用是执行 tensorflow 中张量数据类型转换，比如读入的图片如果是int8类型的，一般在要在训练前把图像的数据格式转换为float32。

cast定义：cast(x, dtype, name=None)

import tensorflow as tf

t1 = tf.Variable([1,2,3,4,5])
t2 = tf.cast(t1,dtype=tf.float32)

print 't1: {}'.format(t1)
print 't2: {}'.format(t2)

with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
sess.run(t2)
print t2.eval()


t1: <tf.Variable 'Variable:0' shape=(5,) dtype=int32_ref>
t2: Tensor("Cast:0", shape=(5,), dtype=float32)
[ 1.  2.  3.  4.  5.]


the_f64_tensor = tf.constant([2.2, 3.3, 4.4], dtype=tf.float64)
the_f16_tensor = tf.cast(the_f64_tensor, dtype=tf.float16)

the_u8_tensor = tf.cast(the_f16_tensor, dtype=tf.uint8)
print(the_u8_tensor)

tf.Tensor([2 3 4], shape=(3,), dtype=uint8)


[En]

Under certain conditions, when performing a combinatorial operation on a group of tensors, the small tensor will be extended in order to adapt to the large tensor.

[En]

The simplest and most common example is to try to multiply or add tensors and scalars. In this case, the scalar is broadcast to the same shape as the other parameters.

t1: <tf.Variable 'Variable:0' shape=(5,) dtype=int32_ref>
t2: Tensor("Cast:0", shape=(5,), dtype=float32)
[ 1.  2.  3.  4.  5.]

tf.Tensor([2 4 6], shape=(3,), dtype=int32)
tf.Tensor([2 4 6], shape=(3,), dtype=int32)
tf.Tensor([2 4 6], shape=(3,), dtype=int32)


[En]

In most cases, broadcast time and space are more efficient because broadcast operations do not materialize the extended tensor in memory.

Original: https://blog.csdn.net/weixin_44008782/article/details/123619542
Author: 晴有雨阴有时雨
Title: tensorflow之张量

(0)

### 大家都在看

• #### Python Pandas库简要学习

一、Pandas 简述 Pandas 是 Python 语言的一个扩展程序库，用于数据分析。它并不是熊猫胖达的复数，它的名字衍生自术语 “panel data&#822…

人工智能 2023年7月7日
0213
• #### N-gram算法

语言模型 语言模型起源于语音识别(speech recognition)，输入一段音频数据，语音识别系统通常会生成多个句子作为候选，究竟哪个句子更合理？就需要用到语言模型对候选句子…

人工智能 2023年5月27日
0196
• #### 压缩感知学习总结及Matlab代码实现

目录 前言 一、压缩感知基本原理 二、代码仿真 * 1. CVX工具箱求解L1范数 2. CVX学习视频 3. 仿真实现 三、 重点参考 前言 压缩感知（Compressive S…

人工智能 2023年7月18日
0130
• #### TEB算法-2

RobotFootprintModel为机器人的模型基类，用来定义机器人的形状。但机器人模型类目前只用于优化，因为考虑到导航栈的足迹可能是低效的。因此，设置机器人的形状只是用来检测…

人工智能 2023年6月10日
0134
• #### Cityscapes数据集的深度完整解析

cityscapes数据集是分割模型训练时比较常用的一个数据集，他还可以用来训练GAN网络生成街景图片。 数据集下载和文件夹组成： 整个数据集包含50个欧洲城市，5000张精细标注…

人工智能 2023年7月13日
0223
• #### win7系统调用tts的语音朗读功能

windows的tts组件，正版系统或者win10系统是可以直接调用成功的，但win7有的是阉割版，有的不支持，调用的时候各种异常，网上的人各种抄袭，不知道所以然，还爱瞎bb，我就…

人工智能 2023年5月27日
0205
• #### 目标检测经典知识点汇总（一）：RPN（以Faster RCNN为例）

目标检测经典知识点汇总（一）:RPN 前言 一、Region Proposal Network (RPN) * RPN原理讲解 RPN在目标检测中的应用（Faster RCNN为例…

人工智能 2023年6月25日
0154
• #### Python实验–线性回归+梯度下降预测波士顿房价

def preprocess(): # get the dataset of boston X = boston().data y = boston().target name_d…

人工智能 2023年6月16日
0154
• #### 时间序列预测-ARMA实战

ARMA中文全称为自回归移动平均模型，广泛用于时间时间序列分析中。本文以statsmodels 模块中自带数据集co2为例，实战研究ARMA模型。一、探索性数据分析。首先导入必要的…

人工智能 2023年7月15日
0164
• #### 多模态机器学习基础、应用及预训练模型介绍

早在公元前四世纪，哲学家和艺术学家提出了多模态的概念，用以定义融合不同内容的表达形式与修辞方法。在当今大数据时代，我们总说数据是多源异构的： 多源：数据持有方多样化。比如数据来源于…

人工智能 2023年6月24日
0176
• #### conda 安装 Pytorch（GPU）

最好创建一个虚拟环境，方便管理。 1.进入Anaconda Prompt 进行创建一个新环境，这边指定python环境是3.6 conda create –name pytorc…

人工智能 2023年7月21日
0116
• #### 浅

Amlogic S905 D3是一款专为人工智能场景设计的通用型SOC，主要适用于智能机顶盒、智能家居、数字标牌。 它基于Big.Little架构，将四核Cortex-A55与算例…

人工智能 2023年5月23日
0153
• #### 音频放大电路_音频输入变压器电路的识读方法

音频输入和输出变压器用于带有分立组件的无线电和其他低功率音频放大器。 [En] Audio input and output transformers are used in ra…

人工智能 2023年5月27日
0148
• #### 【java-Date】

关于时间使用LocalDateTime包获取当前日期（精确到秒，并使用封装函数minus计算出30天之前的日期） import java.time.LocalDateTime; i…

人工智能 2023年6月29日
0120
• #### PL-Marker(ACL 2022)——信息抽取(NER+RE)新SOTA，论文浅析与代码浏览

文章目录 前言：相关工作介绍 论文思路 整体框架 * 1. NER阶段 2. RE阶段 Train * 1.1 ACEDatasetNER 1.2 for _ in train_i…

人工智能 2023年5月30日
0169
• #### 目标检测论文中的ROI | 各种方法横向学习

包含的论文一览 【Fast R-CNN】 RoI pooling（未施工） 【Faster RCNN】Region Proposal Network 【Mask RCNN】 ROI…

人工智能 2023年7月9日
0136