Я пытаюсь понять Матричные вычисления, вовлеченные в SIMPLERNN.
Я понял из некоторых публикаций в блоге и stackoverflow, что SimpleRNN (единицы) создает слой, в котором в каждом слое нет единиц RNN.,SimpleRNN включает в себя следующие вычисления
W = ядро # shape- (1, единицы измерения)
U = recurrent_kernel # shape- (единицы измерения, единицы измерения)
B = смещение # формы- (единиц,)
output = new_state = act (W * input + U * state + B)
Помогите мне понять, каковы входные и выходные размеры следующего фрагмента кода ниже.
Функция для генерации X и Y. Где Y - кумулятивная сумма X.
'def generate_batch (n = 256):
X = np.random.choice(a=[0, 1], size = n*seq_len, p=[0.9, 0.1]).reshape(n, -1)
y = np.cumsum(X, axis=1)
X = X.reshape(n, -1, 1)
y = y.reshape(n, -1, 1)
return(X, y) #returns shape X,y-(256,60,1)
model = Sequential ()
model.add (SimpleRNN (10, input_shape = (60, 1), return_sequence = True))
model.add (Dense (1))
model.compile (loss = 'mse', optimizer = 'adam')
X, y = generate_batch () # (256,60,1)
model.fit (X, y,verbose = 0, epochs = 1) '
, пожалуйста, помогите мне выяснить размеры входных данных в RNN, размерности состояний и выходных данных из RNN. Как происходят матричные вычисления, т. е. (W * input + U * state +B).