2017-07-03 21 views
2

したがって、tf.int32フィルタを使用してtf.int32のバッチにコンボリューション(標準depthwise_conv2d)を実行しようとしています。私はエラー:TypeError: Value passed to parameter 'input' has DataType int32 not in list of allowed values: float32, float64を取得します。私はグラデーションを必要としないので、誰かが畳み込みを表現できるopを知っていてintを受け入れるかどうか疑問に思っています。ありがとう!TensorFlowのコンボルブ整数テンソル

conv2dがint型を受け入れていないので、あなたはこれを行うことはできません
+0

何か理由をタイプしたくない場合は、それを浮動小数点型に変換しますか?コンボリューションには正規化が必要で、結果は出力されます。 –

+0

ねえ - コメントありがとう。畳み込みには正規化が含まれていることに気づいていませんでした。[ここ](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/conv_ops.cc) ](https://bitbucket.org/eigen/eigen/src/9b065de03d016d802a25366ff5f0055df6318121/unsupported/Eigen/CXX11/src/Tensor/README.md?at=default&fileviewer=file-view-default#markdown-header-wzxhzdk178operationwzxhzdk179-convolveconst- kernel-kernel-const-dimensions-dims)では、正規化がどこで起こっているのか分かりません。現在正常なNumPyを使用して終了しました –

+0

通常のコンボリューションでは、正規化はカーネルの重みに吸収されます。しかし、あなたの質問は整数畳み込み(私は何らかの理由でやりたいと思っていた)でしたし、正規化が必要になります。 –

答えて

1

input: A Tensor. Must be one of the following types: half, float32. A 4-D tensor. The dimension order is interpreted according to the value of data_format, see below for details.

だからあなたのソリューションは、独自の(異なる種類とそのconv2dの単なるコピーとなります)conv2dintまたは使用を記述しているのいずれかそのconv2dとtf.cast(res_from_conv, tf.int32)を適用します。

関連する問題