autodl-projects/notebooks/TOT/synthetic-data.ipynb
2021-04-22 23:08:43 +08:00

113 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 SinGenerator"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "consistent-transition",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SinGenerator(100/100 elements,\n",
"amplitude=QuadraticFunc(y = -12.000019073486328 * x^2 + 11.999970436096191 * x + 0.9999865293502808),\n",
"period_phase_shift=QuarticFunc(y = 7.079958915710449 * x^4 + -13.879528999328613 * x^3 + -17.825382232666016 * x^2 + 53.32909393310547 * x + 53.32909393310547))\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",
" dataset = SinGenerator()\n",
" print(dataset)\n",
" xaxis, yaxis = [], []\n",
" for idx, position, value in dataset:\n",
" xaxis.append(position)\n",
" # yaxis.append(dataset._amplitude_scale[position])\n",
" yaxis.append(value)\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
}