{ "cells": [ { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor([[ 31],\n", " [ 35],\n", " [326],\n", " [247],\n", " [122],\n", " [220],\n", " [105],\n", " [ 90],\n", " [395],\n", " [ 45],\n", " [142],\n", " [233],\n", " [121],\n", " [205],\n", " [393],\n", " [255],\n", " [416],\n", " [296],\n", " [150],\n", " [478],\n", " [499],\n", " [191],\n", " [ 76],\n", " [152],\n", " [476],\n", " [283],\n", " [496],\n", " [247],\n", " [275],\n", " [480],\n", " [482],\n", " [161],\n", " [ 69],\n", " [433],\n", " [114],\n", " [226],\n", " [458],\n", " [453],\n", " [ 90],\n", " [425],\n", " [456],\n", " [107],\n", " [365],\n", " [484],\n", " [ 29],\n", " [365],\n", " [474],\n", " [310],\n", " [ 32],\n", " [181],\n", " [ 48],\n", " [425],\n", " [129],\n", " [464],\n", " [319],\n", " [138],\n", " [499],\n", " [340],\n", " [367],\n", " [ 20],\n", " [423],\n", " [467],\n", " [115],\n", " [336],\n", " [ 86],\n", " [426],\n", " [339],\n", " [364],\n", " [198],\n", " [119],\n", " [447],\n", " [453],\n", " [219],\n", " [444],\n", " [165],\n", " [372],\n", " [ 14],\n", " [438],\n", " [369],\n", " [ 60],\n", " [333],\n", " [133],\n", " [216],\n", " [ 32],\n", " [288],\n", " [298],\n", " [ 95],\n", " [374],\n", " [356],\n", " [240],\n", " [344],\n", " [ 6],\n", " [ 33],\n", " [424],\n", " [188],\n", " [437],\n", " [287],\n", " [331],\n", " [266],\n", " [ 11]])" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import torch\n", "\n", "t = torch.randint(0, 500, (100,1))\n", "t" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor([ 1.1052, 1.2214, 2.4596, 1.0000, 2.7183, 7.3891, 20.0855])" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "torch.exp(torch.Tensor([0.1,0.2,0.9,0,1,2,3]))" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import math\n", "math.exp(0)-1" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor([[1.],\n", " [1.],\n", " [3.],\n", " [2.],\n", " [1.],\n", " [2.],\n", " [1.],\n", " [1.],\n", " [3.],\n", " [1.],\n", " [1.],\n", " [2.],\n", " [1.],\n", " [2.],\n", " [3.],\n", " [2.],\n", " [3.],\n", " [2.],\n", " [1.],\n", " [4.],\n", " [4.],\n", " [2.],\n", " [1.],\n", " [1.],\n", " [4.],\n", " [2.],\n", " [4.],\n", " [2.],\n", " [2.],\n", " [4.],\n", " [4.],\n", " [1.],\n", " [1.],\n", " [4.],\n", " [1.],\n", " [2.],\n", " [4.],\n", " [4.],\n", " [1.],\n", " [3.],\n", " [4.],\n", " [1.],\n", " [3.],\n", " [4.],\n", " [1.],\n", " [3.],\n", " [4.],\n", " [2.],\n", " [1.],\n", " [2.],\n", " [1.],\n", " [3.],\n", " [1.],\n", " [4.],\n", " [3.],\n", " [1.],\n", " [4.],\n", " [3.],\n", " [3.],\n", " [1.],\n", " [3.],\n", " [4.],\n", " [1.],\n", " [3.],\n", " [1.],\n", " [3.],\n", " [3.],\n", " [3.],\n", " [2.],\n", " [1.],\n", " [4.],\n", " [4.],\n", " [2.],\n", " [4.],\n", " [1.],\n", " [3.],\n", " [1.],\n", " [4.],\n", " [3.],\n", " [1.],\n", " [3.],\n", " [1.],\n", " [2.],\n", " [1.],\n", " [2.],\n", " [2.],\n", " [1.],\n", " [3.],\n", " [3.],\n", " [2.],\n", " [3.],\n", " [1.],\n", " [1.],\n", " [3.],\n", " [2.],\n", " [4.],\n", " [2.],\n", " [3.],\n", " [2.],\n", " [1.]])" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(((t - t.min()) / (t.max() - t.min()) ).exp2() - 1) / 2.7183 * 10 // 1 + 1\n" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor([[1.],\n", " [1.],\n", " [3.],\n", " [2.],\n", " [1.],\n", " [2.],\n", " [1.],\n", " [1.],\n", " [3.],\n", " [1.],\n", " [1.],\n", " [2.],\n", " [1.],\n", " [2.],\n", " [3.],\n", " [2.],\n", " [3.],\n", " [2.],\n", " [1.],\n", " [4.],\n", " [4.],\n", " [2.],\n", " [1.],\n", " [1.],\n", " [4.],\n", " [2.],\n", " [4.],\n", " [2.],\n", " [2.],\n", " [4.],\n", " [4.],\n", " [1.],\n", " [1.],\n", " [4.],\n", " [1.],\n", " [2.],\n", " [4.],\n", " [4.],\n", " [1.],\n", " [3.],\n", " [4.],\n", " [1.],\n", " [3.],\n", " [4.],\n", " [1.],\n", " [3.],\n", " [4.],\n", " [2.],\n", " [1.],\n", " [2.],\n", " [1.],\n", " [3.],\n", " [1.],\n", " [4.],\n", " [3.],\n", " [1.],\n", " [4.],\n", " [3.],\n", " [3.],\n", " [1.],\n", " [3.],\n", " [4.],\n", " [1.],\n", " [3.],\n", " [1.],\n", " [3.],\n", " [3.],\n", " [3.],\n", " [2.],\n", " [1.],\n", " [4.],\n", " [4.],\n", " [2.],\n", " [4.],\n", " [1.],\n", " [3.],\n", " [1.],\n", " [4.],\n", " [3.],\n", " [1.],\n", " [3.],\n", " [1.],\n", " [2.],\n", " [1.],\n", " [2.],\n", " [2.],\n", " [1.],\n", " [3.],\n", " [3.],\n", " [2.],\n", " [3.],\n", " [1.],\n", " [1.],\n", " [3.],\n", " [2.],\n", " [4.],\n", " [2.],\n", " [3.],\n", " [2.],\n", " [1.]])" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "( (5 ** ((t - 0) / 1000))) * 15 // 5 - 2" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# (t.max() - t.min())\n", "\n", "# sacle the t to [1, 30]\n", "import matplotlib.pyplot as plt\n", "((t - t.min()) / (t.max() - t.min()) - 1).exp() / 2.7183 * 30 // 1 + 1\n", "\n", "plt.scatter(t, ( (5 ** ((t - 0) / 500))) * 15 // 5 - 2)\n", "plt.ylim(0, 15)\n", "plt.grid()\n" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import torch\n", "plt.figure(figsize=(5, 3))\n", "t = torch.arange(0, 1000)\n", "timesteps = t.float()\n", "weight_scale = torch.exp(-5 * (timesteps / 500)) # normalized progress\n", "plt.arrow(900, 0.8, -800, 0, head_width=0.05, head_length=50, fc='k', ec='k')\n", "plt.text(780, 0.85, 'From Noisy to Final Time Series', fontsize=10)\n", "plt.plot(timesteps, weight_scale, linewidth=2)\n", "\n", "plt.xlim(1000, 0)\n", "plt.xlabel('Timestep')\n", "plt.ylabel('Weight Scale')\n", "plt.title('Weight Scale vs Timestep')\n", "plt.grid(True)\n", "plt.savefig('weight_scale.pdf', format='pdf', bbox_inches='tight')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "rag", "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.14" } }, "nbformat": 4, "nbformat_minor": 2 }