0
トーチは、nn.Concat
と同様の機能nn.DepthConcat
を持っていますが、非チャネルディムをすべて同じサイズにするためにゼロが埋められています。私は運が少しでもテンソルフローになるようにしようとしています。私は、グラフ構築時にテンソルの全てのサイズを知っている場合、これは動作するようです:torch nn.DepthConcatテンソルフローバージョン
Tensors in list passed to 'values' of 'Pack' Op have types [<NOT CONVERTIBLE TO TENSOR>, <NOT CONVERTIBLE TO TENSOR>, <NOT CONVERTIBLE TO TENSOR>, <NOT CONVERTIBLE TO TENSOR>] that don't all match.
:
def depthconcat(inputs):
concat_dim = 3
shapes = []
for input_ in inputs:
shapes.append(input_.get_shape())
shape_tensor = tf.pack(shapes)
max_dims = tf.reduce_max(shape_tensor, 0)
padded_inputs = []
for input_ in inputs:
paddings = max_dims - input_.get_shape()
padded_inputs.append(tf.pad(input_, paddings))
return tf.concat(concat_dim, padded_inputs)
しかし、形状は実行時に決定された場合、私は次のエラーを取得しますグラフ作成時に完全に定義されている場合、TensorShape
オブジェクトをテンソルに変換できるようです。助言がありますか?ありがとう。
編集: input_.get_shape()
からtf.shape(input_)
に変更すると、グラフ作成時にあいまいな形状の問題が解決されました。今すぐ取得するValueError: Shape (4,) must have rank 2