我将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.]]]