5个简单的步骤掌握Tensorflow的Tensor( 二 )
Output:The number of dimensions in our Tensor object is 3
形状形状特征是每个张量都具有的另一个属性 。 它以列表的形式显示每个维度的大小 。 我们可以查看使用.shape属性创建的rank_3_tensor对象的形状 , 如下所示:
tensor_shape = rank_3_tensor.shapeprint("The shape of our Tensor object is", tensor_shape)
Output:The shape of our Tensor object is (2, 2, 3)
如你所见 , 我们的张量在第一层有两个元素 , 第二层有两个元素 , 第三层有三个元素 。
大小大小是张量的另一个特征 , 它意味着张量有多少个元素 。 我们不能用张量对象的属性来测量大小 。 相反 , 我们需要使用tf.size函数 。 最后 , 我们将使用实例函数.NumPy()将输出转换为NumPy , 以获得更具可读性的结果:
tensor_size = tf.size(rank_3_tensor).numpy()print("The size of our Tensor object is", tensor_size)
Output:The size of our Tensor object is 12
数据类型张量通常包含数字数据类型 , 如浮点和整数 , 但也可能包含许多其他数据类型 , 如复数和字符串 。
但是 , 每个张量对象必须将其所有元素存储在一个统一的数据类型中 。 因此 , 我们还可以使用.dtype属性查看为特定张量对象选择的数据类型 , 如下所示:
tensor_dtype = rank_3_tensor.dtypeprint("The data type selected for this Tensor object is", tensor_dtype)
Output:The data type selected for this Tensor object is
张量运算索引索引是项目在序列中位置的数字表示 。 这个序列可以引用很多东西:一个列表、一个字符串或任意的值序列 。
TensorFlow还遵循标准的Python索引规则 , 这类似于列表索引或NumPy数组索引 。
关于索引的一些规则:
- 索引从零(0)开始 。
- 负索引(“-n”)值表示从末尾向后计数 。
- 冒号(“:”)用于切片:开始:停止:步骤 。
- 逗号(“ , ”)用于达到更深层次 。
single_level_nested_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]rank_1_tensor = tf.constant(single_level_nested_list)print(rank_1_tensor)
Output: tf.Tensor([ 0123456789 10 11],shape=(12,), dtype=int32)
测试一下我们的规则1 , 2 , 3:# 规则1 , 索引从0开始print("First element is:",rank_1_tensor[0].numpy())# 规则2 , 负索引print("Last element is:",rank_1_tensor[-1].numpy())# 规则3 , 切片print("Elements in between the 1st and the last are:",rank_1_tensor[1:-1].numpy())
Output: First element is: 0 Last element is: 11 Elements in between the 1st and the last are: [ 123456789 10]
现在 , 让我们用以下代码创建rank_2_tensor:two_level_nested_list = [ [0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11] ]rank_2_tensor = tf.constant(two_level_nested_list)print(rank_2_tensor)
Output:tf.Tensor( [[ 012345][ 6789 10 11]], shape=(2, 6), dtype=int32)
并用几个例子来测试第4条规则:print("The 1st element of the first level is:",rank_2_tensor[0].numpy())print("The 2nd element of the first level is:",rank_2_tensor[1].numpy())# 规则4, 逗号代表进入更深层print("The 1st element of the second level is:",rank_2_tensor[0, 0].numpy())print("The 3rd element of the second level is:",rank_2_tensor[0, 2].numpy())
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 手机内存不足别乱删,学会这5个技巧,让手机释放大量空间
- 1个手机怎么登录2个微信?方法很简单,看完我学会了
- 原来华为手机拍视频还能添加字幕,方法很简单,一学就会
- 手机照片、视频怎样添加文字?原来很简单,4种方法一分钟搞定
- 微信最近很火的“圣诞帽头像”,原来这么简单,快学起来
- 只为好看?手机多摄像头排布方式可没有那么简单
- 原来微信长按2秒这么实用!能开启5个高级功能,涨知识了
- 在家请一个健身教练,要分几个步骤?
- DeepMind新AI无需提前知晓规则也能掌握游戏:无论视觉简单还是复杂
- 剪视频很头大?Reno5 Pro+教你简单制作Vlog