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还支持不规则或特殊的张量类型 , 这些类型包括:
- 参差不齐的张量
- 字符串张量
- 稀疏张量
文章插图
让我们仔细看看每一个都是什么 。
参差不齐的张量参差不齐张量是沿着尺寸轴具有不同数量元素的张量
可以构建不规则张量 , 如下所示
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框架的基本知识了解得更多了 。
推荐阅读
- 手机内存不足别乱删,学会这5个技巧,让手机释放大量空间
- 1个手机怎么登录2个微信?方法很简单,看完我学会了
- 原来华为手机拍视频还能添加字幕,方法很简单,一学就会
- 手机照片、视频怎样添加文字?原来很简单,4种方法一分钟搞定
- 微信最近很火的“圣诞帽头像”,原来这么简单,快学起来
- 只为好看?手机多摄像头排布方式可没有那么简单
- 原来微信长按2秒这么实用!能开启5个高级功能,涨知识了
- 在家请一个健身教练,要分几个步骤?
- DeepMind新AI无需提前知晓规则也能掌握游戏:无论视觉简单还是复杂
- 剪视频很头大?Reno5 Pro+教你简单制作Vlog