Beispiel #1
0
		# 		sparse.structured_dot(sparse.transpose(layer.output), layer.input) , 
		# 		sparse.structured_dot(
		# 			sparse.structured_dot(
		# 				sparse.transpose(layer.output), 
		# 				layer.output),
		# 			layer.params[0])
		# 		) 
		# 	)  
		# ))
	
	Wrs.append( (layer.params[1],layer.params[1]) )
	states.append( (layer.params[2], layer.output) )
	outs.append( (layer.params[3], sparse.transpose(
											sparse.structured_sigmoid(
												sparse.structured_dot(
													sparse.transpose(layer.input), 
													layer.params[0]
													)
												)
											)
										) )

updates = Wis + Wrs + states + outs


propagate = theano.function(
    [x],
    out,
    updates=updates,
    allow_input_downcast=True,
    mode='ProfileMode'
)
Beispiel #2
0
	def getUpdateParams(self):
		update = []
		aux = []

		# Update state
		update.append( (self.params[0], input_layer.output) )

		# Update output
		print 'Length: ' + str(len(self.connections))
		for i, c in enumerate(self.connections):
			aux.append(sparse.structured_dot(
						sparse.transpose(c.input), 
						self.params[2][i] * c.inhibition
						))
		aux2 = aux.pop()
		for a in range(len(aux)):
			aux2 = sparse.add(aux2,aux.pop())
			print aux2
		from theano import pp
		print 'out: '
		print pp(aux2)
		update.append((self.params[1],sparse.transpose(sparse.structured_sigmoid(aux2))))
		# Hardcoded!!
		'''update.append((self.params[1],
			sparse.transpose(
				sparse.structured_sigmoid(sparse.structured_dot(
						sparse.transpose(self.connections[0].input), 
						self.params[2][0])))))
		'''
		'''
		update.append((self.params[1], 
		  sparse.transpose(
			sparse.structured_sigmoid(
				sparse.structured_dot(
					sparse.transpose(self.connections[0].input), 	# Input
					self.params[2][0]))))) 							# Weights
		'''
		# Update weights
		''' #Old ones (OJA)
		for i, w in enumerate(self.params[2]):
			update.append( (w,  
				#layer.params[0]))
				sparse.add( 
					w, 
					self.LR[i]*sparse.transpose(
						sparse.structured_dot(self.params[1], self.x_yw[i])
						)
					)
				))
		'''
		for i, w in enumerate(self.params[2]):
			update.append( (w, #w))
				#layer.params[0]))
					sparse.structured_maximum(
						sparse.add(
							w,
							sparse.add(self.xy[i], 
							self.AWW[i])),
					0)
				) )

		return update
Beispiel #3
0
		# 		sparse.structured_dot(sparse.transpose(layer.output), layer.input) , 
		# 		sparse.structured_dot(
		# 			sparse.structured_dot(
		# 				sparse.transpose(layer.output), 
		# 				layer.output),
		# 			layer.params[0])
		# 		) 
		# 	)  
		# ))
	
	Wrs.append( (layer.params[1],layer.params[1]) )
	states.append( (layer.params[2], layer.output) )
	outs.append( (layer.params[3], sparse.transpose(
											sparse.structured_sigmoid(
												sparse.structured_dot(
													sparse.transpose(layer.input), 
													layer.params[0]
													)
												)
											)
										) )


#Update inhibitory
Wis.append( (input_layer.params[0], input_layer.params[0]))
Wrs.append( (input_layer.params[1],input_layer.params[1]) )
states.append( (input_layer.params[2], input_layer.output) )
outs.append( (input_layer.params[3], sparse.transpose(
											sparse.structured_sigmoid(
												sparse.add(
													sparse.structured_dot(
														sparse.transpose(input_layer.input),