利用pytorch能够很好地进行私人定制的深度学习,然而torch中的张量总是感觉充满神秘色彩,导致很多时候要进行很久的deBUG。具有numpy和sklearn特色的skorch应运而生。本文浅尝辄止,仅给出一个实际案例和代码。**
import skorchfrom skorch import NeuralNetRegressorfrom sklearn.model_selection import RandomizedSearchCVimport torch.nn as nnimport torch.optim as optimimport torch.nn.functional as Fclass MyModule(nn.Module): def __init__(self,num_units=10,nonlin=F.relu,drop=.5): super(MyModule,self).__init__() self.module = nn.Sequential( nn.linear(7,num_units), nn.LeakyReLU(), nn.Dropout(p=drop), nn.linear(num_units,1), ) def forward(self,X): X = self.module(X) return X sknet = NeuralNetRegressor( MyModule, criterion=nn.MSELoss, max_epochs=10, optimizer=optim.Adam, optimizer__lr = .005)lr = (10**np.random.uniform(-5,-2.5,1000)).toList()params = { 'optimizer__lr': lr, 'max_epochs':[300,400,500], 'module__num_units': [14,20,28,36,42], 'module__drop' : [0,.1,.2,.3,.4]}gs = RandomizedSearchCV(net,params,refit=True,cv=3,scoring='neg_mean_squared_error',n_iter=100)
总结 以上是内存溢出为你收集整理的【Python】利用skorch进行深度学习全部内容,希望文章能够帮你解决【Python】利用skorch进行深度学习所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)