def get_output(self):
if self.dropout_rate!=0:
seed = np.random.randint(10e6)
rng = RandomStreams(seed=seed)
retain_prob = 1. - self.dropout_rate
self.input *= rng.binomial(self.input.shape, p=retain_prob, dtype=self.input.dtype)
self.input /= retain_prob
conv_out = conv2d(self.input, self.Cnn_W) #(batch size, output channels, output rows, output columns)
conv_out = conv_out + self.Cnn_B.dimshuffle('x', 0, 'x', 'x')
# out_put_shape = self.get_output_shape()
# r_matrix_s = np.eye(out_put_shape[3], out_put_shape[3], 0)
# r_matrix_x = np.eye(out_put_shape[3], out_put_shape[3], -1)
# test = [[r_matrix_s for i in range(self.input_shape[1])] for j in range(self.input_shape[0])]
# print test
# r_matrix_s = theano.shared(np.array(r_matrix_s).astype(np.float32))
#
# r_matrix_x = theano.shared(np.array(r_matrix_x).astype(np.float32))
#
# r_matrix = r_matrix_s*self.Rnn_W_s.dimshuffle(0, 'x', 'x') + \
# r_matrix_x*(1-self.Rnn_W_s).dimshuffle(0, 'x', 'x')
# conv_out = conv_out.dimshuffle(1, 0, 2, 3)
# def step (con, r_m, r_b):
# return T.dot(con, r_m) + r_b
# conv_out, _ = theano.scan(step, sequences=[conv_out, r_matrix, self.Rnn_W_b])
# conv_out = conv_out.dimshuffle(1, 0, 2, 3)
# R_conv_out = T.concatenate([T.zeros_like(conv_out[:, :, :, :1]), conv_out], axis = 3)
# R_conv_out = R_conv_out[:, :, :,:conv_out.shape[3]]
# RNN_Ws = self.Rnn_W_s.dimshuffle('x', 0, 'x', 'x')
# RNN_b = self.Rnn_W_b
# R_conv_out = R_conv_out *RNN_Ws + conv_out * (1-RNN_Ws) + RNN_b
# conv_out = conv_out.dimshuffle(1,0,2,3)
#
# def Rnn_add(channel,RNN_b,RNN_Ws,RNN_Wx):
# RNN_channel = T.concatenate([T.zeros_like(channel[:, :, :1]),channel],axis = 2)
# RNN_channel = RNN_channel[:,:,:channel.shape[2]]
# res = RNN_channel*RNN_Ws + channel*RNN_Wx + RNN_b
# return res
#self.Rnn_W_s = T.abs_(self.Rnn_W_s)
# R_conv_out,_ = theano.scan(Rnn_add,sequences= [conv_out,self.Rnn_W_b,self.Rnn_W_s,1 - self.Rnn_W_s])
# R_conv_out = R_conv_out.dimshuffle(1,0,2,3)
#output = self.activition(R_conv_out)
#return self.input
return self.activition(conv_out)
#return output
评论列表
文章目录