标签:__ nn Python self lr skorch 深度 import
【Python】利用skorch进行深度学习
利用pytorch能够很好地进行私人定制的深度学习,然而torch中的张量总是感觉充满神秘色彩,导致很多时候要进行很久的debug。具有numpy和sklearn特色的skorch应运而生。本文浅尝辄止,仅给出一个实际案例和代码。**
import skorch
from skorch import NeuralNetRegressor
from sklearn.model_selection import RandomizedSearchCV
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
class 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)
标签:__,nn,Python,self,lr,skorch,深度,import 来源: https://blog.csdn.net/GODSuner/article/details/116736449
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。