Как создать собственный слой гауссовского шума, который накладывает разные значения stddev для каждого столбца набора данных в Keras? - PullRequest
0 голосов
/ 19 мая 2019

Я хочу создать гауссовский шумовой слой 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 ()).

Однако я понятия не имею, как решить эту проблему.

Мне было бы очень полезно, если бы вы дали мне какой-то способ ее решить.

Большое спасибо за вашу помощь.

...