Я хочу создать гауссовский шумовой слой Keras, который создает шум с различным уровнем stddev для каждого столбца набора данных.Однако, поскольку я не очень разбираюсь в кодировании, есть большая проблема, которую я не могу решить самостоятельно.
С исходным кодом слоя гауссовского шума Keras,
Я сделал кодкак показано ниже:
def call(self, inputs, training=None):
def noised():
temp=inputs
for i in range(100):
temp[:,i]=temp[:,i]+K.random_normal(shape=
(len(inputs),1),mean=0.,stddev=self.stddev[i])
return temp
return K.in_train_phase(noised, inputs, training=training)
Тем не менее, он показывает ошибку вроде:
object of type 'Tensor' has no len()
Я считаю, что ошибка происходит из-за другого типа фигуры.
Потому что исходный код, как показано ниже:
def noised():
return inputs + K.random_normal(shape=K.shape(inputs),
mean=0.,
stddev=self.stddev)
использует символьный тип фигуры (K.shape), а я ввел целочисленный тип числа (len (len ()).
Однако я понятия не имею, как решить эту проблему.
Мне было бы очень полезно, если бы вы дали мне какой-то способ ее решить.
Большое спасибо за вашу помощь.