{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Training a network: Flax vs PyTorch" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import flax.linen as jnn\n", "import jax\n", "import jax.numpy as jnp\n", "import jax.random as jr\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import optax\n", "import torch\n", "import torch.nn as nn\n", "import torch.optim as optim\n", "from flax.training import train_state\n", "from jax.flatten_util import ravel_pytree\n", "from sklearn.preprocessing import StandardScaler\n", "from torch.utils.data import DataLoader, TensorDataset\n", "\n", "from pbnn.utils.data import NumpyDataset, NumpyLoader\n", "\n", "%load_ext watermark" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generate data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def test_function(x):\n", " return np.sin(2.0 * x) + np.cos(x)\n", "\n", "\n", "n = 100\n", "noise_level = 0.1\n", "\n", "np.random.seed(0)\n", "X = 20 * np.random.rand(n, 1)\n", "X_test = np.linspace(0, 20, 200)[:, None]\n", "\n", "noise, noise_test = (\n", " np.random.randn(n, 1) * noise_level,\n", " np.random.randn(len(X_test), 1) * noise_level,\n", ")\n", "\n", "y = test_function(X) + noise\n", "y_test = test_function(X_test) + noise_test\n", "\n", "scaler = StandardScaler()\n", "X_ = scaler.fit_transform(X)\n", "X_test_ = scaler.transform(X_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Set some hyperparameters" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "num_epochs = 1000\n", "step_size = 5e-3\n", "batch_size = 32" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Training with Flax" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define network" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "class MLP(jnn.Module):\n", " \"\"\"Simple MLP.\"\"\"\n", "\n", " @jnn.compact\n", " def __call__(self, x):\n", " x = jnn.Dense(features=50)(x)\n", " x = jnn.tanh(x)\n", " x = jnn.Dense(features=50)(x)\n", " x = jnn.tanh(x)\n", " x = jnn.Dense(features=1)(x)\n", " return x\n", "\n", "\n", "network = MLP()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define loss function" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def loss_fn(params, batch):\n", " X, y = batch\n", " pred = network.apply({\"params\": params}, X)\n", " return jnp.mean(optax.l2_loss(y, pred))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Training pipeline" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n" ] } ], "source": [ "@jax.jit\n", "def train_step(state, batch):\n", " grad_fn = jax.grad(loss_fn)\n", " grads = grad_fn(state.params, batch)\n", " state = state.apply_gradients(grads=grads)\n", " return state\n", "\n", "\n", "rng_key = jr.PRNGKey(0)\n", "rng_key, init_rng = jr.split(rng_key)\n", "\n", "init_params = network.init(init_rng, X_)[\"params\"]\n", "tx = optax.adam(step_size)\n", "state = train_state.TrainState.create(apply_fn=network.apply, params=init_params, tx=tx)\n", "\n", "dataset = NumpyDataset(X_, y)\n", "data_loader = NumpyLoader(dataset, batch_size=batch_size, shuffle=True, drop_last=True)\n", "\n", "for epoch in range(num_epochs):\n", " for batch in data_loader:\n", " state = train_step(state, batch)\n", "\n", "pred_flax = network.apply({\"params\": state.params}, X_test_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Training with PyTorch" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get initial parameters\n", "\n", "Using the same initial state as the flax model" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "parameters, _ = ravel_pytree(init_params)\n", "parameters = torch.tensor(np.array(parameters), dtype=torch.float32)\n", "\n", "model = nn.Sequential(\n", " nn.Linear(1, 50), nn.Tanh(), nn.Linear(50, 50), nn.Tanh(), nn.Linear(50, 1)\n", ")\n", "\n", "with torch.no_grad():\n", " pointer = 0\n", " for param in parameters:\n", " num_param = param.numel()\n", " param.copy_(parameters[pointer : pointer + num_param].view(param.size()))\n", " pointer += num_param" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Training pipeline" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "mse_fn = nn.MSELoss()\n", "\n", "train_loader = DataLoader(\n", " dataset=TensorDataset(\n", " torch.tensor(X_, dtype=torch.float32), torch.tensor(y, dtype=torch.float32)\n", " ),\n", " batch_size=batch_size,\n", " shuffle=True,\n", " drop_last=True,\n", ")\n", "\n", "optimizer = optim.Adam(model.parameters(), lr=step_size)\n", "for epoch in range(num_epochs):\n", " for ib, (x_batch, y_batch) in enumerate(train_loader):\n", " optimizer.zero_grad()\n", " pred = model(x_batch)\n", " loss = mse_fn(y_batch, pred)\n", " loss.backward()\n", " optimizer.step()\n", "\n", "with torch.no_grad():\n", " pred_torch = (\n", " model(torch.tensor(X_test_, dtype=torch.float32)).detach().cpu().numpy()\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compare predictions" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, '$y$')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(\n", " X,\n", " y,\n", " ls=\"\",\n", " marker=\"o\",\n", " markerfacecolor=\"b\",\n", " markeredgecolor=\"k\",\n", " markeredgewidth=1,\n", " label=\"Train data\",\n", ")\n", "plt.plot(X_test, pred_flax, color=\"r\", lw=2, label=\"Flax\")\n", "plt.plot(X_test, pred_torch, color=\"b\", lw=2, label=\"PyTorch\")\n", "plt.legend(fontsize=12)\n", "plt.xlabel(r\"$x$\", fontsize=12)\n", "plt.ylabel(r\"$y$\", fontsize=12)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Author: Brian Staber\n", "\n", "Last updated: Sat Mar 16 2024\n", "\n", "Python implementation: CPython\n", "Python version : 3.11.7\n", "IPython version : 8.21.0\n", "\n", "numpy : 1.26.3\n", "jax : 0.4.23\n", "flax : 0.8.0\n", "optax : 0.1.9\n", "matplotlib: 3.8.2\n", "torch : 2.2.1\n", "\n", "Watermark: 2.4.3\n", "\n" ] } ], "source": [ "%reload_ext watermark\n", "%watermark -n -u -v -iv -w -a 'Brian Staber'" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" } }, "nbformat": 4, "nbformat_minor": 2 }