TensorFlow-Tutorials-for-Time-Series icon indicating copy to clipboard operation
TensorFlow-Tutorials-for-Time-Series copied to clipboard

lstm-for-epf TypeError : Tensors in list passed to 'values' of 'Concat' Op have types [float64, float32] that don't all match

Open ad34 opened this issue 7 years ago • 8 comments

Hi,

I m trying to run the script lstm-for-epf.py with tensorflow 0.10

the execution abort due to the following error

File ".../tensorflow/TensorFlow-Tutorials-for-Time-Series-master/lstm_predictor.py", line 117, in lstm_model output, layers = tf.nn.rnn(stacked_lstm, x, dtype=dtypes.float32) File "/Library/Python/2.7/site-packages/tensorflow/python/ops/rnn.py", line 219, in rnn (output, state) = call_cell() File "/Library/Python/2.7/site-packages/tensorflow/python/ops/rnn.py", line 206, in call_cell = lambda: cell(input_, state) File "/Library/Python/2.7/site-packages/tensorflow/python/ops/rnn_cell.py", line 812, in call cur_inp, new_state = cell(cur_inp, cur_state) File "/Library/Python/2.7/site-packages/tensorflow/python/ops/rnn_cell.py", line 310, in call concat = _linear([inputs, h], 4 * self._num_units, True) File "/Library/Python/2.7/site-packages/tensorflow/python/ops/rnn_cell.py", line 906, in _linear res = math_ops.matmul(array_ops.concat(1, args), matrix) File "/Library/Python/2.7/site-packages/tensorflow/python/ops/array_ops.py", line 697, in concat name=name) File "/Library/Python/2.7/site-packages/tensorflow/python/ops/gen_array_ops.py", line 414, in _concat values=values, name=name) File "/Library/Python/2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 437, in apply_op raise TypeError("%s that don't all match." % prefix) TypeError: Tensors in list passed to 'values' of 'Concat' Op have types [float64, float32] that don't all match.

there is a float64/32 conversion issue.

adding this in _lstm_model fix the issue.

X = tf.cast(X,tf.float32)

there is probably another better fix, I just started playing with the code :)

ad34 avatar Oct 22 '16 17:10 ad34

I think this is a good solution. TensorFlow works best with the float32 type but the np.sin function creates a float64 type array. This causes an error in TensorFlow >0.9.

arnoutaertgeerts avatar Nov 06 '16 21:11 arnoutaertgeerts

@arnoutaertgeerts after making the change I still have errors. as the project dont seems to be active anymore I will probably try to port it to tensorflow >0.9 on my side.

ad34 avatar Nov 16 '16 09:11 ad34

Thanks for the interesting on this github. Now, I'm working on changing this repository into Keras.

tgjeon avatar Nov 22 '16 04:11 tgjeon

@tgjeon nice !

ad34 avatar Nov 22 '16 06:11 ad34

Hello - was this issue ever fixed? I have the same problem :/ I would like to use this code.

ghost avatar Feb 04 '17 15:02 ghost

@ashleymaeconard I am working on time series predictions, facing similar issues as yours. Did you find a solution??

fayazahasan avatar Mar 09 '17 12:03 fayazahasan

@ashleymaeconard @fayazahasan

The original poster added the fix in his post.

Add this line...

X = tf.cast(X,tf.float32)

to... https://github.com/tgjeon/TensorFlow-Tutorials-for-Time-Series/blob/4672e506a8a0364c4b58d591e5d9486ce0e0269c/lstm_predictor.py#L114

0b01 avatar Jun 17 '17 17:06 0b01

I encountered this error from using google/seq2seq. This answer also applies.

0b01 avatar Jun 17 '17 17:06 0b01