【问题标题】:converting an array of size (n,n,m) to (None,n,n,m)将大小为 (n,n,m) 的数组转换为 (None,n,n,m)
【发布时间】:2019-04-01 20:01:24
【问题描述】:

我正在尝试将大小为 (14,14,3) 的数组重塑为 (None, 14,14,3)。我已经看到卷积神经网络中每一层的输出具有格式(无,n,n,m)的形状。

考虑到我的数组的名称是 arr

我尝试了arr[None,:,:],但它会将其转换为 (1,14,14,3) 的维度。

我该怎么做?

【问题讨论】:

  • 我不熟悉张量对象,但据我所知,在 numpy. 标量dtypes有一个空元组作为形状,但我从未见过None
  • 卷积神经网络层的输出形状为(None, n, n, m)。你的意思是用 numpy 不可能吗?
  • 为什么需要对单个示例执行此操作?您是否将其传递给占位符变量?
  • @coldspeed 当我做了 abc = tf.placeholder("float32", shape=[None, 14, 14, 3]),然后 abc.shape 给了我 (None, 14,14,3 )。我希望我的数组有类似的。我不知道传入占位符变量是什么意思
  • 您可以执行feed_dict={abc: arr[None, ...]},它将按预期传递给占位符。这就是你想要的,对吧?顺便说一句,在 numpy 中不能有可变维度,因为与 TensorFlow 不同,评估不是懒惰的。希望这能让事情变得清晰。

标签: python arrays numpy conv-neural-network reshape


【解决方案1】:

https://www.tensorflow.org/api_docs/python/tf/TensorShape

TensorShape 表示张量的可能部分形状规范。它可能是以下之一:

部分已知的形状:具有已知数量的维度,以及一个或多个维度的未知大小。例如TensorShape([无, 256])

这在numpy 中是不可能的。 ndarray 的所有维度都是已知的。

arr[None,:,:] 表示法添加了一个新的尺寸为 1 的维度,(1,14,14,3)。在广播规则下,可以更改这样的维度以匹配另一个数组的维度。从这个意义上说,我们经常将None 视为一个灵活的维度。


我没有使用过tensorflow,尽管我看到很多关于这两个标签的问题。 tensorflow 应该具有将值传入和传出张量的机制。它知道numpy,但numpy 不“知道”任何关于tensorflow 的信息。

ndarray 是具有已知值的对象,其形状用于以多维方式访问这些值。相比之下,tensor 没有值:

https://www.tensorflow.org/api_docs/python/tf/Tensor

它不保存该操作的输出值,而是提供一种计算这些值的方法

看起来你可以从一个数组中创建一个TensorProt(也可以从一个数组中返回一个数组):

https://www.tensorflow.org/api_docs/python/tf/make_tensor_proto

并从数组中生成张量:

https://www.tensorflow.org/api_docs/python/tf/convert_to_tensor

【讨论】:

    【解决方案2】:

    形状 (None, 14,14,3) 代表 ,(batch_size,imgH,imgW,imgChannel) 现在 imgH 和 imgW 可以根据网络和问题互换使用。 但是在神经网络中,batchsize 被指定为“None”,因为我们不想将我们的batchsize 限制为某个特定值,因为我们的batchsize 取决于很多因素,例如可用于我们的模型运行的内存等。

    假设您有 4 个大小为 14x14x3 的图像,然后您可以将每个图像附加到 L1 数组中,现在 L1 将具有 4x14x14x3 的形状,即您制作了一批 4 个图像,现在您可以将其提供给您的神经网络。

    注意这里 None 将被 4 替换,并且对于整个训练过程,它将是 4。类似地,当您只为网络提供一张图像时,它假定批量大小为 1 并将 None 设置为 1,从而为您提供形状 (1X14X14X3)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多