tf.Tensor.set_shape()の説明

jkschin:

私は478 x 717 x 3 = 1028178ピクセルの画像で、ランクは1です。tf.shapeとtf.rankを呼び出して確認しました。

image.set_shape([478、717、3])を呼び出すと、次のエラーがスローされます。

"Shapes %s and %s must have the same rank" % (self, other)) 
ValueError: Shapes (?,) and (478, 717, 3) must have the same rank

最初に1028178にキャストして再度テストしましたが、まだエラーが残っています。

ValueError: Shapes (1028178,) and (478, 717, 3) must have the same rank

1つはランク1、もう1つはランク3なので、これは理にかなっています。しかし、ピクセルの総数がまだ一致しているため、エラーをスローする必要があるのはなぜですか。

もちろんtf.reshapeを使用することもできますが、それは機能しますが、それは最適ではないと思います。

TensorFlow FAQで述べたように

x.set_shape()とx = tf.reshape(x)の違いは何ですか?

tf.Tensor.set_shape()メソッドはTensorオブジェクトの静的形状を更新します。これは通常、これを直接推論できない場合に追加の形状情報を提供するために使用されます。テンソルの動的形状は変更されません。

tf.reshape()オペレーションは、動的形状が異なる新しいテンソルを作成します。

新しいテンソルの作成にはメモリの割り当てが含まれるため、トレーニングの例が増えると、コストが高くなる可能性があります。これは設計によるものですか、ここで何か不足していますか?

mrry:

私が知る限り(そして私はそのコードを記述しました)、にバグはありませんTensor.set_shape()誤解は、そのメソッドの紛らわしい名前に起因すると思います。

引用したFAQエントリを詳しく説明するとTensor.set_shape()、特定のオブジェクトの形状情報を改善する純粋なPython関数ですtf.Tensor「改善する」とは、「より具体的にする」という意味です。

したがって、shapeのTensorオブジェクトがある場合、それは長さが不明な1次元のテンソルです。あなたは電話をかけることができ、電話をかけるができますこれは、基礎となるストレージ、または実際にはバックエンドの何にも影響しません。それは、使用する後続の形状推論が、長さ1028178のベクトルであるというアサーションに依存できることを単に意味します。t(?,)t.set_shape((1028178,))t(1028178,)t.get_shape()t

場合はt形状をしている(?,)、の呼び出しがt.set_shape((478, 717, 3))TensorFlowは、すでにそれは知っているので、失敗するtことはので、ベクトルであることができない形状を有しています(478, 717, 3)の内容からその形状で新しいTensorを作成したい場合はt、を使用できますreshaped_t = tf.reshape(t, (478, 717, 3))これにより、tf.TensorPythonで新しいオブジェクトが作成されます。の実際の実装でtf.reshape()は、テンソルバッファの浅いコピーを使用してこれを行うため、実際には安価です。

1つの例えは、Tensor.set_shape()Javaのようなオブジェクト指向言語でのランタイムキャストのようなものです。たとえば、ポインタへのポインタObjectがあっても、それが実際にはであることがわかっているString場合は、引数(String) objを必要objとするメソッドに渡すためにキャストを実行できStringます。ただし、String saがありjava.util.Vectorそれをにキャストしようとする、これら2つのタイプは無関係であるため、コンパイラーはエラーを出します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

tf.Tensor.set_shape()の説明

分類Dev

tf.Tensor.set_shape()の説明

分類Dev

tf.constantとtf.convert_to_tensorの違いは何ですか

分類Dev

tf.contrib.lookup.index_table_from_tensorのオプション

分類Dev

なぜtf.convert_to_tensorが必要なのですか?

分類Dev

バッチのtf_gather_ndとtensor_scatter_nd_update

分類Dev

tf.scanはTensorの形状を覆い隠します

分類Dev

TensorFlow tf.sparse_tensor_dense_matmul

分類Dev

replicate a row tensor using tf.tile?

分類Dev

'Tensor' object has no attribute 'numpy' in tf.function in TF 2.0

分類Dev

ValueError:Tensor Tensor( "Const:0"、shape =()、dtype = float32)にtf.placeholderを指定できない場合があります

分類Dev

tf.Tensorのゼロ以外の値のみを評価します

分類Dev

ValueError:値tf.Tensor .. shape =()、dtype = float64)のランクがバッチ処理に不十分です。

分類Dev

