{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "rng = torch.quasirandom.SobolEngine(1, scramble=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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6ildfvnliomJUXJysiZPnqwTJ0600mzttHnzZo0cOVJJSUkKCwvTa6+9dt5j3n33XV1zzTVyOBz6wQ9+oJUrV4Z2kgYB1qxZY6Kiosyzzz5r9uzZYyZMmGDi4uJMVVVVo+O3bNliIiIiTGFhodm7d695+OGHTadOnczu3btbeeb2ae5a33nnnWbJkiVm586dZt++feauu+4ysbGx5vPPP2/lmduluet8yoEDB8z3v/99c8MNN5if/OQnrTNZizV3nWtqasygQYPMiBEjzHvvvWcOHDhg3n33XbNr165WnrldmrvOq1evNg6Hw6xevdocOHDAvP322yYxMdFMnjy5lWdul/Xr15uHHnrIvPrqq0aSWbt27TnH79+/33Tu3NlMmTLF7N271yxevNhERESYDRs2hGyOBMxprrvuOpObm+v/+uTJkyYpKckUFBQ0On7MmDEmMzMzYFtaWpq55557QjrPjqC5a326+vp607VrV7Nq1apQTbFDaMk619fXm8GDB5s//vGPJjs7m4Bpguau87Jly8wll1xiamtrW2uKHUJz1zk3N9fcfPPNAdumTJlihgwZEtJ5diRNCZhp06aZfv36BWy74447TEZGRsjmxV8hfUdtba3Ky8uVnp7u3xYeHq709HSVlpY2ekxpaWnAeEnKyMg463h8qyVrfbpvvvlGdXV16t69e6imab2WrvOcOXMUHx+v8ePHt8Y0rdeSdX799dfldruVm5urhIQEXXHFFZo/f75OnjzZWtO2TkvWefDgwSovL/f/NdP+/fu1fv16jRgxolXm/L+iLZ4L2+1v4m0LX331lU6ePHnGb/tNSEjQhx9+2OgxHo+n0fEejydk8+wIWrLWp3vwwQeVlJR0xg8N/r+WrPN7772nZ555Rrt27WqFGXYMLVnn/fv3a+PGjcrKytL69ev1ySef6N5771VdXZ1mzZrVGtO2TkvW+c4779RXX32loUOHyhij+vp6/frXv9b//d//tcaU/2ec7bnQ5/PpP//5j2JiYoJ+n7wCAystWLBAa9as0dq1axUdHd3W0+kwjh49qnHjxmnFihXq2bNnW0+nQ2toaFB8fLyWL1+ugQMH6o477tBDDz2koqKitp5ah/Luu+9q/vz5Wrp0qXbs2KFXX31Vb775pubOndvWU8N/iVdgvqNnz56KiIhQVVVVwPaqqiq5XK5Gj3G5XM0aj2+1ZK1PeeKJJ7RgwQL95S9/0ZVXXhnKaVqvuev8r3/9S59++qlGjhzp39bQ0CBJioyMVEVFhXr37h3aSVuoJY/nxMREderUSREREf5tffv2lcfjUW1traKiokI6Zxu1ZJ1nzJihcePG6Ve/+pUkqX///jp+/LhycnL00EMPKTyc/44PhrM9FzqdzpC8+iLxCkyAqKgoDRw4UCUlJf5tDQ0NKikpkdvtbvQYt9sdMF6SiouLzzoe32rJWktSYWGh5s6dqw0bNmjQoEGtMVWrNXed+/Tpo927d2vXrl3+249//GPddNNN2rVrl5KTk1tz+tZoyeN5yJAh+uSTT/yBKEkfffSREhMTiZezaMk6f/PNN2dEyqloNPyvAIOmTZ4LQ/b2YEutWbPGOBwOs3LlSrN3716Tk5Nj4uLijMfjMcYYM27cODN9+nT/+C1btpjIyEjzxBNPmH379plZs2bxMeomau5aL1iwwERFRZk//elP5t///rf/dvTo0ba6BCs0d51Px6eQmqa563zw4EHTtWtXk5eXZyoqKsy6detMfHy8mTdvXltdghWau86zZs0yXbt2NS+++KLZv3+/eeedd0zv3r3NmDFj2uoSrHD06FGzc+dOs3PnTiPJLFy40OzcudN89tlnxhhjpk+fbsaNG+cff+pj1FOnTjX79u0zS5Ys4WPUbWHx4sWmV69eJioqylx33XXm/fff9++78cYbTXZ2dsD4l19+2Vx22WUmKirK9OvXz7z55putPGN7NWetL7roIiPpjNusWbNaf+KWae5j+rsImKZr7jpv3brVpKWlGYfDYS655BLz6KOPmvr6+laetX2as851dXXmkUceMb179zbR0dEmOTnZ3Hvvvebrr79u/Ylb5K9//Wujf96eWtvs7Gxz4403nnHMgAEDTFRUlLnkkkvMc889F9I5hhnDa2gAAMAuvAcGAABYh4ABAADWIWAAAIB1CBgAAGAdAgYAAFiHgAEAANYhYAAAgHUIGAAAYB0CBgAAWIeAAQAA1iFgAACAdQgYAABgnf8HL/X2dR0OsSUAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "t = rng.draw(1_000_000)\n",
    "plt.hist(t.numpy(), bins=1000)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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fNGoqqoyZsyYYSQkJBh1dXUd1n/nnXeMqKgoY8mSJcaHH35ozJ8/3+jRo4dx8ODBALfcerzt63vuuccoLCw03nvvPaO6utr46U9/asTHxxt/+9vfAtxy6/G2r9sdOnTI+Md//EfjlltuMSZPnhyYxlqct33d1NRkpKamGhMnTjTefvtt49ChQ8abb75pVFZWBrjl1uRtfxcXFxuxsbFGcXGxcejQIWP79u1G//79jdmzZwe45daydetW49FHHzVeffVVQ5KxcePG89b/7LPPjEsuucTIy8szPvzwQ2PlypVGVFSUsW3bNp+3jQDzf2644QYjJyfHfH3q1CnD4XAYBQUFHda/6667jMzMTI9xaWlpxs9+9jO/tjMUeNvXZ2ptbTV69+5trF271l9NDBld6evW1lbjpptuMn77298a06dPJ8B0krd9vWrVKuPyyy83mpubA9XEkOJtf+fk5Bg/+tGPPMbl5eUZN998s1/bGUo6E2AefvhhY/jw4R7j7r77biMjI8Pn7eEtJEnNzc2qqKhQenq6OS4yMlLp6ekqKyvrcJqysjKP+pKUkZFxzvr4Tlf6+kzffvutWlpa1LdvX381MyR0ta8XLVqkxMREZWdnB6KZIaErff3aa6/J6XQqJydHSUlJuuaaa/TUU0/p1KlTgWq2ZXWlv2+66SZVVFSYbzN99tln2rp1qyZOnBiQNoeLQJ4bg/abeAPp66+/1qlTp876lt+kpCR99NFHHU7jcrk6rO9yufzWzlDQlb4+0yOPPCKHw3HWTgJPXenrt99+W7/73e9UWVkZgBaGjq709WeffaZdu3YpKytLW7du1aeffqoHH3xQLS0tWrhwYSCabVld6e977rlHX3/9tUaPHi3DMNTa2qqf//zn+vd///dANDlsnOvc6Ha79fe//109e/b02bK4AwNLWbx4sdavX6+NGzcqLi6uu5sTUo4dO6Zp06bphRde0GWXXdbdzQl5bW1tSkxM1OrVqzVq1CjdfffdevTRR1VUVNTdTQtJb775pp566in95je/0YEDB/Tqq69qy5YteuKJJ7q7aegi7sBIuuyyyxQVFaW6ujqP8XV1dbLb7R1OY7fbvaqP73Slr9stXbpUixcv1p///Gdde+21/mxmSPC2r//617/q888/16RJk8xxbW1tkqTo6GjV1NToiiuu8G+jLaor23X//v3Vo0cPRUVFmeOGDh0ql8ul5uZmxcTE+LXNVtaV/l6wYIGmTZumf/3Xf5UkjRgxQidOnNDMmTP16KOPKjKS63lfONe50Waz+fTui8QdGElSTEyMRo0apZ07d5rj2tratHPnTjmdzg6ncTqdHvUlqaSk5Jz18Z2u9LUkLVmyRE888YS2bdum1NTUQDTV8rzt6yFDhujgwYOqrKw0h9tvv10//OEPVVlZqeTk5EA231K6sl3ffPPN+vTTT82QKEkff/yx+vfvT3i5gK7097fffntWSGkPjwY/CegzAT03+vyxYItav369ERsba6xZs8b48MMPjZkzZxoJCQmGy+UyDMMwpk2bZsydO9es/8477xjR0dHG0qVLjerqamPhwoV8jLqTvO3rxYsXGzExMcZ//dd/Gf/zP/9jDseOHeuuVbAMb/v6THwKqfO87eva2lqjd+/eRm5urlFTU2Ns3rzZSExMNJ588snuWgVL8ba/Fy5caPTu3dv4wx/+YHz22WfGjh07jCuuuMK46667umsVLOHYsWPGe++9Z7z33nuGJGPZsmXGe++9Z3zxxReGYRjG3LlzjWnTppn12z9GPWfOHKO6utooLCzkY9SBsHLlSmPAgAFGTEyMccMNNxjvvvuuWfaDH/zAmD59ukf9P/7xj8ZVV11lxMTEGMOHDze2bNkS4BZblzd9PXDgQEPSWcPChQsD33AL8na7Ph0Bxjve9vWePXuMtLQ0IzY21rj88suNX//610Zra2uAW21d3vR3S0uL8dhjjxlXXHGFERcXZyQnJxsPPvig8c033wS+4RbyxhtvdHj8be/b6dOnGz/4wQ/OmmbkyJFGTEyMcfnllxsvvfSSX9oWYRjcOwMAANbCMzAAAMByCDAAAMByCDAAAMByCDAAAMByCDAAAMByCDAAAMByCDAAAMByCDAAAMByCDAAAMByCDAAAMByCDAAAMByCDAAAMBy/hf1d7epnR3JeAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "t = torch.sigmoid(torch.randn(1_000_000))\n",
    "plt.hist(t.numpy(), bins=1000)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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fwCAUEHIAQCgjbXVzMDnOy5XAQAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjMeMxAADtrKlX5jAL8tljJAcAABiJkAMAAIzE5Sr8IN46DgAIVYzkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjMeMxbMxuDADnjpP/TOaFnc3HSA4AADBSq4ecp556SmFhYZoyZYq97rvvvlNGRoa6deumiy66SKNHj1ZFRUXAfgcPHlRycrIuuOACxcTEaNq0aTp+/HhAzaZNm3TNNdcoMjJSl112mZYtW9bapwMAAEJEq4ac7du36z//8z/1s5/9LGD91KlT9fbbb2v16tV67733dPjwYd1555329hMnTig5OVl1dXXasmWLli9frmXLlik7O9uuKS8vV3JysoYPH67S0lJNmTJF9957r955553WPCUAABAiWi3kHDt2TKmpqXrppZfUpUsXe311dbVeeeUVPffcc/rFL36hQYMG6bXXXtOWLVv04YcfSpI2bNigffv26b//+781cOBA/fKXv9Rjjz2mxYsXq66uTpKUl5en+Ph4Pfvss+rbt68yMzP1q1/9Ss8//3xrnRIAAAghrRZyMjIylJycrMTExID1JSUlqq+vD1jfp08f9ezZU8XFxZKk4uJi9e/fX7GxsXZNUlKS/H6/9u7da9ecfOykpCT7GE2pra2V3+8PWAAAgJla5emqVatWaefOndq+ffsp23w+nxwOh6KjowPWx8bGyufz2TXfDziN2xu3/VCN3+/Xt99+q06dOp3y3Tk5OZo/f36LzwsAAISOoI/kHDp0SA899JBWrFihqKioYB/+rMyaNUvV1dX2cujQofZuEgAAaCVBDzklJSWqrKzUNddco4iICEVEROi9997TokWLFBERodjYWNXV1amqqipgv4qKCrndbkmS2+0+5Wmrxs8/VuN0OpscxZGkyMhIOZ3OgAUAAJgp6CHn5ptv1p49e1RaWmovgwcPVmpqqv3PHTt2VFFRkb1PWVmZDh48KK/XK0nyer3as2ePKisr7ZrCwkI5nU7169fPrvn+MRprGo8BAADOb0G/J6dz58666qqrAtZdeOGF6tatm70+LS1NWVlZ6tq1q5xOpx544AF5vV4NGTJEkjRi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ZTkcDuvPf/6z9dVXX9nL119/3V6nEDKa29cn4+mqM9Pcfj548KDVuXNnKzMz0yorK7PWrl1rxcTEWI8//nh7nUJIaG4/P/LII1bnzp2tP/3pT9Znn31mbdiwwbr00kutu+66q71OISR8/fXX1q5du6xdu3ZZkqznnnvO2rVrl/XFF19YlmVZM2fOtMaPH2/XNz5CPm3aNGv//v3W4sWLeYT8XPXCCy9YPXv2tBwOh3XddddZH374ob3t5z//uTVhwoSA+jfeeMO64oorLIfDYV155ZXWunXr2rjFoak5/dyrVy9L0inLI4880vYND0HN/W/6+wg5Z665/bxlyxYrISHBioyMtC655BLriSeesI4fP97GrQ49zenn+vp6a968edall15qRUVFWXFxcdb9999vHT16tO0bHkLefffdJv/MbezbCRMmWD//+c9P2WfgwIGWw+GwLrnkEuu1115r1TaGWRZjcQAAwDzckwMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkf4/Ndt2f0/I/woAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "t = torch.sigmoid(torch.randn(1_000_000))\n",
    "t = torch.where(torch.rand_like(t) < 0.01, torch.ones_like(t), t)\n",
    "#t = torch.where(torch.rand_like(t) < 0.01, torch.zeros_like(t), t)\n",
    "\n",
    "plt.hist(t.numpy(), bins=100)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "suno_env",
   "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.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
