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]