{"library":"skorch","title":"skorch","description":"A scikit-learn compatible neural network library that wraps PyTorch models, enabling easy integration with scikit-learn's API, including cross-validation, GridSearchCV, and pipelines. Current version is 1.3.1, released roughly every few months.","language":"python","status":"active","last_verified":"Fri May 01","install":{"commands":["pip install skorch"],"cli":null},"imports":["from skorch import NeuralNetClassifier","from skorch import NeuralNetRegressor","from skorch import NeuralNet"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import torch\nimport torch.nn as nn\nimport numpy as np\nfrom sklearn.datasets import make_classification\nfrom sklearn.model_selection import cross_val_score\nfrom skorch import NeuralNetClassifier\n\nclass MyModule(nn.Module):\n    def __init__(self, num_units=10):\n        super().__init__()\n        self.dense0 = nn.Linear(20, num_units)\n        self.nonlin = nn.ReLU()\n        self.dropout = nn.Dropout(0.5)\n        self.dense1 = nn.Linear(num_units, 2)\n        self.softmax = nn.Softmax(dim=-1)\n\n    def forward(self, X, **kwargs):\n        X = self.nonlin(self.dense0(X))\n        X = self.dropout(X)\n        X = self.softmax(self.dense1(X))\n        return X\n\nX, y = make_classification(1000, 20, n_informative=10, random_state=0)\nX = X.astype(np.float32)\ny = y.astype(np.int64)\n\nnet = NeuralNetClassifier(\n    MyModule,\n    max_epochs=10,\n    lr=0.1,\n    device='cpu',\n    iterator_train__shuffle=True,\n)\nn_scores = cross_val_score(net, X, y, cv=3, scoring='accuracy')\nprint(f\"Cross-validation accuracy: {n_scores.mean():.3f} ± {n_scores.std():.3f}\")","lang":"python","description":"Quickstart: define a PyTorch module, wrap it with NeuralNetClassifier, and use cross_val_score from scikit-learn.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}