=========
Tutorials
=========
.. _tutorials:

The following are examples and notebooks on how to use skorch.

* `Basic Usage <https://nbviewer.jupyter.org/github/skorch-dev/skorch/blob/master/notebooks/Basic_Usage.ipynb>`_ - Explores the basics of the skorch API. `Run in Google Colab 💻 <https://colab.research.google.com/github/skorch-dev/skorch/blob/master/notebooks/Basic_Usage.ipynb>`_

* `MNIST with scikit-learn and skorch <https://github.com/skorch-dev/skorch/blob/master/notebooks/MNIST.ipynb>`_ - Define and train a simple neural network with PyTorch and use it with skorch. `Run in Google Colab 💻 <https://colab.research.google.com/github/skorch-dev/skorch/blob/master/notebooks/MNIST.ipynb>`_

* `Benchmarks skorch vs pure PyTorch <https://github.com/skorch-dev/skorch/blob/master/examples/benchmarks/mnist.py>`_ - Compares the performance of skorch and using pure PyTorch on MNIST.

* `Transfer Learning with skorch <https://github.com/skorch-dev/skorch/blob/master/notebooks/Transfer_Learning.ipynb>`_ - Train a neural network using transfer learning with skorch. `Run in Google Colab 💻 <https://colab.research.google.com/github/skorch-dev/skorch/blob/master/notebooks/Transfer_Learning.ipynb>`_

* `Image Segmentation with UNets <https://github.com/skorch-dev/skorch/blob/master/examples/nuclei_image_segmentation>`_ - Use transfer learning to train a UNet model for image segmentation.

* `Using skorch with Dask <https://github.com/skorch-dev/skorch/tree/master/examples/rnn_classifer>`_ - Using Dask to parallelize grid search across GPUs.

* `World level language modeling RNN <https://github.com/skorch-dev/skorch/tree/master/examples/word_language_model>`_ - Uses skorch to train a language model.

* `Seq2Seq Translation using skorch <https://github.com/skorch-dev/skorch/tree/master/examples/translation>`_ - Translation with a seqeuence to sequence network.

* `Advanced Usage <https://nbviewer.jupyter.org/github/skorch-dev/skorch/blob/master/notebooks/Advanced_Usage.ipynb>`_ - Dives deep into the inner works of skorch. `Run in Google Colab 💻 <https://colab.research.google.com/github/skorch-dev/skorch/blob/master/notebooks/Advanced_Usage.ipynb>`_

* `Gaussian Processes <https://nbviewer.jupyter.org/github/skorch-dev/skorch/blob/master/notebooks/Gaussian_Processes.ipynb>`_ - Train Gaussian Processes with the help of GPyTorch. `Run in Google Colab 💻 <https://colab.research.google.com/github/skorch-dev/skorch/blob/master/notebooks/Gaussian_Processes.ipynb>`_

* `Hugging Face Finetunging <https://nbviewer.jupyter.org/github/skorch-dev/skorch/blob/master/notebooks/Hugging_Face_Finetuning.ipynb>`_ - Fine-tune a BERT model for text classification with the Hugging Face transformers library and skorch. `Run in Google Colab 💻 <https://colab.research.google.com/github/skorch-dev/skorch/blob/master/notebooks/Hugging_Face_Finetuning.ipynb>`_

* `Hugging Face Vision Transformer <https://nbviewer.org/github/skorch-dev/skorch/blob/master/notebooks/Hugging_Face_VisionTransformer.ipynb>`_ - Show how to fine-tune a vision transformer model for a classification task using the Hugging Face transformers library and skorch. `Run in Google Colab 💻 <https://colab.research.google.com/github/skorch-dev/skorch/blob/master/notebooks/Hugging_Face_VisionTransformer.ipynb>`_

* `SkorchDoctor <https://nbviewer.org/github/skorch-dev/skorch/blob/master/notebooks/Skorch_Doctor.ipynb>`_ - Diagnosing problems in training your neural net `Run in Google Colab 💻 <https://colab.research.google.com/github/skorch-dev/skorch/blob/master/notebooks/Skorch_Doctor.ipynb>`_

* `Classifying with LLMs <https://nbviewer.org/github/skorch-dev/skorch/blob/master/notebooks/LLM_Classifier.ipynb>`_ - Using (Large) Language Models as zero-shot and few-shot classifiers `Run in Google Colab 💻 <https://colab.research.google.com/github/skorch-dev/skorch/blob/master/notebooks/LLM_Classifier.ipynb>`_
