0

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

另外,如何在 Lasagne 中执行交叉验证来衡量 NN 的性能?任何资源的任何链接都会有所帮助。

下面是我对 NN 的 Lasagne 实现(输入数 = 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)
4

0 回答 0