有没有办法以编程方式调整神经网络(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)