Зачем вызывать K.eval () для SpatialDropout1D и K.dropout, результат отличается - PullRequest
0 голосов
/ 28 мая 2019

Я различаю keras.layer по Droupout и SpatialDropout1D, однако я вызываю K.eval () и нахожу, что два результата отличаются.

Работает в tenorflow1.12.1

x = np.arange(2*4*3).reshape((2, 4, 3))
inputs = K.variable(x) # generate a variable
dropout_1 = K.eval(SpatialDropout1D(0.5)(inputs))
print(dropout_1)
noise_shape=(2, 4, 1) 
dropout_2 = K.eval(K.dropout(inputs, 0.5, noise_shape)) 
print(dropout_2)

dropout_1:

[[[ 0.  1.  2.]
  [ 3.  4.  5.]
  [ 6.  7.  8.]
  [ 9. 10. 11.]]

 [[12. 13. 14.]
  [15. 16. 17.]
  [18. 19. 20.]
  [21. 22. 23.]]]

dropout_2:

[[[ 0.  2.  4.]
  [ 6.  8. 10.]
  [ 0.  0.  0.]
  [ 0.  0.  0.]]

 [[24. 26. 28.]
  [30. 32. 34.]
  [36. 38. 40.]
  [ 0.  0.  0.]]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...