繁体   English   中英

如何在Tensorflow中扩展维度

[英]How to expand dimensions in Tensorflow

我有这个张量 A:

<tf.Tensor: shape=(2, 18), dtype=float32, numpy=
array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 1.,
        1., 1.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
        0., 0.]], dtype=float32)>

我想创建一个掩码以添加到另一个形状为(2, 18, 1000)的张量。 也就是说,我想将每个数字扩展到 1000 个,例如,在张量 A 中,将每个 0 更改为 1000 个零的维度,并在每个 1 中,将每个更改为 1000 个 1 的维度。 我该怎么做?

编辑

基本上,我想要做的是将张量 A 从形状(2, 18)转换为形状(2, 18, 1000) ,这 1000 个值为 0 或 1

只需使用tf.expand_dims

import tensorflow as tf

a = tf.constant([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 1.,
        1., 1.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
        0., 0.]])
b = tf.random.normal(shape=[2, 18, 1000])
c = tf.expand_dims(a, axis=2) + b
c.shape
# TensorShape([2, 18, 1000])

关于广播参见,例如,这个 numpy 教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM