前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tf.transpose函数解析

tf.transpose函数解析

作者头像
演化计算与人工智能
发布2020-08-14 11:33:29
5620
发布2020-08-14 11:33:29
举报

tf.transpose(a, perm = None, name = 'transpose')

解释

  • 将a进行转置,并且根据perm参数重新排列输出维度。这是对数据的维度的进行操作的形式。

Details

  • 图像处理时数据集中存储数据的形式为[channel,image_height,image_width],在tensorflow中使用CNN时我们需要将其转化为[image_height,image_width,channel]的形式,只需要使用tf.transpose(input_data,[1,2,0])
  • 输出数据tensor的第i维将根据perm[i]指定。比如,如果perm没有给定,那么默认是perm = [n-1, n-2, ..., 0],其中rank(a) = n。
  • 默认情况下,对于二维输入数据,其实就是常规的矩阵转置操作。

Example

input_data.dims = (1, 4, 3) perm = [1, 2, 0]

因为 output_data.dims[0] = input_data.dims[ perm[0] ] 因为 output_data.dims[1] = input_data.dims[ perm[1] ] 因为 output_data.dims[2] = input_data.dims[ perm[2] ] 所以得到 output_data.dims = (4, 3, 1) output_data.dims = (4, 3, 1)

代码演示

代码语言:javascript
复制
import tensorflow as tf

sess = tf.Session()
input_data = tf.constant([[1, 2, 3], [4, 5, 6]])
print(sess.run(tf.transpose(input_data)))
# [[1 4]
#  [2 5]
#  [3 6]]
print(sess.run(input_data))
# [[1 2 3]
#  [4 5 6]]
print(sess.run(tf.transpose(input_data, perm=[1, 0])))
# [[1 4]
#  [2 5]
#  [3 6]]
input_data = tf.constant([[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]])
print('input_data shape: ', sess.run(tf.shape(input_data)))
# [1, 4, 3]
output_data = tf.transpose(input_data, perm=[1, 2, 0])
print('output_data shape: ', sess.run(tf.shape(output_data)))
# [4, 3, 1]
print(sess.run(output_data))
# [[[ 1]
#   [ 2]
#   [ 3]]
#  [[ 4]
#   [ 5]
#   [ 6]]
#
#  [[ 7]
#   [ 8]
#   [ 9]]
#
#  [[10]
#   [11]
#   [12]]]
"""形式为:[[[],[],[]],[[],[],[]],[[],[],[]],[[],[],[]]]"""

"""输入参数:
  ● a: 一个Tensor。
  ● perm: 一个对于a的维度的重排列组合。
  ● name:(可选)为这个操作取一个名字。
输出参数:
  ● 一个经过翻转的Tensor。"""

perm没有指定的情况下transpose函数的结果

代码语言:javascript
复制
input_data = tf.constant([[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]])
print('input_data shape: ', sess.run(tf.shape(input_data)))
# [1, 4, 3]
output_data = tf.transpose(input_data)
print('output_data shape: ', sess.run(tf.shape(output_data)))
# output_data shape:  [3 4 1]
sess.close()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DrawSky 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解释
  • Details
  • Example
  • 代码演示
    • perm没有指定的情况下transpose函数的结果
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档