5个简单的步骤掌握Tensorflow的Tensor( 二 )
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())
Output: The first element of the first level is: [0 1 2 3 4 5] The second element of the first level is: [ 6789 10 11] The first element of the second level is: 0 The third element of the second level is: 2
现在 , 我们已经介绍了索引的基本知识 , 让我们看看我们可以对张量进行的基本操作 。张量基本运算你可以轻松地对张量进行基本的数学运算 , 例如:
- 加法
- 元素乘法
- 矩阵乘法
- 求最大值或最小值
- 找到Max元素的索引
- 计算Softmax值
a = tf.constant([[2, 4],[6, 8]], dtype=tf.float32)b = tf.constant([[1, 3],[5, 7]], dtype=tf.float32)
我们可以从加法开始 。# 我们可以使用' tf.add() '函数并将张量作为参数传递 。 add_tensors = tf.add(a,b)print(add_tensors)
Output:tf.Tensor( [[ 3.7.][11. 15.]], shape=(2, 2), dtype=float32)
乘法# 我们可以使用' tf.multiply() '函数并将张量作为参数传递 。 multiply_tensors = tf.multiply(a,b)print(multiply_tensors)
Output:tf.Tensor( [[ 2. 12.][30. 56.]], shape=(2, 2), dtype=float32)
矩阵乘法:# 我们可以使用' tf.matmul() '函数并将张量作为参数传递 。 matmul_tensors = tf.matmul(a,b)print(matmul_tensors)
Output:tf.Tensor( [[ 2. 12.][30. 56.]], shape=(2, 2), dtype=float32)
注意:Matmul操作是深度学习算法的核心 。 因此 , 尽管你不会直接使用matmul , 但了解这些操作是至关重要的 。我们上面列出的其他操作示例:
# 使用' tf.reduce_max() '和' tf.reduce_min() '函数可以找到最大值或最小值print("The Max value of the tensor object b is:",tf.reduce_max(b).numpy())# 使用' tf.argmax() '函数可以找到最大元素的索引print("The index position of the max element of the tensor object b is:",tf.argmax(b).numpy())# 使用 tf.nn.softmax'函数计算softmaxprint("The softmax computation result of the tensor object b is:",tf.nn.softmax(b).numpy())
Output:The Max value of the tensor object b is: 1.0 The index position of the Max of the tensor object b is: [1 1] The softmax computation result of the tensor object b is: [[0.11920291 0.880797][0.11920291 0.880797]]
操纵形状就像在NumPy数组和pandas数据帧中一样 , 你也可以重塑张量对象 。这个变形操作非常快 , 因为底层数据不需要复制 。 对于重塑操作 , 我们可以使用tf.reshape函数
# 我们的初始张量a = tf.constant([[1, 2, 3, 4, 5, 6]])print('The shape of the initial Tensor object is:', a.shape)b = tf.reshape(a, [6, 1])print('The shape of the first reshaped Tensor object is:', b.shape)c = tf.reshape(a, [3, 2])print('The shape of the second reshaped Tensor object is:', c.shape)# 如果我们以shape参数传递-1 , 那么张量就变平坦化 。 print('The shape of the flattened Tensor object is:', tf.reshape(a, [-1]))
- 智能手机市场|华为再拿第一!27%的份额领跑全行业,苹果8%排在第四名!
- 会员|美容院使用会员管理软件给顾客更好的消费体验!
- 行业|现在行业内客服托管费用是怎么算的
- 人民币|天猫国际新增“服务大类”,知舟集团提醒入驻这些类目的要注意
- 美国|英国媒体惊叹:165个国家采用北斗将GPS替代,连美国也不例外?
- 国外|坐拥77件专利,打破国外的垄断,造出中国最先进的家电芯片
- 技术|做“视频”绿厂是专业的,这项技术获人民日报评论点赞
- 面临|“熟悉的陌生人”不该被边缘化
- 中国|浅谈5G移动通信技术的前世和今生
- 页面|如何简单、快速制作流程图?上班族的画图技巧get