极简主义代码:
import theano
import theano.tensor as T
import numpy as np
from numpy import dtype
class logistic_regression(object):
# constructor
def __init__(self,input,n_in,n_out):
# initialise parameters
self.W=theano.shared(value=np.zeros((n_in,n_out),dtype=theano.config.floatX),name='W',borrow=True)
self.b=theano.shared(value=np.zeros((n_out,),dtype=theano.config.floatX),name='b',borrow=True)
self.p_y_given_x=self.calculate_probability()
self.neg_log_likelihood=self.calculate_neg_log_likelihood(y)
def calculate_probability(self):
p_y_given_x=T.nnet.softmax(T.dot(input,self.W)+self.b)
return p_y_given_x
def calculate_neg_log_likelihood(self,y):
neg_log_likelihood=T.mean(T.log(self.p_y_given_x)[T.arange(y.shape[0]),y])
return neg_log_likelihood
在行中:
self.neg_log_likelihood=self.calculate_neg_log_likelihood(y)
我在eclipse中遇到错误:
“未定义的变量y”
答案 0 :(得分:0)
嗯,你传递的变量y
,在任何地方都没有定义
Eclipse正在寻找变量y的定义,例如,y=10
,在构造函数的范围内,然后在全局范围内。
由于它找不到它,它会警告你。
您是否打算通过p_y_given_x
变量?