5个简单的步骤掌握Tensorflow的Tensor( 四 )

如你所见 , 我们可以很容易地重塑我们的张量对象 。 但要注意的是 , 在进行重塑操作时 , 开发人员必须是合理的 。 否则 , 张量可能会混淆 , 甚至会产生错误 。 所以 , 小心点.
广播当我们尝试使用多个张量对象进行组合操作时 , 较小的张量可以自动伸展以适应较大的张量 , 就像NumPy数组一样 。 例如 , 当你尝试将标量张量与秩2张量相乘时 , 标量将被拉伸以乘以每个秩2张量元素 。 参见以下示例:
m = tf.constant([5])n = tf.constant([[1,2],[3,4]])print(tf.multiply(m, n))Output:tf.Tensor( [[ 5 10][15 20]], shape=(2, 2), dtype=int32)多亏了广播 , 在对张量进行数学运算时 , 你不必担心大小匹配 。
张量的特殊类型我们倾向于生成矩形的张量 , 并将数值存储为元素 。 但是 , TensorFlow还支持不规则或特殊的张量类型 , 这些类型包括:

  1. 参差不齐的张量
  2. 字符串张量
  3. 稀疏张量

5个简单的步骤掌握Tensorflow的Tensor文章插图
让我们仔细看看每一个都是什么 。
参差不齐的张量参差不齐张量是沿着尺寸轴具有不同数量元素的张量
可以构建不规则张量 , 如下所示
ragged_list = [[1, 2, 3],[4, 5],[6]]ragged_tensor = tf.ragged.constant(ragged_list)print(ragged_tensor)Output:字符串张量字符串张量是存储字符串对象的张量 。 我们可以建立一个字符串张量 , 就像你创建一个普通的张量对象 。 但是 , 我们将字符串对象作为元素而不是数字对象传递 , 如下所示:
string_tensor = tf.constant(["With this","code, I am","creating a String Tensor"])print(string_tensor)Output:tf.Tensor([b'With this'b'code, I am'b'creating a String Tensor'],shape=(3,), dtype=string)稀疏张量最后 , 稀疏张量是稀疏数据的矩形张量 。 当数据中有空值时 , 稀疏张量就是对象 。 创建稀疏张量有点耗时 , 应该更主流一些 。 这里有一个例子:
sparse_tensor = tf.sparse.SparseTensor(indices=[[0, 0], [2, 2], [4, 4]],values=[25, 50, 100],dense_shape=[5, 5])# 我们可以把稀疏张量转换成密集张量print(tf.sparse.to_dense(sparse_tensor))Output:tf.Tensor( [[ 250000][00000][005000][00000][0000 100]], shape=(5, 5), dtype=int32)结尾我们已经成功地介绍了TensorFlow的张量对象的基础知识 。
这应该会给你很大的信心 , 因为你现在对TensorFlow框架的基本知识了解得更多了 。