Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

Raw File Download
Permalink

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
content badge Iframe embedding
swh:1:cnt:2c045465c68e670a76093499a2a9a198b63a043b
Citations

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Introduction\n",
    "\n",
    "Welcome to *tntorch*! This notebook illustrates a few basic tensor manipulation and optimization use cases."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### First Example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "torch.set_default_dtype(torch.float64)\n",
    "import tntorch as tn"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's create a 2D random tensor of size $128 \\times 128$ and tensor train rank 10 (equivalent to a rank-10 matrix). The `requires_grad` flag tells PyTorch that this tensor should be optimizable:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2D TT tensor:\n",
       "\n",
       " 128 128\n",
       "  |   |\n",
       " (0) (1)\n",
       " / \\ / \\\n",
       "1   10  1"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t = tn.randn(128, 128, ranks_tt=10, requires_grad=True)\n",
    "t"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The spatial dimensions are shown above, the TT ranks are below, and the cores are listed as `(0)` and `(1)` in the middle.\n",
    "\n",
    "In many ways, compressed tensors can be treated as if they were normal, uncompressed tensors:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor(0.0153, grad_fn=<DivBackward1>)\n",
      "tensor(10.3761, grad_fn=<DivBackward1>)\n",
      "tensor(412.3184, grad_fn=<SqrtBackward>)\n",
      "tensor(824.6368, grad_fn=<SqrtBackward>)\n",
      "tensor(824.6368, grad_fn=<SqrtBackward>)\n"
     ]
    }
   ],
   "source": [
    "print(tn.mean(t))\n",
    "print(tn.var(t))\n",
    "print(tn.norm(t))\n",
    "print(tn.norm(t+t))\n",
    "print(tn.norm(2*t))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To decompress a tensor into a `torch.Tensor`, we can use the function `torch()`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([128, 128])\n"
     ]
    }
   ],
   "source": [
    "print(t.torch().shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The function `numpy()` returns the same, just as a NumPy tensor. Let's use it to visualize the contents of our random tensor in *matplotlib*:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.imshow(t.numpy(), cmap='gray')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To optimize tensors we can use *tntorch*'s helper function `optimize()`. \n",
    "\n",
    "Now, we will make our tensor zero over the top left quadrant by minimizing its norm:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "iter: 0     | loss: 216.324445 | total time:    0.0011\n",
      "iter: 500   | loss:  93.631189 | total time:    0.4329\n",
      "iter: 1000  | loss:  19.823667 | total time:    0.9703\n",
      "iter: 1322  | loss:   0.082656 | total time:    1.2697 <- converged (tol=0.0001)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def loss(t):\n",
    "    return tn.norm(t[:64, :64])\n",
    "\n",
    "tn.optimize(t, loss)\n",
    "plt.imshow(t.numpy(), cmap='gray')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Second Example"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, we will fit our tensor to be a rank-10 approximation of a grayscale image:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAACVCAYAAABIDAHAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAHCFJREFUeJzt3XuUlWX99/H3l3PgKQXMAycVJY+oI2riIcAnpV9imYWaaY+GrbRkPWo/eVqSli21X5mmLV1kKiBPiopEaqmRSumSZBAcFZGTyklA00QIGZjr+WPv730P48zse88+335ea7H2zGbvub/72ve+9ve67utgIQRERKT2dap0ACIiUhyq0EVEUkIVuohISqhCFxFJCVXoIiIpoQpdRCQlVKGLiKREQRW6mZ1mZovNbKmZXV2soEREJH/W0YlFZtYZeAM4FVgFvAicE0J4rXjhiYhIUl0KeO4wYGkIYTmAmd0PjAHarNB79+4dBg4cWMAhRUQ+ferr698NIfTJ9bhCKvR9gJXNfl8FHNvyQWY2DhgH0L9/f+bNm1fAIUVEPn3M7K0kjyukD91aue8T/TchhEkhhLoQQl2fPjm/YEREpIMKqdBXAf2a/b4vsKawcEREpKMKqdBfBAab2SAz6waMBWYVJywREclXh/vQQwjbzOwy4AmgM3B3COHVokUmIiJ5KeSiKCGEx4HHixSLiIgUQDNFRURSQhW6iEhKqEIXEUkJVegiIimhCl1EJCVUoYuIpIQqdBGRlFCFLiKSEqrQRURSQhW6iEhKqEIXEUkJVegiIimhCl1EJCUKWm1RRKSUGhsbAfj3v/+d+Dm9evUC4DOf+UxJYqpmytBFRFJCGbqIVK0nnngCgJ///OcAfPTRR20+tnPnzgCMHz8egAsvvLC0wVUhZegiIimhDF1EqpZn5K++mtndcuPGjW0+1jP09957r/SBVSll6CIiKZGqDH3z5s3MnDkTgC1btuR8/MCBAwE4+eSTgfgb/tMuhMD8+fMBWLhwYc7Hd+mSOY1GjRoFwN5771264ESkTamq0NesWcPVV18NwMqVK3M+fuzYsQAcc8wxAOy8886lC66GhBB45JFHgPhiVHv22GMPAKZNmwaoQhepFHW5iIikhCp0EZGUUIUuIpISqtBFRFJCFbqISEqoQhcRSYmcFbqZ9TOzp81skZm9amaXZ+/f3cyeMrMl2dvPlj5cERFpS5IMfRtwRQjh88BxwKVmdjBwNTA7hDAYmJ39XUREKiRnhR5CWBtCmJ/9eSOwCNgHGANMzj5sMnBmqYIUEZHc8popamYDgSOBucCeIYS1kKn0zaxvG88ZB4wD6N+/fyGxVpUQAhAvBOS/t6dbt24A7LLLLpjZDv+3bds2ADZs2ADAsmXL+Ne//gXA1q1bAejRowcAu+22GwD7778/AL1796Zr164dfzE1wst4+/btbNq0CYC3334biN8HX8zp448/BqB79+7RDGCf0ernYc+ePYHMkg8t349iaGxsjDZoSKJ79+5RPM35696yZQtvvvkmQHTrr/P4448HYM899+xQrE1NTUB8rr377rtAPON648aNUdl6fDvttBOQOf8ABgwYEN3ny0FUkxBCtCSIv6633noLgA8//BCIX9vOO+9Mv379ANh3332BeMOMUpwrxZK41M1sJ+BhYHwI4cOkLyqEMAmYBFBXV5e71kvA34x//vOffgwg8+H2ijGJVatWATBjxgwg3unEHXbYYQAcdNBBbcZw+eWXA7B06dKcx/vSl74EwDXXXBNVMq+//joAU6dOBeCvf/0rACtWrIh2adm+fTsQfyH4h8bXojnppJM455xzADjqqKOAZOvS+N999tlnAaIvkBACr732Ws7nOy/zZ555Bvjking9evTgtNNOA/L7oPv7+p///AeAF154AciUkb/3ixcvBuKK3B/rFVP37t2jL0Iv8yFDhgBQV1cHwMiRI6MKsZgf2qlTp3LHHXfkfNxnP5u5/DRhwgQAvvjFLwJxJTt37lwApkyZwlNPPQXA6tWrgfhL/p577gHgzDOTN5Sbmpp45513APjLX/4CxOfCggULgMxyGpBZJ8krw06dMg17L6tddtkFgAMOOIAvfOELAHzta18D4IgjjgCoaMLhX6qzZ89m+vTpAPz9738HYO3atUB83vj73qNHDz73uc8B8ZflmDFjAPjyl78MVOeOSIlGuZhZVzKV+bQQwozs3evMbK/s/+8FrC9NiCIikkTOdMkyX1m/BxaFEG5u9l+zgAuAG7O3fyxJhK3429/+BsD3v/99IJM9dMQ//vGPHW6dZyA33ngjAFdddVWbf6OhoQHIdJHkcsABBwCZjNYzhdtuuw2A559/PufzvXntt97NUF9fH+3s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s7wmRKxcuRKIr+wrU4jls1CUL9fqo1CSTE7x//Ms8uijjwbg6aefznm8Dz74gGuvvRaI9yb9+te/DsR7YnoWvW3bNt544w0AHnzwQQBuv/12IFlrwPlO8scdd1zi51RKyz1TvS/9tddey/nc5557DoCJEycC8L3vfQ+AESNG0KtXrx0e6zs3PfDAAwDcfPPNUas3l759+zJq1Cig+IuufZrl/NSGECaEEPYNIQwExgJ/CyGcBzwNfD37sAuAP5YsShERyamQzsD/Bu43s+uBl4DfFyekjuvatWteE1VefvllACZMmAAQ9ct6f+yJJ54IwMknn1zMMKuemUXlmGTjB++b9REOnrn17t0byPTpnnfeeQCfGCHiY6YvvPBCABYsWBBtT9ce39n+uuuuA+C+++4DMvuDAlE2+dFHH0UjOJYvXw7kt+2d7wPr8XVkJ/lKOeSQQwD4yle+AiTL0P199nHk8+bNA+Dwww+PXru/3ytWrADiz1E+11BGjhxZE62dWpNXhR5CeAZ4JvvzcmBY8UPquJ49e0aTFRYvXpzz8X4x1C8aPfroo0BcoV9//fXAp7NCHzhwIBDPGNy0aVPO5/lsw1tvvRWIu22GDBnCmWdmBkG1rND9C8P/v76+nttuuw1INgzSK2d/v5O870n4OeAV+ZgxY3aItxZ4V8a5554LwAsvvADEQxOT8Otes2fPLkpMhx56KJC5mK0uzuLTWi4iIilR3eOv8rT77rszYsQIIM4okq5zDXG2pwlHcffTkCFDAPIajubl57dJujh8qN0VV1wRTfy59957gfK+D56Zf/e73wVg/PjxQG2vbeJDEK+88kognlg1f/78ssWw//77A3DVVVcBcXemFJcydBGRlEhVht6pUyfOOussAObOnQvAI488UsmQataBBx4IwMUXXwzAmjWZUak+/b5U+vfvz09/+lMgvqg6efJkIL4QWqrjApx//vlAvGBU3759S3bMcvF+/9GjRwNxK+Q3v/kNTzzxBFC6VtDw4cMBuPTSS4F4eKn2MC0NZegiIimRqgwd4r66G264ASAarfHUU08B8WSiTZs2RX27ni34qADfk/HTvGhQy1EevgiWTyLxPvX333//E/tR+qQeL898d/jxZVR98pBnedOnTwdgzpw5UYshn2skLePzrPzUU09l7NixQDxxyM+BNPFRR6eddhqQmXA0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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "iter: 0     | loss: 197.608333 | total time:    0.0005\n",
      "iter: 500   | loss:  29.738809 | total time:    0.6222\n",
      "iter: 1000  | loss:  21.908585 | total time:    1.2766\n",
      "iter: 1500  | loss:   9.171426 | total time:    1.8568\n",
      "iter: 2000  | loss:   4.394665 | total time:    2.4462\n",
      "iter: 2500  | loss:   2.824173 | total time:    3.0283\n",
      "iter: 2688  | loss:   2.709813 | total time:    3.2575 <- converged (tol=0.0001)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "im = torch.DoubleTensor(plt.imread('../../images/text.png'))\n",
    "plt.imshow(im.numpy(), cmap='gray')\n",
    "plt.show()\n",
    "\n",
    "t = tn.rand(im.shape, ranks_tt=10, requires_grad=True)\n",
    "\n",
    "def loss(t):\n",
    "    return tn.dist(t, im)  # Equivalent to torch.norm(t.torch() - im)\n",
    "\n",
    "tn.optimize(t, loss)\n",
    "plt.imshow(t.numpy(), cmap='gray', vmin=im.min(), vmax=im.max())\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For other available tensor formats beyond plain TT, see [this notebook](main_formats.ipynb)."
   ]
  }
 ],
 "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.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}

Software Heritage — Copyright (C) 2015–2025, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Contact— JavaScript license information— Web API

back to top