return -TT.mean(TT.log(P[idx, idy])) # define prediction function def pred(pi, X): ''' compute predictions ''' w = pi['w'].value b = pi['b'].value P = TT.nnet.softmax( T.dot(X, w) + b ) return TT.argmax(P, 1) # debug your theano code (optional) TS.debug(pred, [p0, X]) TS.debug(loss, [p0, X, y]) # compile your functions pred_T = TS.compile(pred, [p0, X], jac=False) loss_T, grad_T = TS.compile(loss, [p0, X, y], jac=True) # # exection of comiled funtion (optional) TS.exe(pred_T, [p0, X]) TS.exe(loss_T, [p0, X, y]) # define your own callback function (optional) def callback(pi):