データセットでエンコーダ/デコーダモデルを実行しようとしています。以下はサンプルコードですTensorflow basic_rnn_seq2seq TypeError:予想されるint32、 'float'型の-0.1が代入されました
self._input_data = tf.placeholder(tf.int32, [batch_size, num_steps])
self._targets = tf.placeholder(tf.int32, [batch_size, num_steps])
enc_inputs.append(self._input_data) #one batch at once
dec_inputs.append(self._targets)
model = seq2seq.basic_rnn_seq2seq(enc_inputs, dec_inputs, tf.nn.rnn_cell.BasicLSTMCell(size, state_is_tuple=True))
タイプミスマッチ(下記参照)のエラーが発生します。誰もが問題を解決するために知っていますか?
tensor_util.py, line 290, in _AssertCompatible
(dtype.name, repr(mismatch), type(mismatch).__name__))
TypeError: Expected int32, got -0.1 of type 'float' instead.
tf.int32をtf.float32に変更すると問題は解決します。私は理由は分かりませんが、プログラムはエラーフリーです。 – user3480922
int32として型指定されたテンソルに浮動小数点値を挿入しようとすると、型エラーが発生します。 tensor_util.pyは、実行のためにバックエンドクライアントにデータやグラフを送信する前に、Python内でテンソルを構築するために使用されます。あなたの質問から、エラーを再現する方法を正確には分かりません。 _input_dataはどのように初期化されていますか?浮動小数点数を含む値ですか? –
encode_inputとdecode_inputは、単純に言えばids(整数)です。次に、すべてのプロセスはbasic_rnn_seq2seq APIの内部で処理されます。 – user3480922