tf.summary.tensor_summaryはどのように使用されるのですか?

分類Dev

tf.tensorから1つの操作で複数の列を抽出します

分類Dev

tensorflow c ++にtf.convert_to_tensorに相当するものはありますか?

分類Dev

How is tf.summary.tensor_summary meant to be used?

分類Dev

Tensorflow.js tf.Tensor toJS番号

分類Dev

tf.print()vs Python print vs tensor.eval()

分類Dev

InvalidArgumentError: 'tf.Tensor(False、shape =()、dtype = bool)'がtrueであることが期待されます

分類Dev

TensorFlow:tf.Datasetをtf.Tensorに変換します

分類Dev

ValueError:tf.image.crop_to_bounding_boxの使用中に、dtypefloat32を持つTensorに対してTensor変換がdtypeint32を要求しました

分類Dev

ValueError:tf.data.Dataset.from_tensor_slicesを使用すると、長方形以外のPythonシーケンスをTensorに変換できません

分類Dev

tf.data.Dataset.from_tensor_slicesの最後のレコードで形状に互換性がありません

分類Dev

TensorFlow:TypeError:Pythonの `bool`として` tf.Tensor`を使用することは許可されていません

分類Dev

`tf.data.Dataset.from_tensor_slices`の結果を出力するにはどうすればよいですか?

分類Dev

構造化データのtf.tensorオブジェクトを使用した単純なTensorFlow(Keras)モデル

分類Dev

さまざまな形状の Tensor オブジェクトを tf.train.batch に渡す

分類Dev

What is the shape of an image tensor in TensorFlow

Related 関連記事

  1. 1

    tf.Tensor.set_shape()の説明

  2. 2

    tf.Tensor.set_shape()の説明

  3. 3

    tf.constantとtf.convert_to_tensorの違いは何ですか

  4. 4

    tf.contrib.lookup.index_table_from_tensorのオプション

  5. 5

    なぜtf.convert_to_tensorが必要なのですか?

  6. 6

    バッチのtf_gather_ndとtensor_scatter_nd_update

  7. 7

    tf.scanはTensorの形状を覆い隠します

  8. 8

    TensorFlow tf.sparse_tensor_dense_matmul

  9. 9

    replicate a row tensor using tf.tile?

  10. 10

    'Tensor' object has no attribute 'numpy' in tf.function in TF 2.0

  11. 11

    ValueError:Tensor Tensor( "Const:0"、shape =()、dtype = float32)にtf.placeholderを指定できない場合があります

  12. 12

    tf.Tensorのゼロ以外の値のみを評価します

  13. 13

    ValueError:値tf.Tensor .. shape =()、dtype = float64)のランクがバッチ処理に不十分です。

  14. 14

    tf.summary.tensor_summaryはどのように使用されるのですか?

  15. 15

    tf.tensorから1つの操作で複数の列を抽出します

  16. 16

    tensorflow c ++にtf.convert_to_tensorに相当するものはありますか?

  17. 17

    How is tf.summary.tensor_summary meant to be used?

  18. 18

    Tensorflow.js tf.Tensor toJS番号

  19. 19

    tf.print()vs Python print vs tensor.eval()

  20. 20

    InvalidArgumentError: 'tf.Tensor(False、shape =()、dtype = bool)'がtrueであることが期待されます

  21. 21

    TensorFlow:tf.Datasetをtf.Tensorに変換します

  22. 22

    ValueError:tf.image.crop_to_bounding_boxの使用中に、dtypefloat32を持つTensorに対してTensor変換がdtypeint32を要求しました

  23. 23

    ValueError:tf.data.Dataset.from_tensor_slicesを使用すると、長方形以外のPythonシーケンスをTensorに変換できません

  24. 24

    tf.data.Dataset.from_tensor_slicesの最後のレコードで形状に互換性がありません

  25. 25

    TensorFlow:TypeError:Pythonの `bool`として` tf.Tensor`を使用することは許可されていません

  26. 26

    `tf.data.Dataset.from_tensor_slices`の結果を出力するにはどうすればよいですか?

  27. 27

    構造化データのtf.tensorオブジェクトを使用した単純なTensorFlow(Keras)モデル

  28. 28

    さまざまな形状の Tensor オブジェクトを tf.train.batch に渡す

  29. 29

    What is the shape of an image tensor in TensorFlow

ホットタグ

アーカイブ