如何调整神经网络参数并交叉验证NN的性能[烤宽面条]?

时间:2016-04-11 12:01:12

标签: python neural-network lasagne

有没有办法以编程方式调整神经网络(NN)参数(例如scikitlearn中的Gridsearch),或者我必须在实验室中调整它们(一次更换一个)?我知道有不同的经验法则可以选择NN的参数,例如隐藏层的大小介于输入层大小和输出层大小等之间。

另外,如何在Lasagne中进行交叉验证以衡量NN的表现?任何资源的任何链接都会有所帮助。

下面是我的纳米网络实现NN(输入数量= 6,输出数量= 1);

X=pd.read_csv('....\Full_Data.csv')
Y = X.pop("Eeg")
X, Y = shuffle(X, Y, random_state=13)
X = X.round(2)
Y = Y.round(2)
X_min= np.min(X)
X_max = np.max(X)
Y_min = np.min(Y)
Y_max = np.max(Y)
X = (X - X_min) / (X_max - X_min)
Y = (Y - Y_min) / (Y_max - Y_min)
X_train, X_test, y_train, y_test = train_test_split(X,Y,test_size=0.3,random_state=10)
X_train = np.array(X_train)
y_train = np.array(y_train)
X_test = np.array(X_test)
y_test = np.array(y_test)
import lasagne
net1= NeuralNet(
    layers=[
        ('input',layers.InputLayer),
        ('hidden',layers.DenseLayer),
        #('hidden2',layers.DenseLayer),
        ('output',layers.DenseLayer),],
        input_shape=(None,6),
        hidden_num_units=17,
        #hidden2_num_units=100,
        output_nonlinearity=lasagne.nonlinearities.tanh,
        output_num_units = 1,
        update=nesterov_momentum,
        update_learning_rate=0.01,
        update_momentum=0.9,
        regression=True,
        max_epochs=1000,
        verbose=1,)
net1.fit(X_train, y_train)

0 个答案:

没有答案