--- title: "Installation" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Installation} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ## PyTorch installation ### Installing Python and PyTorch Although, *Python* and *PyTorch* can be installed directly from the *R* console, before start running `rTorch`, I would recommend testing **PyTorch** first in a new Python or Anaconda environment. Check if PyTorch and Torchvision packages are imported alright. The advantage of doing it this way is that you could have already in advance a PyTorch version that you are sure is working alright. If you prefer to install PyTorch and its dependencies, that can be done from **rTorch** through one its functions `install_pytorch()`. ### rTorch functions to install PyTorch #### install_pytorch This function is public and can be invoked with `rTorch::install_pytorch()`. This function will allow you to indicate (i) the Python version; (ii) the PyTorch version; (iii) the name of the conda environment; (iv) which channel (`stable` or `nightly`); (v) if you require CUDA (GPU) computation; (vi) additional packages such as `matplotlib`, `pandas`; (vii) more. install_pytorch( method = c("conda", "virtualenv", "auto"), conda = "auto", version = "default", envname = "r-torch", extra_packages = NULL, restart_session = TRUE, conda_python_version = "3.6", pip = FALSE, channel = "stable", cuda_version = NULL, dry_run = FALSE, ... ) ## Manual installation of *PyTorch* in a *conda* environment If you prefer do it manually, use this example: 1. Create a conda environment with `conda create -n my-torch python=3.7 -y` 2. Activate the new environment with `conda activate my-torch` 3. Inside the new environment, install *PyTorch* and related packages with: `conda install python=3.6 pytorch torchvision matplotlib pandas -c pytorch` > Note: If you you don't specify a version, `conda` will install the latest *PyTorch*. As of this writing (August-September 2020), the latest *PyTorch* version is 1.6. Alternatively, you could create and install a *conda* environment a specific **PyTorch** version with: `conda create -n my-torch python=3.6 pytorch=1.3 torchvision matplotlib pandas -c pytorch -y` `conda` will resolve the dependencies and versions of the other packages automatically, or let you know your options. **Note.** `matplotlib` and `pandas` are not really necessary, but I was asked if `matplotlib` or `pandas` would work in PyTorch. Then, I decided to put them for testing and experimentation. They both work. ## Automatic Python detection In **rTorch** there is an automatic detection of *Python* built in in the package that will ask you to install `Miniconda` first if you don't have any Python installed in your machine. For instance, in `macOS`, Miniconda will be installed under `PREFIX=/Users/user_name/Library/r-miniconda`. After *Miniconda* is installed, you could proceed to install the flavor or *PyTorch* you want, and the packages you want, with a command like this: rTorch:::install_conda(package="pytorch=1.4", envname="r-torch", conda="auto", conda_python_version = "3.6", pip=FALSE, channel="pytorch", extra_packages=c("torchvision", "cpuonly", "matplotlib", "pandas")) The command above will install the **stable** **PyTorch 1.4** version on **Python 3.6**, including three additional packages: `torchvision`, `cpuonly`, `matplotlib` and `pandas.` > NOTE. My experience with `Miniconda` is spotty and not 100% reliable, specially in *macOS*. I would strongly recommend using full *conda* for your PyTorch installation.