Матричные вычисления в SIMPLERNN KERAS - PullRequest
1 голос
/ 29 апреля 2019

Я пытаюсь понять Матричные вычисления, вовлеченные в 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).

...