autodl-projects/notebooks/spaces-xmisc/synthetic-data.ipynb
2021-06-11 11:46:18 +08:00

111 lines
54 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "filled-multiple",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The root path: /Users/xuanyidong/Desktop/AutoDL-Projects\n",
"The library path: /Users/xuanyidong/Desktop/AutoDL-Projects/lib\n"
]
}
],
"source": [
"import os, sys\n",
"import torch\n",
"from pathlib import Path\n",
"import numpy as np\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"__file__ = os.path.dirname(os.path.realpath(\"__file__\"))\n",
"root_dir = (Path(__file__).parent / \"..\").resolve()\n",
"lib_dir = (root_dir / \"lib\").resolve()\n",
"print(\"The root path: {:}\".format(root_dir))\n",
"print(\"The library path: {:}\".format(lib_dir))\n",
"assert lib_dir.exists(), \"{:} does not exist\".format(lib_dir)\n",
"if str(lib_dir) not in sys.path:\n",
" sys.path.insert(0, str(lib_dir))\n",
"\n",
"from datasets import ComposedSinFunc"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "consistent-transition",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ComposedSinFunc(QuadraticFunc(-12.00009536743164 * x^2 + 12.000093460083008 * x + 0.9998981952667236) * sin(QuarticFunc(6.998945236206055 * x^4 + -14.143538475036621 * x^3 + -16.54721450805664 * x^2 + 52.29801940917969 * x + 52.29801940917969)))\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def visualize_q_func():\n",
"\n",
" dpi, width, height = 10, 200, 80\n",
" figsize = width / float(dpi), height / float(dpi)\n",
" LabelSize, LegendFontsize, font_gap = 40, 40, 5\n",
" \n",
" fig = plt.figure(figsize=figsize)\n",
" \n",
" func = ComposedSinFunc()\n",
" print(func)\n",
" xaxis, yaxis = [], []\n",
" timestamps = np.arange(0, 1.0, 0.01)\n",
" for idx, position in enumerate(timestamps):\n",
" xaxis.append(position)\n",
" yaxis.append(func(position))\n",
"\n",
" cur_ax = fig.add_subplot(1, 1, 1)\n",
" cur_ax.plot(xaxis, yaxis, color=\"k\", linestyle=\"-\", alpha=0.6, label=None)\n",
"\n",
"visualize_q_func()"
]
}
],
"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.8.8"
}
},
"nbformat": 4,
"nbformat_minor": 5
}