I posted this question to stack exchange here:
My input tensor “`Data = Input(shape=(856,))“` is a vector of float32 values concatenated from many different devices. I am trying to apply different TensorFlow functions to different subslices of each input chunk. Some of these functions include a 1D Convolution which requires a reshape.
slice = Data[:20]
reshape = tf.reshape(slice, (-1, 20, 1))
…
Doing this crashes after trying to fit my model. It throws the following errors:
tensorflow.python.framework.errors_impl.InvalidArgumentError: Input to reshape is a tensor with 10272 values, but the requested shape requires a multiple of 20
[[node model/tf.reshape_1/Reshape
(defined at /home/.local/lib/python3.8/site-packages/keras/layers/core/tf_op_layer.py:261)
]] [Op:__inference_train_function_1858]
Errors may have originated from an input operation.
Input Source operations connected to node model/tf.reshape_1/Reshape:
In[0] model/tf.__operators__.getitem_1/strided_slice:
In[1] model/tf.reshape_1/Reshape/shape:
I am not sure how slicing 20 elements from a tensor of 856 could result in a tensor of 10272 values.
I have also tried using the “`tf.slice“` function a couple of different ways; both fail. Referencing the docs: https://www.tensorflow.org/guide/tensor_slicing
slice = tf.slice(Data, begin=[0], size=[20])
…
And fails, stating:
Shape must be rank 1 but is rank 2 for ‘{{node tf.slice/Slice}} = Slice[Index=DT_INT32, T=DT_FLOAT](Placeholder, tf.slice/Slice/begin, tf.slice/Slice/size)’ with input shapes: [?,856], [1], [1].
For reference, here is what some of the values look like in the input data
array([-9.55784683e+01, -1.70557899e+01, 2.95967350e+01, 7.81378937e+00,
9.02729130e+00, 5.49621725e+00, 4.19811630e+00, 5.84186697e+00,
4.90438080e+00, 3.73845983e+00, 5.12300587e+00, 2.61530232e+00,
2.67061424e+00, 3.91038632e+00, 2.31110978e+00, 4.20644665e+00,
4.50000000e+00, 9.87345278e-01, 1.59740388e+00, 6.30727148e+00,
…
submitted by /u/EightEqualsEqualsDe
[visit reddit] [comments]