在TensorFlow中的NHWC和NCHW之间转换

兹普利齐

将张量从NHWC格式转换为NCHW格式,反之亦然的最佳方法是什么?

是否有专门用于此操作的操作,还是我需要使用split / concat类型操作的某种组合?

奥利维尔·莫恩德罗(Olivier Moindrot)

您需要做的只是将尺寸从NHWC更改为NCHW(或者相反)。

每个字母的含义可能有助于理解:

  • N:批处理中的图像数
  • H:图像的高度
  • W:图像的宽度
  • C:图像的通道数(例如:RGB为3,灰度为1 ...)

从NHWC到NCHW

图像的形状是(N, H, W, C),我们希望输出具有形状(N, C, H, W)因此,我们需要tf.transpose选择适当的排列方式进行应用perm

返回的张量的尺寸i将对应于输入尺寸perm[i]

perm[0] = 0  # output dimension 0 will be 'N', which was dimension 0 in the input
perm[1] = 3  # output dimension 1 will be 'C', which was dimension 3 in the input
perm[2] = 1  # output dimension 2 will be 'H', which was dimension 1 in the input
perm[3] = 2  # output dimension 3 will be 'W', which was dimension 2 in the input

在实践中:

images_nhwc = tf.placeholder(tf.float32, [None, 200, 300, 3])  # input batch
out = tf.transpose(x, [0, 3, 1, 2])
print(out.get_shape())  # the shape of out is [None, 3, 200, 300]

从NCHW到NHWC

图像的形状是(N, C, H, W),我们希望输出具有形状(N, H, W, C)因此,我们需要tf.transpose选择适当的排列方式进行应用perm

返回的张量的尺寸i将对应于输入尺寸perm[i]

perm[0] = 0  # output dimension 0 will be 'N', which was dimension 0 in the input
perm[1] = 2  # output dimension 1 will be 'H', which was dimension 2 in the input
perm[2] = 3  # output dimension 2 will be 'W', which was dimension 3 in the input
perm[3] = 1  # output dimension 3 will be 'C', which was dimension 1 in the input

在实践中:

images_nchw = tf.placeholder(tf.float32, [None, 3, 200, 300])  # input batch
out = tf.transpose(x, [0, 2, 3, 1])
print(out.get_shape())  # the shape of out is [None, 200, 300, 3]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在UWP中的Rtf和HTML之间转换

来自分类Dev

Scala 中 Long 和 Double 之间的转换和比较

来自分类Dev

在Tensorflow中,变量和张量之间有什么区别?

来自分类Dev

在SQL Server中解析和转换之间的区别

来自分类Dev

如何在Red / System中的整数和字符之间转换?

来自分类Dev

Haskell中的String和Data.Text之间的自动转换

来自分类Dev

在Notepad ++中编码和转换之间有什么区别?

来自分类Dev

javaagent中重新定义和重新转换之间的区别

来自分类Dev

uint8和C中的char之间的转换

来自分类Dev

在pyspark中的datetime64和datetime之间转换

来自分类Dev

C和C ++中的函数指针转换之间的区别

来自分类Dev

如何在Red / System中的整数和字符之间转换?

来自分类Dev

在C中的FILE类型和filedescriptor之间转换

来自分类Dev

JS和QTDatetime中的Unix时间戳转换之间的区别?

来自分类Dev

EPL和ZPL之间的转换

来自分类Dev

在LocalDate和XMLGregorianCalendar之间转换

来自分类Dev

接口和类之间的转换

来自分类Dev

解析和转换之间的区别?

来自分类Dev

DbSet和ObservableCollection之间的转换

来自分类Dev

NSData和void之间的转换*

来自分类Dev

.xlsx和.zip之间的转换

来自分类Dev

使用CPU的“ Keras后端+ Tensorflow”和“来自Tensorflow的Keras”之间有什么区别(在Tensorflow 2.x中)

来自分类Dev

SQL Server中的隐式转换和显式转换之间的区别

来自分类Dev

C#中的实数文字转换和类型转换之间有什么区别?

来自分类Dev

SQL Server中的隐式转换和显式转换之间的区别

来自分类Dev

tf.sub和tensorflow中的正负运算之间有什么区别?

来自分类Dev

TensorFlow中的feature_column.embedding_column和keras.layers.Embedding之间的区别

来自分类Dev

您能解释keras模型中的tensorflow加载和hdf5加载之间的区别吗

来自分类Dev

python中keras和tensorflow.keras之间的意外性能差异

Related 相关文章

  1. 1

    在UWP中的Rtf和HTML之间转换

  2. 2

    Scala 中 Long 和 Double 之间的转换和比较

  3. 3

    在Tensorflow中,变量和张量之间有什么区别?

  4. 4

    在SQL Server中解析和转换之间的区别

  5. 5

    如何在Red / System中的整数和字符之间转换?

  6. 6

    Haskell中的String和Data.Text之间的自动转换

  7. 7

    在Notepad ++中编码和转换之间有什么区别?

  8. 8

    javaagent中重新定义和重新转换之间的区别

  9. 9

    uint8和C中的char之间的转换

  10. 10

    在pyspark中的datetime64和datetime之间转换

  11. 11

    C和C ++中的函数指针转换之间的区别

  12. 12

    如何在Red / System中的整数和字符之间转换?

  13. 13

    在C中的FILE类型和filedescriptor之间转换

  14. 14

    JS和QTDatetime中的Unix时间戳转换之间的区别?

  15. 15

    EPL和ZPL之间的转换

  16. 16

    在LocalDate和XMLGregorianCalendar之间转换

  17. 17

    接口和类之间的转换

  18. 18

    解析和转换之间的区别?

  19. 19

    DbSet和ObservableCollection之间的转换

  20. 20

    NSData和void之间的转换*

  21. 21

    .xlsx和.zip之间的转换

  22. 22

    使用CPU的“ Keras后端+ Tensorflow”和“来自Tensorflow的Keras”之间有什么区别(在Tensorflow 2.x中)

  23. 23

    SQL Server中的隐式转换和显式转换之间的区别

  24. 24

    C#中的实数文字转换和类型转换之间有什么区别?

  25. 25

    SQL Server中的隐式转换和显式转换之间的区别

  26. 26

    tf.sub和tensorflow中的正负运算之间有什么区别?

  27. 27

    TensorFlow中的feature_column.embedding_column和keras.layers.Embedding之间的区别

  28. 28

    您能解释keras模型中的tensorflow加载和hdf5加载之间的区别吗

  29. 29

    python中keras和tensorflow.keras之间的意外性能差异

热门标签

归档