def setUp(self):
if (hasattr(keras, '__version__')==False):
self.keras_version = 0.2 #didn't have the __version__ tag
else:
self.keras_version = float(keras.__version__[0:2])
if (self.keras_version <= 0.2):
pass
else:
self.inp = (np.random.randn(10*10*51*51)
.reshape(10,10,51,51).transpose(0,2,3,1))
self.keras_model = keras.models.Sequential()
conv_layer = keras.layers.convolutional.Convolution2D(
nb_filter=2, nb_row=4, nb_col=4, subsample=(2,2),
activation="relu", input_shape=(51,51,10),
dim_ordering='tf')
self.keras_model.add(conv_layer)
self.keras_model.add(keras.layers.convolutional.MaxPooling2D(
pool_size=(4,4), strides=(2,2),
dim_ordering='tf'))
self.keras_model.add(keras.layers.convolutional.AveragePooling2D(
pool_size=(4,4), strides=(2,2),
dim_ordering='tf'))
self.keras_model.add(keras.layers.core.Flatten())
self.keras_model.add(keras.layers.core.Dense(output_dim=1))
self.keras_model.add(keras.layers.core.Activation("sigmoid"))
self.keras_model.compile(loss="mse", optimizer="sgd")
if (self.keras_version <= 0.3):
self.keras_output_fprop_func = compile_func(
[self.keras_model.layers[0].input],
self.keras_model.layers[-1].get_output(False))
grad = theano.grad(theano.tensor.sum(
self.keras_model.layers[-2].get_output(False)[:,0]),
self.keras_model.layers[0].input)
self.grad_func = theano.function(
[self.keras_model.layers[0].input],
grad, allow_input_downcast=True,
on_unused_input='ignore')
else:
keras_output_fprop_func = compile_func(
[self.keras_model.layers[0].input,
keras.backend.learning_phase()],
self.keras_model.layers[-1].output)
self.keras_output_fprop_func =\
lambda x: keras_output_fprop_func(x,False)
grad = theano.grad(theano.tensor.sum(
self.keras_model.layers[-2].output[:,0]),
self.keras_model.layers[0].input)
grad_func = theano.function(
[self.keras_model.layers[0].input,
keras.backend.learning_phase()],
grad, allow_input_downcast=True,
on_unused_input='ignore')
self.grad_func = lambda x: grad_func(x, False)
test_conv2d_model_tensorflow_ordering.py 文件源码
python
阅读 27
收藏 0
点赞 0
评论 0
评论列表
文章目录