当前位置:网站首页>Tensorflow tensor introduction
Tensorflow tensor introduction
2022-04-23 17:53:00 【Stephen_ Tao】
List of articles
1. tensor (Tensor) The definition of
TensorFlow The tensor in is a n An array of dimensions , The type is tf.tensor. Be similar to numpy Medium ndarray.Tensor Has two important properties , Data types including tensors (dtype) And tensor shape (shape).
2. Instructions for creating tensors
Tensors are divided into fixed value tensors and random value tensors , Different types of tensors have different creation instructions .
2.1 Fixed value tensor
Common fixed value tensor creation instructions are as follows :
tf.zeros(shape,dtype=tf.float32,name=None)
tf.zeros_like(shape,dtype=tf.float32,name=None)
tf.ones(shape,dtype=tf.float32,name=None)
tf.ones_like(shape,dtype=tf.float32,name=None)
tf.constant(value,dtype=tf.float32,shape=None,name='Const')
2.2 Random valued tensor
It is mainly used to generate specific distribution , Random valued tensors such as normal distribution .
be based on Pycharm Create a random valued tensor :
use InteractiveSession() stay Python Console Operation in
2.2.1 Get into InteractiveSession Interactive conversation
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
tf.compat.v1.InteractiveSession()
In this paper TensorFlow The version is 2.5.0 edition , In this version, there is no tf.InteractiveSession(), So compatible v1 The interactive session is called by version .
2.2.2 Generate normal distribution random value tensor
random_data = tf.random.normal([2,3],mean=0.0,stddev=1.0)
random_data.eval()
We will get the following results :
array([[-0.5411521 , -0.04788242, -0.14508048],
[-1.2735071 , -0.5523144 , -0.46699935]], dtype=float32)
3. Transformation of tensor
The transformation of tensor includes type change and shape change .
3.1 The type of tensor changes
Here are some functions of tensor type change :
tf.string_to_number(string_tensor,out_type=None,name=None)
tf.to_double(x,name='ToDouble')
tf.to_float(x,name='ToFloat')
tf.cast(x,dtype,name=None)
3.2 The shape of the tensor changes
There are two kinds of shape changes of tensors , They are dynamic shape change and static shape change .
3.2.1 Change of static shape
API:object.set_shape
The rules that need to be met :
- After the static shape is fixed, it cannot be modified again
- When converting static shapes , Cannot convert across orders
Example 1:
with tf.compat.v1.Session() as sess:
a = tf.compat.v1.placeholder(dtype=tf.float32,shape=[3,4])
print("Origin a:",a.get_shape())
a.set_shape(shape=[2,6])
The above code modifies the shape when the static shape is fixed , The following error message will be generated :
ValueError: Dimension 0 in both shapes must be equal, but are 3 and 2. Shapes are [3,4] and [2,6].
Example 2:
with tf.compat.v1.Session() as sess:
a = tf.compat.v1.placeholder(dtype=tf.float32,shape=[None,3])
print("Origin a:",a.get_shape())
a.set_shape(shape=[3,2,3])
The above code changes shape across steps , The following error message will be generated :
ValueError: Shapes must be equal rank, but are 2 and 3
Example 3:
with tf.compat.v1.Session() as sess:
a = tf.compat.v1.placeholder(dtype=tf.float32,shape=[None,None])
print("Origin a:",a.get_shape())
a.set_shape(shape=[3,2])
print("changed a:",a.get_shape())
The above is the correct code , give the result as follows (set_shape It's in the original Tensor Based on , No new objects are generated ):
Origin a: (None, None)
changed a: (3, 2)
3.2.2 Dynamic shape changes
API:tf.reshape()
The rules that need to be met :
- Create new tensors dynamically , The number of elements of the tensor must match
Example :
with tf.compat.v1.Session() as sess:
a = tf.compat.v1.placeholder(dtype=tf.float32,shape=[3,4])
print("a:",a.get_shape())
b = tf.reshape(a,[3,2,2])
c = tf.reshape(a,[2,6])
print("a:",a.get_shape())
print("b:",b.get_shape())
print("c:",c.get_shape())
The above is the correct code , give the result as follows (reshape Yes, a new object will be generated , Do not change the original Tensor The shape of the ):
a: (3, 4)
a: (3, 4)
b: (3, 2, 2)
c: (2, 6)
版权声明
本文为[Stephen_ Tao]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204230548468864.html
边栏推荐
- JS get link? The following parameter name or value, according to the URL? Judge the parameters after
- Go file operation
- 剑指 Offer 03. 数组中重复的数字
- 2022江西储能技术展会,中国电池展,动力电池展,燃料电池展
- 239. 滑动窗口最大值(困难)-单向队列、大顶堆-字节跳动高频题
- JVM class loading mechanism
- Type judgment in [untitled] JS
- C1 notes [task training part 2]
- 239. Maximum value of sliding window (difficult) - one-way queue, large top heap - byte skipping high frequency problem
- JS implementation private attribute
猜你喜欢
MySQL advanced index [classification, performance analysis, use, design principles]
470. 用 Rand7() 实现 Rand10()
开源按键组件Multi_Button的使用,含测试工程
2021 Great Wall Cup WP
Welcome to the markdown editor
编译原理 求first集 follow集 select集预测分析表 判断符号串是否符合文法定义(有源码!!!)
2022 judgment questions and answers for operation of refrigeration and air conditioning equipment
[appium] write scripts by designing Keyword Driven files
Operation of 2022 mobile crane driver national question bank simulation examination platform
470. Rand10() is implemented with rand7()
随机推荐
41. 缺失的第一个正数
2022 tea artist (primary) examination simulated 100 questions and simulated examination
Future usage details
Vite configure proxy proxy to solve cross domain
cartographer_ There is no problem compiling node, but running the bug that hangs directly
Where is the configuration file of tidb server?
Go对文件操作
[appium] write scripts by designing Keyword Driven files
Chrome浏览器的跨域设置----包含新老版本两种设置
2022 Shanghai safety officer C certificate operation certificate examination question bank and simulation examination
【Appium】通过设计关键字驱动文件来编写脚本
2022江西光伏展,中國分布式光伏展會,南昌太陽能利用展
958. Complete binary tree test
ros常用的函数——ros::ok(),ros::Rate,ros::spin()和ros::spinOnce()
209. Minimum length subarray - sliding window
440. The k-th small number of dictionary order (difficult) - dictionary tree - number node - byte skipping high-frequency question
极致体验,揭晓抖音背后的音视频技术
JS interview question: FN call. call. call. Call (FN2) parsing
102. 二叉树的层序遍历
587. 安装栅栏 / 剑指 Offer II 014. 字符串中的变位词