为什么在SpatialDropout1D和K.dropout上调用K.eval(),结果不同

时间:2019-05-28 10:22:47

标签: keras

我将Droupout和SpatialDropout1D区分为keras.layer,但是,我调用K.eval()并发现两者的结果是不同的。

它正在tensorflow1.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)

辍学_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.]]]

辍学_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.]]]

0 个答案:

没有答案