Ошибка типа: __массив__() принимает 1 позиционный аргумент, но 2, если задано

#python #arrays #keras

Вопрос:

Я пытаюсь определить модель, используя keras. В начале этой модели я хочу взять каждый канал в своих входных данных и обработать его индивидуально. После этого я хочу собрать их вместе в качестве каналов.

Это цикл for, в котором я использую каждый канал по отдельности, а затем пытаюсь собрать их вместе.

 def call(self, x):  encoded_images = np.zeros((batch_size, self.latent_dim, self.channels))    for i in range(self.channels):  channel_i = tf.expand_dims(keras.layers.Lambda(lambda x : x[:,:,:,i])(x), -1)  encoded_images[:, :, i:i 1] = tf.expand_dims(self.encoder(channel_i), axis=-1)  

Я проверил, что то, что я пытаюсь назначить, имеет ту же форму, так что:

 encoded_images[:, :, i:i 1].shape = (32, 32, 1) tf.expand_dims(self.encoder(channel_i), axis=-1).shape = (32, 32, 1)  

Я не понимаю, почему я получаю эту ошибку.

 TypeError: in user code:   /opt/conda/lib/python3.7/site-packages/keras/engine/training.py:853 train_function *  return step_function(self, iterator)  /tmp/ipykernel_36/4063924246.py:46 call *  encoded_images[:, :, i:i 1] = tf.expand_dims(self.encoder(channel_i), axis=-1)   TypeError: __array__() takes 1 positional argument but 2 were given  

Я работаю с блокнотом Jupyter.