"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "iJyZUDbzBTIG"
},
"source": [
"This guide provides a quick overview of _TensorFlow basics_. Each section of this doc is an overview of a larger topic—you can find links to full guides at the end of each section.\n",
"\n",
"TensorFlow is an end-to-end platform for machine learning. It supports the following:\n",
"\n",
"* Multidimensional-array based numeric computation (similar to NumPy.)\n",
"* GPU and distributed processing\n",
"* Automatic differentiation\n",
"* Model construction, training, and export\n",
"* And more"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "gvLegMMvBZYg"
},
"source": [
"## Tensors\n",
"\n",
"TensorFlow operates on multidimensional arrays or _tensors_ represented as `tf.Tensor` objects. Here is a two-dimensional tensor:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:28.656331Z",
"iopub.status.busy": "2024-10-03T01:24:28.655826Z",
"iopub.status.idle": "2024-10-03T01:24:33.219072Z",
"shell.execute_reply": "2024-10-03T01:24:33.218124Z"
},
"id": "6ZqX5RnbBS1f"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2024-10-03 01:24:28.897515: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:485] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
"2024-10-03 01:24:28.918497: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:8454] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
"2024-10-03 01:24:28.924727: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1452] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
"I0000 00:00:1727918671.501067 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918671.504962 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918671.508951 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918671.512662 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918671.523975 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS ha"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"tf.Tensor(\n",
"[[1. 2. 3.]\n",
" [4. 5. 6.]], shape=(2, 3), dtype=float32)\n",
"(2, 3)\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918671.527575 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918671.531095 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918671.534452 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918671.537818 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918671.541314 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918671.544748 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918671.548158 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.811574 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.813683 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.815800 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.817784 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.819747 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.822369 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.824361 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.826310 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.828145 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.830199 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.832189 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.834056 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.872509 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.874567 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.876725 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.878642 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.880502 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.882472 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.884483 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"I0000 00:00:1727918672.886365 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.888219 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.891799 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.894304 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
"I0000 00:00:1727918672.896575 10533 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n"
]
}
],
"source": [
"import tensorflow as tf\n",
"\n",
"x = tf.constant([[1., 2., 3.],\n",
" [4., 5., 6.]])\n",
"\n",
"print(x)\n",
"print(x.shape)\n",
"print(x.dtype)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "k-AOMqevQGN4"
},
"source": [
"The most important attributes of a `tf.Tensor` are its `shape` and `dtype`:\n",
"\n",
"* `Tensor.shape`: tells you the size of the tensor along each of its axes.\n",
"* `Tensor.dtype`: tells you the type of all the elements in the tensor."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "bUkKeNWZCIJO"
},
"source": [
"TensorFlow implements standard mathematical operations on tensors, as well as many operations specialized for machine learning.\n",
"\n",
"For example:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.222921Z",
"iopub.status.busy": "2024-10-03T01:24:33.222107Z",
"iopub.status.idle": "2024-10-03T01:24:33.230799Z",
"shell.execute_reply": "2024-10-03T01:24:33.230196Z"
},
"id": "BM7xXNDsBfN5"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x + x"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.232899Z",
"iopub.status.busy": "2024-10-03T01:24:33.232688Z",
"iopub.status.idle": "2024-10-03T01:24:33.240447Z",
"shell.execute_reply": "2024-10-03T01:24:33.239875Z"
},
"id": "ZLGqscTxB61v"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"5 * x"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.242758Z",
"iopub.status.busy": "2024-10-03T01:24:33.242393Z",
"iopub.status.idle": "2024-10-03T01:24:33.343899Z",
"shell.execute_reply": "2024-10-03T01:24:33.343350Z"
},
"id": "2ImJHd8VfnWq"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x @ tf.transpose(x)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.346780Z",
"iopub.status.busy": "2024-10-03T01:24:33.346183Z",
"iopub.status.idle": "2024-10-03T01:24:33.353557Z",
"shell.execute_reply": "2024-10-03T01:24:33.353014Z"
},
"id": "U9JZD6TYCZWu"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.concat([x, x, x], axis=0)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.356195Z",
"iopub.status.busy": "2024-10-03T01:24:33.355682Z",
"iopub.status.idle": "2024-10-03T01:24:33.367105Z",
"shell.execute_reply": "2024-10-03T01:24:33.366502Z"
},
"id": "seGBLeD9P_PI"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.nn.softmax(x, axis=-1)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.369300Z",
"iopub.status.busy": "2024-10-03T01:24:33.369075Z",
"iopub.status.idle": "2024-10-03T01:24:33.377650Z",
"shell.execute_reply": "2024-10-03T01:24:33.377035Z"
},
"id": "YZNZRv1ECjf8"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.reduce_sum(x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "TNHnIjOVLJfA"
},
"source": [
"Note: Typically, anywhere a TensorFlow function expects a `Tensor` as input, the function will also accept anything that can be converted to a `Tensor` using `tf.convert_to_tensor`. See below for an example."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.380172Z",
"iopub.status.busy": "2024-10-03T01:24:33.379769Z",
"iopub.status.idle": "2024-10-03T01:24:33.384679Z",
"shell.execute_reply": "2024-10-03T01:24:33.384097Z"
},
"id": "i_XKgjDsL4GE"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.convert_to_tensor([1,2,3])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.387030Z",
"iopub.status.busy": "2024-10-03T01:24:33.386516Z",
"iopub.status.idle": "2024-10-03T01:24:33.394305Z",
"shell.execute_reply": "2024-10-03T01:24:33.393775Z"
},
"id": "wTBt-JUqLJDJ"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.reduce_sum([1,2,3])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8-mi5031DVxz"
},
"source": [
"Running large calculations on CPU can be slow. When properly configured, TensorFlow can use accelerator hardware like GPUs to execute operations very quickly."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.397101Z",
"iopub.status.busy": "2024-10-03T01:24:33.396538Z",
"iopub.status.idle": "2024-10-03T01:24:33.400162Z",
"shell.execute_reply": "2024-10-03T01:24:33.399607Z"
},
"id": "m97Gv5H6Dz0G"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"TensorFlow **IS** using the GPU\n"
]
}
],
"source": [
"if tf.config.list_physical_devices('GPU'):\n",
" print(\"TensorFlow **IS** using the GPU\")\n",
"else:\n",
" print(\"TensorFlow **IS NOT** using the GPU\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ln2FkLOqMX92"
},
"source": [
"Refer to the [Tensor guide](tensor.ipynb) for details."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "oVbomvMyEIVF"
},
"source": [
"## Variables\n",
"\n",
"Normal `tf.Tensor` objects are immutable. To store model weights (or other mutable state) in TensorFlow use a `tf.Variable`."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.403000Z",
"iopub.status.busy": "2024-10-03T01:24:33.402395Z",
"iopub.status.idle": "2024-10-03T01:24:33.408158Z",
"shell.execute_reply": "2024-10-03T01:24:33.407556Z"
},
"id": "SO8_bP4UEzxS"
},
"outputs": [],
"source": [
"var = tf.Variable([0.0, 0.0, 0.0])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.410290Z",
"iopub.status.busy": "2024-10-03T01:24:33.410082Z",
"iopub.status.idle": "2024-10-03T01:24:33.416279Z",
"shell.execute_reply": "2024-10-03T01:24:33.415744Z"
},
"id": "aDLYFvu5FAFa"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"var.assign([1, 2, 3])"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.418971Z",
"iopub.status.busy": "2024-10-03T01:24:33.418448Z",
"iopub.status.idle": "2024-10-03T01:24:33.425581Z",
"shell.execute_reply": "2024-10-03T01:24:33.424978Z"
},
"id": "9EpiOmxXFDSS"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"var.assign_add([1, 1, 1])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "tlvTpi1CMedC"
},
"source": [
"Refer to the [Variables guide](variable.ipynb) for details."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "rG1Dhv2QFkV3"
},
"source": [
"## Automatic differentiation\n",
"\n",
"_Gradient descent_ and related algorithms are a cornerstone of modern machine learning.\n",
"\n",
"To enable this, TensorFlow implements automatic differentiation (autodiff), which uses calculus to compute gradients. Typically you'll use this to calculate the gradient of a model's _error_ or _loss_ with respect to its weights."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.428430Z",
"iopub.status.busy": "2024-10-03T01:24:33.427862Z",
"iopub.status.idle": "2024-10-03T01:24:33.433406Z",
"shell.execute_reply": "2024-10-03T01:24:33.432856Z"
},
"id": "cYKOi-z4GY9Y"
},
"outputs": [],
"source": [
"x = tf.Variable(1.0)\n",
"\n",
"def f(x):\n",
" y = x**2 + 2*x - 5\n",
" return y"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.435577Z",
"iopub.status.busy": "2024-10-03T01:24:33.435369Z",
"iopub.status.idle": "2024-10-03T01:24:33.898564Z",
"shell.execute_reply": "2024-10-03T01:24:33.897876Z"
},
"id": "IQz99cxMGoF_"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f(x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ozLLop0cHeYl"
},
"source": [
"At `x = 1.0`, `y = f(x) = (1**2 + 2*1 - 5) = -2`.\n",
"\n",
"The derivative of `y` is `y' = f'(x) = (2*x + 2) = 4`. TensorFlow can calculate this automatically:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.901536Z",
"iopub.status.busy": "2024-10-03T01:24:33.901280Z",
"iopub.status.idle": "2024-10-03T01:24:33.912420Z",
"shell.execute_reply": "2024-10-03T01:24:33.911824Z"
},
"id": "N02NfWpHGvw8"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"with tf.GradientTape() as tape:\n",
" y = f(x)\n",
"\n",
"g_x = tape.gradient(y, x) # g(x) = dy/dx\n",
"\n",
"g_x"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "s-DVYJfcIRPd"
},
"source": [
"This simplified example only takes the derivative with respect to a single scalar (`x`), but TensorFlow can compute the gradient with respect to any number of non-scalar tensors simultaneously."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ECK3I9bUMk_r"
},
"source": [
"Refer to the [Autodiff guide](autodiff.ipynb) for details."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VglUM4M3KhNz"
},
"source": [
"## Graphs and tf.function\n",
"\n",
"While you can use TensorFlow interactively like any Python library, TensorFlow also provides tools for:\n",
"\n",
"* **Performance optimization**: to speed up training and inference.\n",
"* **Export**: so you can save your model when it's done training.\n",
"\n",
"These require that you use `tf.function` to separate your pure-TensorFlow code from Python."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.915460Z",
"iopub.status.busy": "2024-10-03T01:24:33.915078Z",
"iopub.status.idle": "2024-10-03T01:24:33.918767Z",
"shell.execute_reply": "2024-10-03T01:24:33.918165Z"
},
"id": "VitACyZWKJD_"
},
"outputs": [],
"source": [
"@tf.function\n",
"def my_func(x):\n",
" print('Tracing.\\n')\n",
" return tf.reduce_sum(x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fBYDh-huNUBZ"
},
"source": [
"The first time you run the `tf.function`, although it executes in Python, it captures a complete, optimized graph representing the TensorFlow computations done within the function."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.921435Z",
"iopub.status.busy": "2024-10-03T01:24:33.921055Z",
"iopub.status.idle": "2024-10-03T01:24:33.971502Z",
"shell.execute_reply": "2024-10-03T01:24:33.970902Z"
},
"id": "vkOFSEkoM1bd"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tracing.\n",
"\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = tf.constant([1, 2, 3])\n",
"my_func(x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "a3aWzt-rNsBa"
},
"source": [
"On subsequent calls TensorFlow only executes the optimized graph, skipping any non-TensorFlow steps. Below, note that `my_func` doesn't print _tracing_ since `print` is a Python function, not a TensorFlow function."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.974470Z",
"iopub.status.busy": "2024-10-03T01:24:33.973889Z",
"iopub.status.idle": "2024-10-03T01:24:33.978965Z",
"shell.execute_reply": "2024-10-03T01:24:33.978434Z"
},
"id": "23dMHWwwNIoa"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = tf.constant([10, 9, 8])\n",
"my_func(x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nSeTti6zki0n"
},
"source": [
"A graph may not be reusable for inputs with a different _signature_ (`shape` and `dtype`), so a new graph is generated instead:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:33.981873Z",
"iopub.status.busy": "2024-10-03T01:24:33.981323Z",
"iopub.status.idle": "2024-10-03T01:24:34.001813Z",
"shell.execute_reply": "2024-10-03T01:24:34.001272Z"
},
"id": "OWffqyhqlVPf"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tracing.\n",
"\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = tf.constant([10.0, 9.1, 8.2], dtype=tf.float32)\n",
"my_func(x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "UWknAA_zNTOa"
},
"source": [
"These captured graphs provide two benefits:\n",
"\n",
"* In many cases they provide a significant speedup in execution (though not this trivial example).\n",
"* You can export these graphs, using `tf.saved_model`, to run on other systems like a [server](https://www.tensorflow.org/tfx/serving/docker) or a [mobile device](https://www.tensorflow.org/lite/guide), no Python installation required."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hLUJ6f2eMsA8"
},
"source": [
"Refer to [Intro to graphs](intro_to_graphs.ipynb) for more details."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "t_36xPDPPBqp"
},
"source": [
"## Modules, layers, and models"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "oDaT7kCpUgnJ"
},
"source": [
"`tf.Module` is a class for managing your `tf.Variable` objects, and the `tf.function` objects that operate on them. The `tf.Module` class is necessary to support two significant features:\n",
"\n",
"1. You can save and restore the values of your variables using `tf.train.Checkpoint`. This is useful during training as it is quick to save and restore a model's state.\n",
"2. You can import and export the `tf.Variable` values _and_ the `tf.function` graphs using `tf.saved_model`. This allows you to run your model independently of the Python program that created it.\n",
"\n",
"Here is a complete example exporting a simple `tf.Module` object:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:34.004530Z",
"iopub.status.busy": "2024-10-03T01:24:34.004114Z",
"iopub.status.idle": "2024-10-03T01:24:34.008293Z",
"shell.execute_reply": "2024-10-03T01:24:34.007591Z"
},
"id": "1MqEcZOqPBDV"
},
"outputs": [],
"source": [
"class MyModule(tf.Module):\n",
" def __init__(self, value):\n",
" self.weight = tf.Variable(value)\n",
"\n",
" @tf.function\n",
" def multiply(self, x):\n",
" return x * self.weight"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:34.010445Z",
"iopub.status.busy": "2024-10-03T01:24:34.010230Z",
"iopub.status.idle": "2024-10-03T01:24:34.050277Z",
"shell.execute_reply": "2024-10-03T01:24:34.049744Z"
},
"id": "la2G82HfVfU0"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mod = MyModule(3)\n",
"mod.multiply(tf.constant([1, 2, 3]))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "GaSJX7zQXCm4"
},
"source": [
"Save the `Module`:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:34.052913Z",
"iopub.status.busy": "2024-10-03T01:24:34.052685Z",
"iopub.status.idle": "2024-10-03T01:24:34.113860Z",
"shell.execute_reply": "2024-10-03T01:24:34.113286Z"
},
"id": "1MlfbEMjVzG4"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Assets written to: ./saved/assets\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:tensorflow:Assets written to: ./saved/assets\n"
]
}
],
"source": [
"save_path = './saved'\n",
"tf.saved_model.save(mod, save_path)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "LgfoftD4XGJW"
},
"source": [
"The resulting SavedModel is independent of the code that created it. You can load a SavedModel from Python, other language bindings, or [TensorFlow Serving](https://www.tensorflow.org/tfx/serving/docker). You can also convert it to run with [TensorFlow Lite](https://www.tensorflow.org/lite/guide) or [TensorFlow JS](https://www.tensorflow.org/js/guide)."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:34.116897Z",
"iopub.status.busy": "2024-10-03T01:24:34.116338Z",
"iopub.status.idle": "2024-10-03T01:24:34.156678Z",
"shell.execute_reply": "2024-10-03T01:24:34.156118Z"
},
"id": "pWuLOIKBWZYG"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"reloaded = tf.saved_model.load(save_path)\n",
"reloaded.multiply(tf.constant([1, 2, 3]))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nxU6P1RGwHyC"
},
"source": [
"The `tf.keras.layers.Layer` and `tf.keras.Model` classes build on `tf.Module` providing additional functionality and convenience methods for building, training, and saving models. Some of these are demonstrated in the next section."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "tQzt3yaWMzLf"
},
"source": [
"Refer to [Intro to modules](intro_to_modules.ipynb) for details."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Rk1IEG5aav7X"
},
"source": [
"## Training loops\n",
"\n",
"Now put this all together to build a basic model and train it from scratch.\n",
"\n",
"First, create some example data. This generates a cloud of points that loosely follows a quadratic curve:"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:34.159865Z",
"iopub.status.busy": "2024-10-03T01:24:34.159311Z",
"iopub.status.idle": "2024-10-03T01:24:34.777173Z",
"shell.execute_reply": "2024-10-03T01:24:34.776280Z"
},
"id": "VcuFr7KPRPzn"
},
"outputs": [],
"source": [
"import matplotlib\n",
"from matplotlib import pyplot as plt\n",
"\n",
"matplotlib.rcParams['figure.figsize'] = [9, 6]"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:34.780713Z",
"iopub.status.busy": "2024-10-03T01:24:34.780450Z",
"iopub.status.idle": "2024-10-03T01:24:35.738054Z",
"shell.execute_reply": "2024-10-03T01:24:35.737316Z"
},
"id": "sXN9E_xf-GiP"
},
"outputs": [
{
"data": {
"image/png": "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G4Zy8kJ38o3GCq+e9ZhEs4fbrn174aSTTpLL5apRG965c2dJUkJCzbPGuspl6hIVZZ6DGVVKc0pLS2vdtupg1YryG4/H49P+vHX88/ClnbU5fqCty+WyrO0AAMB6GSlNFeVStcAe7XIpPcW7nBWOwqtn3eUyS1HsuBxXZ16X1q1b6/zzz9eTTz6pwsJCv57mKaecoi+++KLabV988YVOPfVUSVJqaqokKTc3t/L3VQdx+rKflStXVrvtyy+/rPc+FTO8lJeXN/j43rTTl8cDAAChLS05QTPH9VT00VwV7XJpxrgeEVsCI4Vbz3qIePrppzV48GD169dP9913n3r16qWoqChlZWVpw4YNDZaL/O53v9MVV1yh008/XSNGjND777+vzMxMffrpp5LM3vmzzjpLs2bNUkZGhvbs2aM//vGPPrfz9ttv18SJE9WvXz8NHjxYr7/+utatW1f5LUBtOnXqJJfLpQ8++EAXXnihEhIS1KxZs1q39aadvjweAAAIfeP7d9SQrqnKyStSekpiRAd1Kdx61kNEly5dtHr1ao0YMULTpk1T79691a9fPz3xxBO6++679de//rXe+48dO1b/+Mc/NHv2bJ122ml67rnn9NJLL2nYsGGV27z44osqKytT3759dccdd+iBBx7wuZ3jx4/Xn/70J91zzz3q27evtm7dqltuuaXe+5x44om6//77NXXqVLVt21a33XZbvds31E5fHw8AAIS+tOQEDezSOuKDuiS5DMPLOQcbadasWZo2bZpuv/12PfbYY17dp6CgQMnJyXK73UpKSqr2u8OHDys7O1sZGRmKj4+3oMUIJ7xfAACAk9SXc6sKSs96VlaWnnvuuRqzdwAAAACom+Vh/dChQ7r66qv1/PPPq2XLllbvDgAAAAgblof1KVOmaPTo0RoxYkSD25aUlKigoKDaBQAAAIhUls4G8+abb+qbb75RVlaWV9vPnDlT999/v5VNAgAAAEKGZT3r27dv1+23367XX3/d6wF906ZNk9vtrrxs377dquYBAAAAjmdZz/qqVau0Z88enXHGGZW3lZeXa+nSpXryySdVUlKi6OjoaveJi4tTXFycT/thxUp4g/cJAAAIRZaF9fPOO09r1qypdtv111+v7t276/e//32NoO6r2NhYRUVFaefOnUpNTVVsbKxcXq4iishhGIaOHDmivXv3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t26tZs2a6bLLLtPu3buD1Grn+Nvf/qZBgwYpMTFRLVq08Oo+EydOlMvlqnYZNWqUtQ11IH+OnWEY+vOf/6y0tDQlJCRoxIgR+umnn6xtqAPt379fV199tZKSktSiRQtNmjRJhw4dqvc+w4YNq/G+u/nmm4PUYns99dRTSk9PV3x8vAYMGKCvvvqq3u3ffvttde/eXfHx8erZs6c+/PDDILXUeXw5di+//HKN91h8fHwQW+scS5cu1UUXXaQTTjhBLpdL7777boP3WbJkic444wzFxcXppJNO0ssvv2x5O53I12O3ZMmSGu87l8ulXbt2BafBDjJz5kz1799fzZs3V5s2bTR27Fht3Lixwfs58TOPsF7Fhg0b5PF49Nxzz2ndunX6+9//rmeffVbTp0+v936//e1v9f777+vtt9/WZ599pp07d2rcuHFBarVzHDlyRJdffrluueUWn+43atQo5ebmVl7eeOMNi1roXP4cu4ceekiPP/64nn32Wa1cuVJNmzbVyJEjdfjwYQtb6jxXX3211q1bpwULFuiDDz7Q0qVLdeONNzZ4v8mTJ1d73z300ENBaK295syZozvvvFP33nuvvvnmG/Xu3VsjR47Unj17at1++fLluuqqqzRp0iStXr1aY8eO1dixY7V27dogt9x+vh47yVzCvOp7bOvWrUFssXMUFhaqd+/eeuqpp7zaPjs7W6NHj9bw4cP17bff6o477tANN9ygjz/+2OKWOo+vx67Cxo0bq7332rRpY1ELneuzzz7TlClT9OWXX2rBggUqLS3VBRdcoMLCwjrv49jPPAP1euihh4yMjIw6f5+fn2/ExMQYb7/9duVt69evNyQZK1asCEYTHeell14ykpOTvdr2uuuuMy655BJL2xNKvD12Ho/HaNeunfHwww9X3pafn2/ExcUZb7zxhoUtdJYffvjBkGRkZWVV3jZ//nzD5XIZO3bsqPN+Q4cONW6//fYgtNBZzjzzTGPKlCmV18vLy40TTjjBmDlzZq3bX3HFFcbo0aOr3TZgwADjpptusrSdTuTrsfPlczCSSDLmzp1b7zb33HOPcdppp1W7bfz48cbIkSMtbJnzeXPsFi9ebEgyDhw4EJQ2hZI9e/YYkozPPvuszm2c+plHz3oD3G63WrVqVefvV61apdLSUo0YMaLytu7du6tjx45asWJFMJoY8pYsWaI2bdqoW7duuuWWW7Rv3z67m+R42dnZ2rVrV7X3XXJysgYMGBBR77sVK1aoRYsW6tevX+VtI0aMUFRUlFauXFnvfV9//XWlpKSoR48emjZtmoqKiqxurq2OHDmiVatWVXvPREVFacSIEXW+Z1asWFFte0kaOXJkRL3HJP+OnSQdOnRInTp1UocOHXTJJZdo3bp1wWhuyON913h9+vRRWlqazj//fH3xxRd2N8cR3G63JNWb6Zz63mti694dbtOmTXriiSc0e/bsOrfZtWuXYmNja9QZt23bNiJrxHw1atQojRs3ThkZGdq8ebOmT5+uX/ziF1qxYoWio6Ptbp5jVby32rZtW+32SHvf7dq1q8bXu02aNFGrVq3qPQ4TJkxQp06ddMIJJ+j777/X73//e23cuFGZmZlWN9k2eXl5Ki8vr/U9s2HDhlrvs2vXroh/j0n+Hbtu3brpxRdfVK9eveR2uzV79mwNGjRI69atU/v27YPR7JBV1/uuoKBAxcXFSkhIsKllzpeWlqZnn31W/fr1U0lJiV544QUNGzZMK1eu1BlnnGF382zj8Xh0xx13aPDgwerRo0ed2zn1My8ietanTp1a64CLqpfjP3B37NihUaNG6fLLL9fkyZNtarn9/Dl2vrjyyit18cUXq2fPnho7dqw++OADZWVlacmSJYF7Ejax+tiFM6uP3Y033qiRI0eqZ8+euvrqq/Xqq69q7ty52rx5cwCfBSLZwIEDde2116pPnz4aOnSoMjMzlZqaqueee87upiGMdevWTTfddJP69u2rQYMG6cUXX9SgQYP097//3e6m2WrKlClau3at3nzzTbub4peI6Fm/6667NHHixHq36dy5c+XPO3fu1PDhwzVo0CD985//rPd+7dq105EjR5Sfn1+td3337t1q165dY5rtCL4eu8bq3LmzUlJStGnTJp133nkBe1w7WHnsKt5bu3fvVlpaWuXtu3fvVp8+ffx6TCfx9ti1a9euxgC/srIy7d+/36e/vwEDBkgyv03r0qWLz+0NBSkpKYqOjq4xU1V9n1Xt2rXzaftw5c+xO15MTIxOP/10bdq0yYomhpW63ndJSUn0qvvhzDPP1LJly+xuhm1uu+22yskHGvpWy6mfeRER1lNTU5WamurVtjt27NDw4cPVt29fvfTSS4qKqv/Lh759+yomJkYLFy7UZZddJskchb1t2zYNHDiw0W23my/HLhB+/vln7du3r1oADVVWHruMjAy1a9dOCxcurAznBQUFWrlypc+z8TiRt8du4MCBys/P16pVq9S3b19J0qJFi+TxeCoDuDe+/fZbSQqL911dYmNj1bdvXy1cuFBjx46VZH41vHDhQt1222213mfgwIFauHCh7rjjjsrbFixYEBafbb7w59gdr7y8XGvWrNGFF15oYUvDw8CBA2tMlxeJ77tA+fbbb8P6s60uhmHoN7/5jebOnaslS5YoIyOjwfs49jPP1uGtDvPzzz8bJ510knHeeecZP//8s5Gbm1t5qbpNt27djJUrV1bedvPNNxsdO3Y0Fi1aZHz99dfGwIEDjYEDB9rxFGy1detWY/Xq1cb9999vNGvWzFi9erWxevVq4+DBg5XbdOvWzcjMzDQMwzAOHjxo3H333caKFSuM7Oxs49NPPzXOOOMM4+STTzYOHz5s19Owha/HzjAMY9asWUaLFi2M9957z/j++++NSy65xMjIyDCKi4vteAq2GTVqlHH66acbK1euNJYtW2acfPLJxlVXXVX5++P/Zjdt2mT85S9/Mb7++msjOzvbeO+994zOnTsbQ4YMsespBM2bb75pxMXFGS+//LLxww8/GDfeeKPRokULY9euXYZhGMY111xjTJ06tXL7L774wmjSpIkxe/ZsY/369ca9995rxMTEGGvWrLHrKdjG12N3//33Gx9//LGxefNmY9WqVcaVV15pxMfHG+vWrbPrKdjm4MGDlZ9pkoxHH33UWL16tbF161bDMAxj6tSpxjXXXFO5/ZYtW4zExETjd7/7nbF+/XrjqaeeMqKjo42PPvrIrqdgG1+P3d///nfj3XffNX766SdjzZo1xu23325ERUUZn376qV1PwTa33HKLkZycbCxZsqRanisqKqrcJlQ+8wjrVbz00kuGpFovFbKzsw1JxuLFiytvKy4uNm699VajZcuWRmJionHppZdWC/iR4rrrrqv12FU9VpKMl156yTAMwygqKjIuuOACIzU11YiJiTE6depkTJ48ufI/v0ji67EzDHP6xj/96U9G27Ztjbi4OOO8884zNm7cGPzG22zfvn3GVVddZTRr1sxISkoyrr/++monOcf/zW7bts0YMmSI0apVKyMuLs446aSTjN/97neG2+226RkE1xNPPGF07NjRiI2NNc4880zjyy+/rPzd0KFDjeuuu67a9m+99ZbRtWtXIzY21jjttNOMefPmBbnFzuHLsbvjjjsqt23btq1x4YUXGt98840NrbZfxXSCx18qjtd1111nDB06tMZ9+vTpY8TGxhqdO3eu9tkXSXw9dg8++KDRpUsXIz4+3mjVqpUxbNgwY9GiRfY03mZ15bmq76VQ+cxzGYZhWNlzDwAAAMA/ETEbDAAAABCKCOsAAACAQxHWAQAAAIcirAMAAAAORVgHAAAAHIqwDgAAADgUYR0AAABwKMI6AAAA4FCEdQAAAMChCOsAAACAQxHWAQAAAIf6fxMqNRw4U7JcAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = tf.linspace(-2, 2, 201)\n",
"x = tf.cast(x, tf.float32)\n",
"\n",
"def f(x):\n",
" y = x**2 + 2*x - 5\n",
" return y\n",
"\n",
"y = f(x) + tf.random.normal(shape=[201])\n",
"\n",
"plt.plot(x.numpy(), y.numpy(), '.', label='Data')\n",
"plt.plot(x, f(x), label='Ground truth')\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "De5LldboSWcW"
},
"source": [
"Create a quadratic model with randomly initialized weights and a bias:"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:35.740977Z",
"iopub.status.busy": "2024-10-03T01:24:35.740741Z",
"iopub.status.idle": "2024-10-03T01:24:35.746188Z",
"shell.execute_reply": "2024-10-03T01:24:35.745559Z"
},
"id": "Pypd0GB4SRhf"
},
"outputs": [],
"source": [
"class Model(tf.Module):\n",
"\n",
" def __init__(self):\n",
" # Randomly generate weight and bias terms\n",
" rand_init = tf.random.uniform(shape=[3], minval=0., maxval=5., seed=22)\n",
" # Initialize model parameters\n",
" self.w_q = tf.Variable(rand_init[0])\n",
" self.w_l = tf.Variable(rand_init[1])\n",
" self.b = tf.Variable(rand_init[2])\n",
" \n",
" @tf.function\n",
" def __call__(self, x):\n",
" # Quadratic Model : quadratic_weight * x^2 + linear_weight * x + bias\n",
" return self.w_q * (x**2) + self.w_l * x + self.b"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "36o7VjaesScg"
},
"source": [
"First, observe your model's performance before training:"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:35.748755Z",
"iopub.status.busy": "2024-10-03T01:24:35.748532Z",
"iopub.status.idle": "2024-10-03T01:24:35.755882Z",
"shell.execute_reply": "2024-10-03T01:24:35.755290Z"
},
"id": "GkwToC5BWV1c"
},
"outputs": [],
"source": [
"quad_model = Model()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:35.758276Z",
"iopub.status.busy": "2024-10-03T01:24:35.758023Z",
"iopub.status.idle": "2024-10-03T01:24:35.761943Z",
"shell.execute_reply": "2024-10-03T01:24:35.761380Z"
},
"id": "ReWhH40wTY5F"
},
"outputs": [],
"source": [
"def plot_preds(x, y, f, model, title):\n",
" plt.figure()\n",
" plt.plot(x, y, '.', label='Data')\n",
" plt.plot(x, f(x), label='Ground truth')\n",
" plt.plot(x, model(x), label='Predictions')\n",
" plt.title(title)\n",
" plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:35.764518Z",
"iopub.status.busy": "2024-10-03T01:24:35.763954Z",
"iopub.status.idle": "2024-10-03T01:24:36.081255Z",
"shell.execute_reply": "2024-10-03T01:24:36.080552Z"
},
"id": "Y0JtXQat-nlk"
},
"outputs": [
{
"data": {
"image/png": "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+zIzM6t9zmbNmmGxWMosa9SoEWvXrq32scHBweVea6NGjcqMEdi5cydJSUnluuOcvJ9FRDyVwrqISA1ZrVaGDBnCyy+/zNatW+ncuTM2m434+Hg++uijCh9TWYA+2cnBtTIVzfxis9k455xzmDhxYoWPad++vVPPXZNt3n777UyfPp277rqL/v37ExUVhcVi4Z///Ge1g1qBci31pU4M/TV9rIiIL1FYFxGpheLiYgCys7MBaNOmDbNnz2bgwIG1mkKxZcuW2Gw2tm7dSqdOnRzL9+/fT0ZGBi1btqz2Odq0aUN2djZDhw6t8fbB+QOFE/3vf/9j9OjRPP/8845l+fn5ZGRk1KoGV2vZsiXz5s0jNze3TOv6tm3bTKxKRMR56rMuIlJDRUVF/PLLLwQGBjqC9WWXXUZJSQmPP/54ufWLi4urDa/nnnsuQLkZW1544QUAzjvvvGrruuyyy1iyZAk///xzufsyMjIcBxiVCQsLq3HI9vPzK9cK/uqrr5abPtEsw4cPp6ioiHfeecexzGaz8dprr5lYlYiI89SyLiJSjR9//JFNmzYB9n7fH3/8MVu3bmXSpElERkYCMGjQIMaOHcvUqVNZs2YNw4YNIyAggK1bt/L555/z8ssvc+mll1a6je7duzN69GjefvttMjIyGDRoEMuXL+eDDz5g1KhRDBkypNo677vvPr755hvOP/98xowZQ+/evcnJyWHdunX873//IyUlhdjY2Eof37t3b9544w2eeOIJ2rZtS3x8PGeddVaV2zz//PP5z3/+Q1RUFKeccgpLlixh9uzZNG7cuNp668OoUaPo27cv99xzD9u2baNjx4588803pKenA7U7myAiUp8U1kVEqvHwww87fg4ODqZjx4688cYbjB07tsx6b775Jr179+att97igQcewN/fn1atWnH11VczcODAarfz7rvv0rp1a2bMmMGXX35JYmIikydP5pFHHnGqztDQUBYsWMBTTz3F559/zocffkhkZCTt27dnypQpREVFVfs6d+7cyTPPPMPRo0cZNGhQtWH95Zdfxs/Pj48++oj8/HwGDhzI7Nmzy81UYxY/Pz++//577rzzTj744AOsVisXXXQRjzzyCAMHDtSVUUXE41kMZ0bxiIiI+JCvvvqKiy66iIULFzp1ICUiYhaFdRER8Wl5eXllBv2WlJQwbNgwVq5c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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_preds(x, y, f, quad_model, 'Before training')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hLzwD0-ascGf"
},
"source": [
"Now, define a loss for your model:\n",
"\n",
"Given that this model is intended to predict continuous values, the mean squared error (MSE) is a good choice for the loss function. Given a vector of predictions, $\\hat{y}$, and a vector of true targets, $y$, the MSE is defined as the mean of the squared differences between the predicted values and the ground truth.\n",
"\n",
"$MSE = \\frac{1}{m}\\sum_{i=1}^{m}(\\hat{y}_i -y_i)^2$"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:36.084113Z",
"iopub.status.busy": "2024-10-03T01:24:36.083877Z",
"iopub.status.idle": "2024-10-03T01:24:36.087313Z",
"shell.execute_reply": "2024-10-03T01:24:36.086692Z"
},
"id": "eCtJ1uuCseZd"
},
"outputs": [],
"source": [
"def mse_loss(y_pred, y):\n",
" return tf.reduce_mean(tf.square(y_pred - y))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "7EWyDu3zot2w"
},
"source": [
"Write a basic training loop for the model. The loop will make use of the MSE loss function and its gradients with respect to the input in order to iteratively update the model's parameters. Using mini-batches for training provides both memory efficiency and faster convergence. The `tf.data.Dataset` API has useful functions for batching and shuffling."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:36.089946Z",
"iopub.status.busy": "2024-10-03T01:24:36.089734Z",
"iopub.status.idle": "2024-10-03T01:24:36.099499Z",
"shell.execute_reply": "2024-10-03T01:24:36.098910Z"
},
"id": "8kX_-zily2Ia"
},
"outputs": [],
"source": [
"batch_size = 32\n",
"dataset = tf.data.Dataset.from_tensor_slices((x, y))\n",
"dataset = dataset.shuffle(buffer_size=x.shape[0]).batch(batch_size)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:36.102086Z",
"iopub.status.busy": "2024-10-03T01:24:36.101874Z",
"iopub.status.idle": "2024-10-03T01:24:39.873242Z",
"shell.execute_reply": "2024-10-03T01:24:39.872519Z"
},
"id": "nOaES5gyTDtG"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean squared error for step 0: 57.050\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean squared error for step 10: 10.417\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean squared error for step 20: 4.270\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean squared error for step 30: 2.171\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean squared error for step 40: 1.429\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean squared error for step 50: 1.162\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean squared error for step 60: 1.062\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean squared error for step 70: 1.027\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean squared error for step 80: 1.017\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean squared error for step 90: 1.014\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAvwAAAIjCAYAAAB/MM91AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABgoElEQVR4nO3dd3wUdf7H8fduNtn0hARICL1JFUQQiSDcSRQRkeZRDk+Kp6cgRfTOdgoWDk9/YgfLIXinKIJgO9HDqChVpElHBaSEJLT0np3fHyFrllCykN0Ju6/n47GP7M7Mzn52Jzx47zef+Y7FMAxDAAAAAHyS1ewCAAAAAHgOgR8AAADwYQR+AAAAwIcR+AEAAAAfRuAHAAAAfBiBHwAAAPBhBH4AAADAhxH4AQAAAB9G4AcAAAB8GIEfACQ1adJEo0ePNrsMn2KxWDRt2rTzeq6Zx+NC6jbDvn37ZLFYNG/ePLNLAVBDEfgBeNy8efNksVhksVi0YsWKSusNw1DDhg1lsVh04403uqzLycnR1KlT1b59e4WFhSk2NlaXXXaZJk2apJSUFOd206ZNc77G6W6pqakef58Xm88+++yiCrZmWbVqlaZNm6aMjAxT65g/f76ef/55U2sAcHGymV0AAP8RHBys+fPnq0ePHi7Lly9froMHD8put7ssLy4uVs+ePbVz506NGjVKEyZMUE5OjrZt26b58+dr0KBBSkhIcHnO7NmzFR4eXum1o6Ojq/39XOw+++wzvfLKKx4L/fn5+bLZzu+/mV27dslqNWdM6tS6V61apccee0yjR4829fdo/vz52rp1qyZPnuyyvHHjxsrPz1dgYKA5hQGo8Qj8ALzmhhtu0MKFC/Xiiy+6BKr58+erc+fOOnr0qMv2H374oTZu3Kh33nlHf/zjH13WFRQUqKioqNJr3Hzzzapdu7Zn3oAfKykpkcPhUFBQUJWfExwcfN6vd+qXP2+6kLrdkZeXp9DQ0Avej8Vi8VrNAC5OtPQA8JoRI0bo2LFjWrZsmXNZUVGRFi1aVCnQS9Ivv/wiSerevXuldcHBwYqMjPRcsZL27NmjP/zhD4qJiVFoaKi6deum//73v5W2e+mll9SuXTuFhoaqVq1a6tKli+bPn+9cn52drcmTJ6tJkyay2+2qW7eurr32Wm3YsOGMr71o0SJZLBYtX7680rrXXntNFotFW7dulSSlpqZqzJgxatCggex2u+rVq6cBAwZo3759Z9z/6NGj9corr0iSS+uT9FtP+P/93//p+eefV/PmzWW327V9+3YVFRXp0UcfVefOnRUVFaWwsDBdffXV+vrrryu9xqm98OVtVz///LNztDwqKkpjxoxRXl6ey3NP7eEvbwtbuXKlpkyZojp16igsLEyDBg3SkSNHXJ7rcDg0bdo0JSQkKDQ0VL///e+1ffv2Kp8XULHuadOm6a9//askqWnTps7PqeJn+/bbb6tz584KCQlRTEyMhg8frgMHDrjs83e/+53at2+v9evXq2fPngoNDdVDDz0kSfroo4/Ur18/JSQkyG63q3nz5nriiSdUWlrq8vz//ve/+vXXX501NGnSxOV4ndrD/9VXX+nqq69WWFiYoqOjNWDAAO3YscNlG3eOybJly9SjRw9FR0crPDxcrVq1cr4HADUbI/wAvKZJkyZKTEzUu+++q759+0qSli5dqszMTA0fPlwvvviiy/aNGzeWJP373//W3//+d2cgPZvjx49XWmaz2dxuxUhLS9NVV12lvLw8TZw4UbGxsXrrrbd00003adGiRRo0aJAk6Y033tDEiRN18803a9KkSSooKNCPP/6otWvXOr/E3HnnnVq0aJHuvvtutW3bVseOHdOKFSu0Y8cOXX755ad9/X79+ik8PFzvv/++evXq5bJuwYIFateundq3by9JGjJkiLZt26YJEyaoSZMmSk9P17Jly7R//35nKDzVX/7yF6WkpGjZsmX6z3/+c9pt5s6dq4KCAt1xxx2y2+2KiYlRVlaW/vWvf2nEiBG6/fbblZ2drTlz5qhPnz76/vvvddlll53zsx06dKiaNm2qGTNmaMOGDfrXv/6lunXr6p///Oc5nzthwgTVqlVLU6dO1b59+/T888/r7rvv1oIFC5zbPPjgg3r66afVv39/9enTR5s3b1afPn1UUFBwzv2favDgwdq9e7feffddPffcc86/HtWpU0eSNH36dD3yyCMaOnSo/vznP+vIkSN66aWX1LNnT23cuNHl9+7YsWPq27evhg8frltuuUVxcXGSyr7MhIeHa8qUKQoPD9dXX32lRx99VFlZWXrmmWckSQ8//LAyMzN18OBBPffcc5J02ta1cl9++aX69u2rZs2aadq0acrPz9dLL72k7t27a8OGDZV+L851TLZt26Ybb7xRHTp00OOPPy673a6ff/5ZK1eudPszBWACAwA8bO7cuYYkY926dcbLL79sREREGHl5eYZhGMYf/vAH4/e//71hGIbRuHFjo1+/fs7n5eXlGa1atTIkGY0bNzZGjx5tzJkzx0hLS6v0GlOnTjUknfbWqlWrc9bYuHFjY9SoUc7HkydPNiQZ3333nXNZdna20bRpU6NJkyZGaWmpYRiGMWDAAKNdu3Zn3XdUVJQxfvz4c9ZwqhEjRhh169Y1SkpKnMsOHz5sWK1W4/HHHzcMwzBOnDhhSDKeeeYZt/c/fvx443T/Dezdu9eQZERGRhrp6eku60pKSozCwkKXZSdOnDDi4uKMsWPHuiyXZEydOtX5uPwYnbrdoEGDjNjYWJdlpx6P8t+hpKQkw+FwOJffc889RkBAgJGRkWEYhmGkpqYaNpvNGDhwoMv+pk2bZkhy2eeZnFr3M888Y0gy9u7d67Ldvn37jICAAGP69Okuy7ds2WLYbDaX5b169TIkGa+++mql1yv/t1DRX/7yFyM0NNQoKChwLuvXr5/RuHHjStuWH6+5c+c6l1122WVG3bp1jWPHjjmXbd682bBarcatt97qXFbVY/Lcc88ZkowjR45Uen0ANR8tPQC8aujQocrPz9enn36q7Oxsffrpp6dt55GkkJAQrV271tlSMW/ePN12222qV6+eJkyYoMLCwkrP+eCDD7Rs2TKX29y5c92u87PPPlPXrl1dTjAODw/XHXfcoX379mn79u2Syk4GPnjwoNatW3fGfUVHR2vt2rUuswpVxbBhw5Senq5vvvnGuWzRokVyOBwaNmyYpLLPKCgoSN98841OnDjh1v7PZciQIc6R7HIBAQHOPn6Hw6Hjx4+rpKREXbp0OWuLUkV33nmny+Orr75ax44dU1ZW1jmfe8cdd7j8pefqq69WaWmpfv31V0lScnKySkpKNG7cOJfnTZgwoUq1uWPx4sVyOBwaOnSojh496rzFx8erZcuWldqc7Ha7xowZU2k/ISEhzvvZ2dk6evSorr76auXl5Wnnzp1u13X48GFt2rRJo0ePVkxMjHN5hw4ddO211+qzzz6r9JxzHZPyv1R89NFHcjgcbtcEwFwEfgBeVadOHSUlJWn+/PlavHixSktLdfPNN59x+6ioKD399NPat2+f9u3bpzlz5qhVq1Z6+eWX9cQTT1TavmfPnkpKSnK5JSYmul3nr7/+qlatWlVa3qZNG+d6Sbr//vsVHh6url27qmXLlho/fnylNoenn35aW7duVcOGDdW1a1dNmzZNe/bsOWcN119/vaKiolzaVRYsWKDLLrtMl1xyiaSyEPnPf/5TS5cuVVxcnHr27Kmnn366WqYhbdq06WmXv/XWW+rQoYOCg4MVGxurOnXq6L///a8yMzOrtN9GjRq5PK5Vq5YkVekLy7meW35cWrRo4bJdTEyMc9vq8tNPP8kwDLVs2VJ16tRxue3YsUPp6eku29evX/+0Jz1v27ZNgwYNUlRUlCIjI1WnTh3dcsstklTlz7Si8s/gTL+/R48eVW5ursvyc32uw4YNU/fu3fXnP/9ZcXFxGj58uN5//33CP3CRIPAD8Lo//vGPWrp0qV599VX17du3yv31jRs31tixY7Vy5UpFR0frnXfe8WyhVdCmTRvt2rVL7733nnr06KEPPvhAPXr00NSpU53bDB06VHv27NFLL72khIQEPfPMM2rXrp2WLl161n3b7XYNHDhQS5YsUUlJiQ4dOqSVK1c6R/fLTZ48Wbt379aMGTMUHBysRx55RG3atNHGjRsv6L1VHHku9/bbb2v06NFq3ry55syZo88//1zLli3TNddcU+XwFxAQcNrlhmF49LnVzeFwyGKxOD+DU2+vvfaay/an+zwzMjLUq1cvbd68WY8//rg++eQTLVu2zNk7761Afa7PNSQkRN9++62+/PJL/elPf9KPP/6oYcOG6dprr3U5uRhAzUTgB+B1gwYNktVq1Zo1a87YznM2tWrVUvPmzXX48GEPVFemcePG2rVrV6Xl5S0W5ScUS1JYWJiGDRumuXPnav/+/erXr5+mT5/ucpJovXr1NG7cOH344Yfau3evYmNjNX369HPWMWzYMB09elTJyclauHChDMOoFPglqXnz5rr33nv1v//9T1u3blVRUZGeffbZs+67KidBn2rRokVq1qyZFi9erD/96U/q06ePkpKSzuuEWE8oPy4///yzy/Jjx46dd8vTmT6n5s2byzAMNW3atNJflZKSktStW7dz7vubb77RsWPHNG/ePE2aNEk33nijkpKSTvvXiKoer/LP4Ey/v7Vr11ZYWFiV9lWR1WpV7969NXPmTG3fvl3Tp0/XV199ddoZmgDULAR+AF4XHh6u2bNna9q0aerfv/8Zt9u8eXOlufmlspaF7du3n7ZlobrccMMN+v7777V69WrnstzcXL3++utq0qSJ2rZtK6ksSFYUFBSktm3byjAMFRcXq7S0tFJbRt26dZWQkHDacxBOlZSUpJiYGC1YsEALFixQ165dXVpt8vLyKoXt5s2bKyIi4pz7Lw997lxBtnwkuOKI+tq1a10+JzP17t1bNptNs2fPdln+8ssvn/c+z/Q5DR48WAEBAXrssccq/YXBMIxKvxunc7rPs6ioSLNmzTptHVVp8alXr54uu+wyvfXWWy41b926Vf/73/90ww03nHMfpzrd7FflMzJV5fcYgLmYlhOAKUaNGnXObZYtW6apU6fqpptuUrdu3RQeHq49e/bozTffVGFh4WmvELto0aLTTld47bXXOqdBrIoHHnjAOX3oxIkTFRMTo7feekt79+7VBx984LwK7HXXXaf4+Hh1795dcXFx2rFjh15++WX169dPERERysjIUIMGDXTzzTerY8eOCg8P15dffql169adcwRekgIDAzV48GC99957ys3N1f/93/+5rN+9e7d69+6toUOHqm3btrLZbFqyZInS0tI0fPjws+67c+fOkqSJEyeqT58+CggIOOdzbrzxRi1evFiDBg1Sv379tHfvXr366qtq27atcnJyzvl+PC0uLk6TJk3Ss88+q5tuuknXX3+9Nm/erKVLl6p27drn9VeN8s/p4Ycf1vDhwxUYGKj+/furefPmevLJJ/Xggw9q3759GjhwoCIiIrR3714tWbJEd9xxh+67776z7vuqq65SrVq1NGrUKE2cOFEWi0X/+c9/Ttui1LlzZy1YsEBTpkzRFVdcofDw8DN+YX7mmWfUt29fJSYm6rbbbnNOyxkVFXVeV1Z+/PHH9e2336pfv35q3Lix0tPTNWvWLDVo0KDSlbMB1EDmTA4EwJ9UnJbzbE6dlnPPnj3Go48+anTr1s2oW7euYbPZjDp16hj9+vUzvvrqK5fnnm1aTknG119/fc7XPnXKxl9++cW4+eabjejoaCM4ONjo2rWr8emnn7ps89prrxk9e/Y0YmNjDbvdbjRv3tz461//amRmZhqGYRiFhYXGX//6V6Njx45GRESEERYWZnTs2NGYNWvWOT613yxbtsyQZFgsFuPAgQMu644ePWqMHz/eaN26tREWFmZERUUZV155pfH++++fc78lJSXGhAkTjDp16hgWi8U5RWf5NI+nm+rT4XAY//jHP4zGjRsbdrvd6NSpk/Hpp58ao0aNqjRlpM4wLeepUzuW/35UnPbyTNNynvo79PXXX1c6viUlJcYjjzxixMfHGyEhIcY111xj7Nixw4iNjTXuvPPOc34up9ZtGIbxxBNPGPXr1zesVmulWj/44AOjR48eRlhYmBEWFma0bt3aGD9+vLFr1y7nNr169Trj9K0rV640unXrZoSEhBgJCQnG3/72N+OLL76o9L5ycnKMP/7xj0Z0dLRzqlrDOP20nIZhGF9++aXRvXt3IyQkxIiMjDT69+9vbN++3WWbqh6T5ORkY8CAAUZCQoIRFBRkJCQkGCNGjDB27959zs8TgPkshmHCmU4AAHhRRkaGatWqpSeffFIPP/yw2eUAgFfRww8A8Cn5+fmVlj3//POSpN/97nfeLQYAagB6+AEAPmXBggWaN2+ebrjhBoWHh2vFihV69913dd1116l79+5mlwcAXkfgBwD4lA4dOshms+npp59WVlaW80TeJ5980uzSAMAU9PADAAAAPowefgAAAMCHEfgBAAAAH+bzPfwOh0MpKSmKiIg4rwuuAAAAADWNYRjKzs5WQkKC82KQZ+LzgT8lJUUNGzY0uwwAAACg2h04cEANGjQ46zY+H/gjIiIklX0YkZGRJlcDAAAAXLisrCw1bNjQmXXPxucDf3kbT2RkJIEfAAAAPqUqLeuctAsAAAD4MAI/AAAA4MMI/AAAAIAPI/ADAAAAPozADwAAAPgwAj8AAADgwwj8AAAAgA8j8AMAAAA+jMAPAAAA+DACPwAAAODDCPwAAACADyPwAwAAAD6MwA8AAAD4MAI/AAAA4MMI/AAAAIAPI/ADAAAAPsxmdgG+7NdjudpxOFtxkXZ1alTL7HIAAADghxjh96D/bUvTnW+v179X/2p2KQAAAPBTBH4PCgkKkCTlFZWYXAkAAAD8FYHfg0ICywJ/frHD5EoAAADgrwj8HlQ+wl9QVGpyJQAAAPBXBH4PKh/hzyumpQcAAADmIPB7UPkIfz4j/AAAADAJgd+Dykf4C+jhBwAAgEkI/B7kHOEvZoQfAAAA5iDwe5Czh59pOQEAAGASAr8HOWfpKXbI4TBMrgYAAAD+iMDvQeUj/JJUWEIfPwAAALyPwO9BwRUCP338AAAAMAOB34MCrBbZbWUfMX38AAAAMAOB38N+6+NnhB8AAADeR+D3sPI+/vwievgBAADgfQR+D3MGfkb4AQAAYAICv4eVt/TQww8AAAAzEPg9rHyEnx5+AAAAmIHA72HlI/y09AAAAMAMBH4PK5+LP6+IwA8AAADvI/B7WGj5CD+BHwAAACYg8HsYPfwAAAAwE4Hfw4KZlhMAAAAmIvB7WGgQPfwAAAAwD4Hfw2jpAQAAgJkI/B4Wwkm7AAAAMBGB38Po4QcAAICZCPweRg8/AAAAzETg9zB6+AEAAGAmAr+HBQfR0gMAAADzEPg9rHyEn5YeAAAAmIHA72HlPfwFBH4AAACYgMDvYSHM0gMAAAATEfg9jGk5AQAAYCYCv4c5W3qKHXI4DJOrAQAAgL8h8HtY+ZV2JamghFF+AAAAeBeB38OCbb8F/nxO3AUAAICXEfg9zGq1yG4r+5jp4wcAAIC3Efi9oLyPnxF+AAAAeBuB3wuYmhMAAABmIfB7QTAj/AAAADAJgd8LGOEHAACAWQj8XkAPPwAAAMxC4PcCrrYLAAAAsxD4vYCWHgAAAJiFwO8FtPQAAADALAR+Lwgh8AMAAMAkBH4voIcfAAAAZiHwewE9/AAAADALgd8L6OEHAACAWUwN/NOmTZPFYnG5tW7d2rm+oKBA48ePV2xsrMLDwzVkyBClpaWZWPH5oaUHAAAAZjF9hL9du3Y6fPiw87ZixQrnunvuuUeffPKJFi5cqOXLlyslJUWDBw82sdrzw0m7AAAAMIvN9AJsNsXHx1danpmZqTlz5mj+/Pm65pprJElz585VmzZttGbNGnXr1s3bpZ43evgBAABgFtNH+H/66SclJCSoWbNmGjlypPbv3y9JWr9+vYqLi5WUlOTctnXr1mrUqJFWr159xv0VFhYqKyvL5WY2evgBAABgFlMD/5VXXql58+bp888/1+zZs7V3715dffXVys7OVmpqqoKCghQdHe3ynLi4OKWmpp5xnzNmzFBUVJTz1rBhQw+/i3Ojhx8AAABmMbWlp2/fvs77HTp00JVXXqnGjRvr/fffV0hIyHnt88EHH9SUKVOcj7OyskwP/bT0AAAAwCymt/RUFB0drUsuuUQ///yz4uPjVVRUpIyMDJdt0tLSTtvzX85utysyMtLlZrbQoLLvVbT0AAAAwNtqVODPycnRL7/8onr16qlz584KDAxUcnKyc/2uXbu0f/9+JSYmmlil+0KCyj5mRvgBAADgbaa29Nx3333q37+/GjdurJSUFE2dOlUBAQEaMWKEoqKidNttt2nKlCmKiYlRZGSkJkyYoMTExItqhh6pQg8/I/wAAADwMlMD/8GDBzVixAgdO3ZMderUUY8ePbRmzRrVqVNHkvTcc8/JarVqyJAhKiwsVJ8+fTRr1iwzSz4v5T38hSUOORyGrFaLyRUBAADAX1gMwzDMLsKTsrKyFBUVpczMTNP6+fOLStXm0c8lSdse66Mwu+mXPwAAAMBFzJ2MW6N6+H2V3fbbx0wfPwAAALyJwO8FVqtFwYEnT9yljx8AAABeROD3kvI+/gJG+AEAAOBFBH4vKZ+LP48RfgAAAHgRgd9LnC09jPADAADAiwj8XhISdHIufgI/AAAAvIjA7yXOHn5aegAAAOBFBH4vCaGHHwAAACYg8HtJCD38AAAAMAGB30uYlhMAAABmIPB7CS09AAAAMAOB30vKR/hp6QEAAIA3Efi9JCToZA8/I/wAAADwIgK/l9DDDwAAADMQ+L2EHn4AAACYgcDvJfTwAwAAwAwEfi8p7+GnpQcAAADeROD3EucIPy09AAAA8CICv5fQww8AAAAzEPi9hFl6AAAAYAYCv5dw0i4AAADMQOD3kpAgAj8AAAC8j8DvJeWBnx5+AAAAeBOB30vKW3qKShwqdRgmVwMAAAB/QeD3kvLAL3HiLgAAALyHwO8lwYG/fdS09QAAAMBbCPxeYrFYmJoTAAAAXkfg9yJm6gEAAIC3Efi9yDkXPy09AAAA8BICvxcxNScAAAC8jcDvRfTwAwAAwNsI/F7kbOkh8AMAAMBLCPxe5Dxpl5YeAAAAeAmB34vKR/jzGOEHAACAlxD4vah8hL+AEX4AAAB4CYHfi4Lp4QcAAICXEfi9KJRpOQEAAOBlBH4vYlpOAAAAeBuB34uYpQcAAADeRuD3Inr4AQAA4G0Efi+ihx8AAADeRuD3Inr4AQAA4G0Efi+ipQcAAADeRuD3olBO2gUAAICXEfi9yDlLDyP8AAAA8BICvxeV9/Azwg8AAABvIfB7ET38AAAA8DYCvxeF0tIDAAAALyPwe1F5S09RiUOlDsPkagAAAOAPCPxeVH7SrsQoPwAAALyDwO9FdptVFkvZfU7cBQAAgDcQ+L3IYrEwUw8AAAC8isDvZSHM1AMAAAAvIvB7GVNzAgAAwJsI/F7mvNouLT0AAADwAgK/l/02F3+JyZUAAADAHxD4vczZ0lPkMLkSAAAA+AMCv5dx0i4AAAC8icDvZb+19BD4AQAA4HkEfi/7bR5+evgBAADgeRcU+AsLC6urDr8RHEQPPwAAALzHrcC/dOlSjRo1Ss2aNVNgYKBCQ0MVGRmpXr16afr06UpJSfFUnT6DHn4AAAB4U5UC/5IlS3TJJZdo7Nixstlsuv/++7V48WJ98cUX+te//qVevXrpyy+/VLNmzXTnnXfqyJEjnq77ouXs4aelBwAAAF5gq8pGTz/9tJ577jn17dtXVmvl7whDhw6VJB06dEgvvfSS3n77bd1zzz3VW6mP4Eq7AAAA8KYqjfCvXr1a/fr1O23Yr6h+/fp66qmnzivsP/XUU7JYLJo8ebJzWUFBgcaPH6/Y2FiFh4dryJAhSktLc3vfNclvLT308AMAAMDzasQsPevWrdNrr72mDh06uCy/55579Mknn2jhwoVavny5UlJSNHjwYJOqrB4hzpYeRvgBAADgeVUO/G3bttXx48edj8eNG6ejR486H6enpys0NNTtAnJycjRy5Ei98cYbqlWrlnN5Zmam5syZo5kzZ+qaa65R586dNXfuXK1atUpr1qxx+3Vqit/m4aeHHwAAAJ5X5cC/c+dOlZT8FlLffvttZWVlOR8bhqGCggK3Cxg/frz69eunpKQkl+Xr169XcXGxy/LWrVurUaNGWr169Rn3V1hYqKysLJdbTeLs4WeEHwAAAF5QpZN2T8cwjErLLBaLW/t47733tGHDBq1bt67SutTUVAUFBSk6OtpleVxcnFJTU8+4zxkzZuixxx5zqw5voocfAAAA3mRaD/+BAwc0adIkvfPOOwoODq62/T744IPKzMx03g4cOFBt+64O5S09BczSAwAAAC+ocuC3WCyVRvDdHdGvaP369UpPT9fll18um80mm82m5cuX68UXX5TNZlNcXJyKioqUkZHh8ry0tDTFx8efcb92u12RkZEut5qkvKUnj3n4AQAA4AVVbukxDEO9e/eWzVb2lPz8fPXv319BQUGS5NLfXxW9e/fWli1bXJaNGTNGrVu31v3336+GDRsqMDBQycnJGjJkiCRp165d2r9/vxITE916rZqEWXoAAADgTVUO/FOnTnV5PGDAgErblAfzqoiIiFD79u1dloWFhSk2Nta5/LbbbtOUKVMUExOjyMhITZgwQYmJierWrVuVX6emKe/hL6CHHwAAAF5w3oHfG5577jlZrVYNGTJEhYWF6tOnj2bNmuX1OqpTeQ9/UalDJaUO2QJqxKUQAAAA4KMsxumm23HD8uXLlZubq8TERJd59GuKrKwsRUVFKTMzs0b08xcUl6r1I59LkrZMu04RwYEmVwQAAICLjTsZt8oj/P/85z+Vk5OjJ554QlJZT3/fvn31v//9T5JUt25dJScnq127dhdQuu+z26yyWCTDkPKLSwn8AAAA8Kgq95MsWLDAped+0aJF+vbbb/Xdd9/p6NGj6tKlS42e/76msFgsv/XxF9HHDwAAAM+qcuDfu3evOnTo4Hz82Wef6eabb1b37t0VExOjv//972e9Ai5+U97Hn1fM1JwAAADwrCoH/pKSEtntdufj1atX66qrrnI+TkhI0NGjR6u3Oh9VPhc/U3MCAADA06oc+Js3b65vv/1WkrR//37t3r1bPXv2dK4/ePCgYmNjq79CH1Te0pPP1XYBAADgYVU+aXf8+PG6++679d1332nNmjVKTExU27Ztneu/+uorderUySNF+prylp4CAj8AAAA8rMqB//bbb1dAQIA++eQT9ezZs9K8/CkpKRo7dmy1F+iLylt68mjpAQAAgIdVOfBL0tixY88Y6i/2C2J5U0gQPfwAAADwDi7zagLntJy09AAAAMDDqjzCHxAQUKXtSksJsefiHOEn8AMAAMDDqhz4DcNQ48aNNWrUKE7OvUAh9PADAADAS6oc+L///nvNmTNHL7zwgpo2baqxY8dq5MiRqlWrlifr80lMywkAAABvqXIPf5cuXTR79mwdPnxYU6ZM0ZIlS9SgQQMNHz5cy5Yt82SNPqe8paeAEX4AAAB4mNsn7QYHB+uWW25RcnKytm7dqvT0dF1//fU6fvy4J+rzSfTwAwAAwFvcmpaz3MGDBzVv3jzNmzdPeXl5+utf/6rIyMjqrs1n0cMPAAAAb6ly4C8qKtKSJUs0Z84cfffdd+rbt6+ef/559e3bt8oz+KAM03ICAADAW6oc+OvVq6eIiAiNGjVKs2bNUt26dSVJubm5Ltsx0n9utPQAAADAW6oc+E+cOKETJ07oiSee0JNPPllpvWEYslgszMNfBbT0AAAAwFuqHPi//vprT9bhV5wj/AR+AAAAeFiVA3+vXr08WYdfoYcfAAAA3lKlaTlP7dOv7u39DT38AAAA8JYqBf4WLVroqaee0uHDh8+4jWEYWrZsmfr27asXX3yx2gr0RfTwAwAAwFuq1NLzzTff6KGHHtK0adPUsWNHdenSRQkJCQoODtaJEye0fft2rV69WjabTQ8++KD+8pe/eLrui5rzSruM8AMAAMDDqhT4W7VqpQ8++ED79+/XwoUL9d1332nVqlXKz89X7dq11alTJ73xxhvMyV9F5SP8xaWGiksdCgxw+4LHAAAAQJW4daXdRo0a6d5779W9997rqXr8QmjQbx97TkGJaoUFmVgNAAAAfBlDyyYIslkVHRooSTqSU2hyNQAAAPBlBH6T1I2wS5LSswj8AAAA8BwCv0niIoMlSWlZBSZXAgAAAF9G4DdJ3YiTgT+bwA8AAADPcSvwl5SU6PHHH9fBgwc9VY/fqBtJSw8AAAA8z63Ab7PZ9Mwzz6ikpMRT9fiNuPIefkb4AQAA4EFut/Rcc801Wr58uSdq8St1T/bwM8IPAAAAT3JrHn5J6tu3rx544AFt2bJFnTt3VlhYmMv6m266qdqK82VxJ1t66OEHAACAJ7kd+MeNGydJmjlzZqV1FotFpaWlF16VH3CetJtVKMMwZLFYTK4IAAAAvsjtwO9wODxRh9+pc7KHv6jEoaz8EkWdvBAXAAAAUJ2YltMkwYEBzqvt0tYDAAAATzmvwL98+XL1799fLVq0UIsWLXTTTTfpu+++q+7afB5X2wUAAICnuR343377bSUlJSk0NFQTJ07UxIkTFRISot69e2v+/PmeqNFncbVdAAAAeJrbPfzTp0/X008/rXvuuce5bOLEiZo5c6aeeOIJ/fGPf6zWAn0ZV9sFAACAp7k9wr9nzx7179+/0vKbbrpJe/furZai/AVX2wUAAICnuR34GzZsqOTk5ErLv/zySzVs2LBaivIXXG0XAAAAnuZ2S8+9996riRMnatOmTbrqqqskSStXrtS8efP0wgsvVHuBvoyr7QIAAMDT3A78d911l+Lj4/Xss8/q/ffflyS1adNGCxYs0IABA6q9QF/G1XYBAADgaW4F/pKSEv3jH//Q2LFjtWLFCk/V5De42i4AAAA8za0efpvNpqefflolJSWeqsevnHq1XQAAAKC6uX3Sbu/evbV8+XJP1OJ3uNouAAAAPM3tHv6+ffvqgQce0JYtW9S5c2eFhYW5rL/pppuqrTh/UDfCroy8YqVnFeqSuAizywEAAICPcTvwjxs3TpI0c+bMSussFotKS0svvCo/EhcZrN1pOVxtFwAAAB7hduB3OByeqMNvcbVdAAAAeJJbPfzFxcWy2WzaunWrp+rxO1xtFwAAAJ7kVuAPDAxUo0aNaNupRlxtFwAAAJ7k9iw9Dz/8sB566CEdP37cE/X4Ha62CwAAAE9yu4f/5Zdf1s8//6yEhAQ1bty40iw9GzZsqLbi/AFX2wUAAIAnuR34Bw4c6IEy/BdX2wUAAIAnuR34p06d6ok6/NapV9uNOnkhLgAAAKA6VLmH//vvvz/rybqFhYV6//33q6Uof8LVdgEAAOBJVQ78iYmJOnbsmPNxZGSk9uzZ43yckZGhESNGVG91fqJuBFNzAgAAwDOqHPgNwzjr4zMtw7nFRZb38TPCDwAAgOrl9rScZ8MJp+eHq+0CAADAU6o18OP8cLVdAAAAeIpbs/Rs375dqampksrad3bu3KmcnBxJ0tGjR6u/Oj/B1XYBAADgKW4F/t69e7v06d94442Sylp5mEP+/HG1XQAAAHhKlQP/3r17PVmHX+NquwAAAPCUKgf+xo0be7IOv8bVdgEAAOAppp60O3v2bHXo0EGRkZGKjIxUYmKili5d6lxfUFCg8ePHKzY2VuHh4RoyZIjS0tJMrNgzTr3aLgAAAFBdTA38DRo00FNPPaX169frhx9+0DXXXKMBAwZo27ZtkqR77rlHn3zyiRYuXKjly5crJSVFgwcPNrNkj+BquwAAAPAUi1HDrpYVExOjZ555RjfffLPq1Kmj+fPn6+abb5Yk7dy5U23atNHq1avVrVu30z6/sLBQhYW/nfyalZWlhg0bKjMzU5GRkV55D+fjuueWa3dajt6+7Ur1aFnb7HIAAABQg2VlZSkqKqpKGbfGzMNfWlqq9957T7m5uUpMTNT69etVXFyspKQk5zatW7dWo0aNtHr16jPuZ8aMGYqKinLeGjZs6I3yLxhX2wUAAIAnmB74t2zZovDwcNntdt15551asmSJ2rZtq9TUVAUFBSk6Otpl+7i4OOe1AE7nwQcfVGZmpvN24MABD7+D6sHVdgEAAOAJVZqlp1OnTlWeOWbDhg1uFdCqVStt2rRJmZmZWrRokUaNGqXly5e7tY+K7Ha77Hb7eT/fLFxtFwAAAJ5QpcA/cOBA5/2CggLNmjVLbdu2VWJioiRpzZo12rZtm8aNG+d2AUFBQWrRooUkqXPnzlq3bp1eeOEFDRs2TEVFRcrIyHAZ5U9LS1N8fLzbr1PTcbVdAAAAeEKVAv/UqVOd9//85z9r4sSJeuKJJyptUx3tMw6HQ4WFhercubMCAwOVnJysIUOGSJJ27dql/fv3O79o+BKutgsAAABPqPKFt8otXLhQP/zwQ6Xlt9xyi7p06aI333yzyvt68MEH1bdvXzVq1EjZ2dmaP3++vvnmG33xxReKiorSbbfdpilTpigmJkaRkZGaMGGCEhMTzzhDz8WMq+0CAADAE9wO/CEhIVq5cqVatmzpsnzlypUKDg52a1/p6em69dZbdfjwYUVFRalDhw764osvdO2110qSnnvuOVmtVg0ZMkSFhYXq06ePZs2a5W7JFwWutgsAAABPcDvwT548WXfddZc2bNigrl27SpLWrl2rN998U4888ohb+5ozZ85Z1wcHB+uVV17RK6+84m6ZF51Tr7YbdfJCXAAAAMCFcDvwP/DAA2rWrJleeOEFvf3225KkNm3aaO7cuRo6dGi1F+gvyq+2m5FXrLTsAgI/AAAAqoXbgV+Shg4dSrj3gLoRdmXkFSs9q1CXxEWYXQ4AAAB8wHldeCsjI0P/+te/9NBDD+n48eOSyubfP3ToULUW52+42i4AAACqm9sj/D/++KOSkpIUFRWlffv26c9//rNiYmK0ePFi7d+/X//+9789Uadf4Gq7AAAAqG5uj/BPmTJFo0eP1k8//eQyK88NN9ygb7/9tlqL8zdcbRcAAADVze3Av27dOv3lL3+ptLx+/fpKTU2tlqL8FVfbBQAAQHVzO/Db7XZlZWVVWr57927VqVOnWoryV1xtFwAAANXN7cB/00036fHHH1dxcbEkyWKxaP/+/br//vs1ZMiQai/Qn3C1XQAAAFQ3twP/s88+q5ycHNWtW1f5+fnq1auXWrRooYiICE2fPt0TNfqNU6+2CwAAAFwot2fpiYqK0rJly7Ry5Upt3rxZOTk5uvzyy5WUlOSJ+vwKV9sFAABAdXMr8BcXFyskJESbNm1S9+7d1b17d0/V5Ze42i4AAACqm1stPYGBgWrUqJFKS0s9VY/fqxvB1JwAAACoPm738D/88MMuV9hF9eJquwAAAKhObvfwv/zyy/r555+VkJCgxo0bKywszGX9hg0bqq04f1Qe+A+eyDe5EgAAAPgCtwP/wIEDPVAGyrWKi5Ak7UytfK0DAAAAwF1uB/6pU6d6og6c1C4hUpK0/TCBHwAAABfO7R5+eFabemWB/9djecoqKDa5GgAAAFzs3A78paWl+r//+z917dpV8fHxiomJcbnhwtQKC1JCVFkf/87D2SZXAwAAgIud24H/scce08yZMzVs2DBlZmZqypQpGjx4sKxWq6ZNm+aBEv1P24QoSdL2lEyTKwEAAMDFzu3A/8477+iNN97QvffeK5vNphEjRuhf//qXHn30Ua1Zs8YTNfqdtif7+Lel0McPAACAC+N24E9NTdWll14qSQoPD1dmZtko9I033qj//ve/1Vudn2pbjxN3AQAAUD3cDvwNGjTQ4cOHJUnNmzfX//73P0nSunXrZLfbq7c6P1U+U8/utGwVlThMrgYAAAAXM7cD/6BBg5ScnCxJmjBhgh555BG1bNlSt956q8aOHVvtBfqjBrVCFBFsU3GpoZ/Tc8wuBwAAABcxt+fhf+qpp5z3hw0bpkaNGmn16tVq2bKl+vfvX63F+SuLxaK29SK1du9xbT+c5ezpBwAAANzlduA/VWJiohITE6ujFlTQLiFKa/ce17aUTN3cuYHZ5QAAAOAi5Xbg//e//33W9bfeeut5F4PflI/qb2emHgAAAFwAtwP/pEmTXB4XFxcrLy9PQUFBCg0NJfBXk4oz9RiGIYvFYnJFAAAAuBi5fdLuiRMnXG45OTnatWuXevTooXfffdcTNfqlFnXDFRRgVXZBiQ6eyDe7HAAAAFyk3A78p9OyZUs99dRTlUb/cf6CbFa1jAuXxAW4AAAAcP6qJfBLks1mU0pKSnXtDuICXAAAALhwbvfwf/zxxy6PDcPQ4cOH9fLLL6t79+7VVhjKLsC1cL20PSXT7FIAAABwkXI78A8cONDlscViUZ06dXTNNdfo2Wefra66IKltQpQkZuoBAADA+XM78DscDk/UgdNoUy9CkpSSWaATuUWqFRZkckUAAAC42FRbDz+qX0RwoBrHhkqijx8AAADnx+0R/ilTplR525kzZ7q7e5yibb1I/XosT9tTstS9RW2zywEAAMBFxu3Av3HjRm3cuFHFxcVq1aqVJGn37t0KCAjQ5Zdf7tyOC0VVj7b1IrV0ayoj/AAAADgvbgf+/v37KyIiQm+99ZZq1aolqexiXGPGjNHVV1+te++9t9qL9Gft6pdNzbmNmXoAAABwHtzu4X/22Wc1Y8YMZ9iXpFq1aunJJ59klh4PaFuvbKaeX47kqqC41ORqAAAAcLFxO/BnZWXpyJEjlZYfOXJE2dnZ1VIUfhMXaVdMWJBKHYZ2p/H5AgAAwD1uB/5BgwZpzJgxWrx4sQ4ePKiDBw/qgw8+0G233abBgwd7oka/ZrFY1C6hvK2HPn4AAAC4x+0e/ldffVX33Xef/vjHP6q4uLhsJzabbrvtNj3zzDPVXiDKTtz97qejXIALAAAAbnM78IeGhmrWrFl65pln9Msvv0iSmjdvrrCwsGovDmXaJnDiLgAAAM7PeV94KywsTB06dFBUVJR+/fVXrsDrQW3rlQX+nanZKnUYJlcDAACAi0mVA/+bb75Z6UJad9xxh5o1a6ZLL71U7du314EDB6q9QEjN6oQrONCqvKJS/Xos1+xyAAAAcBGpcuB//fXXXabi/PzzzzV37lz9+9//1rp16xQdHa3HHnvMI0X6uwCrRa3iOXEXAAAA7qty4P/pp5/UpUsX5+OPPvpIAwYM0MiRI3X55ZfrH//4h5KTkz1SJH5r6+GKuwAAAHBHlQN/fn6+IiMjnY9XrVqlnj17Oh83a9ZMqamp1VsdnMqn5mSmHgAAALijyoG/cePGWr9+vSTp6NGj2rZtm7p37+5cn5qaqqioqOqvEJKk9vXLPtuN+0+opJQTpAEAAFA1VZ6Wc9SoURo/fry2bdumr776Sq1bt1bnzp2d61etWqX27dt7pEhIl9aPUnRooDLyirVhf4a6No0xuyQAAABcBKo8wv+3v/1Nt99+uxYvXqzg4GAtXLjQZf3KlSs1YsSIai8QZQKsFv3ukjqSpK92pptcDQAAAC4WFsMwfHpi96ysLEVFRSkzM9PlHISL0UebDmnSe5t0SVy4/ndPL7PLAQAAgEncybjnfeEteF+vS+oowGrR7rQcHTyRZ3Y5AAAAuAgQ+C8i0aFB6tyo7FoIX9PWAwAAgCog8F9kft+6riQpmcAPAACAKiDwX2SuORn4V/9yTPlFpSZXAwAAgJqOwH+RuSQuXPWjQ1RY4tCqX46aXQ4AAABquCrPw1+utLRU8+bNU3JystLT0+VwuF4E6quvvqq24lCZxWLRNa3r6j9rftVXO9PVu02c2SUBAACgBnM78E+aNEnz5s1Tv3791L59e1ksFk/UhbOoGPgNw+AYAAAA4IzcDvzvvfee3n//fd1www2eqAdVkNg8VsGBVh3OLNDO1Gy1qXdxX18AAAAAnuN2D39QUJBatGjhiVpQRcGBAerevLYkrroLAACAs3M78N9777164YUX5OMX6K3xyqfnJPADAADgbNxu6VmxYoW+/vprLV26VO3atVNgYKDL+sWLF1dbcTiz8sC/cf8JncgtUq2wIJMrAgAAQE3kduCPjo7WoEGDPFEL3FA/OkSt4yO0MzVby3cf0cBO9c0uCQAAADWQ24F/7ty5nqgD5+Ga1nW1MzVbyTvTCfwAAAA4LVMvvDVjxgxdccUVioiIUN26dTVw4EDt2rXLZZuCggKNHz9esbGxCg8P15AhQ5SWlmZSxTVL+VV3l+9KV0mp4xxbAwAAwB+dV+BftGiRhg4dqm7duunyyy93ublj+fLlGj9+vNasWaNly5apuLhY1113nXJzc53b3HPPPfrkk0+0cOFCLV++XCkpKRo8ePD5lO1zOjWqpejQQGUVlGjD/gyzywEAAEAN5Hbgf/HFFzVmzBjFxcVp48aN6tq1q2JjY7Vnzx717dvXrX19/vnnGj16tNq1a6eOHTtq3rx52r9/v9avXy9JyszM1Jw5czRz5kxdc8016ty5s+bOnatVq1ZpzZo1p91nYWGhsrKyXG6+KsBq0e8uqSOJ2XoAAABwem4H/lmzZun111/XSy+9pKCgIP3tb3/TsmXLNHHiRGVmZl5QMeXPj4mJkSStX79excXFSkpKcm7TunVrNWrUSKtXrz7tPmbMmKGoqCjnrWHDhhdUU0332/SctDkBAACgMrcD//79+3XVVVdJkkJCQpSdnS1J+tOf/qR33333vAtxOByaPHmyunfvrvbt20uSUlNTFRQUpOjoaJdt4+LilJqaetr9PPjgg8rMzHTeDhw4cN41XQx6XVJHVou0Oy1HB47nmV0OAAAAahi3A398fLyOHz8uSWrUqJGztWbv3r0XdDGu8ePHa+vWrXrvvffOex+SZLfbFRkZ6XLzZdGhQeratOwvIh9vTjG5GgAAANQ0bgf+a665Rh9//LEkacyYMbrnnnt07bXXatiwYec9P//dd9+tTz/9VF9//bUaNGjgXB4fH6+ioiJlZGS4bJ+Wlqb4+Pjzei1fNOTyss9s4Q8HuAIyAAAAXLg9D//rr78uh6NsCsjy6TJXrVqlm266SX/5y1/c2pdhGJowYYKWLFmib775Rk2bNnVZ37lzZwUGBio5OVlDhgyRJO3atUv79+9XYmKiu6X7rBsuraepH2/TvmN5+uHXE7qiSYzZJQEAAKCGsBgmDgmPGzdO8+fP10cffaRWrVo5l0dFRSkkJESSdNddd+mzzz7TvHnzFBkZqQkTJkiSVq1aVaXXyMrKUlRUlDIzM326veevCzdr4fqD+kPnBnrmDx3NLgcAAAAe5E7GPa95+L/77jvdcsstSkxM1KFDhyRJ//nPf7RixQq39jN79mxlZmbqd7/7nerVq+e8LViwwLnNc889pxtvvFFDhgxRz549FR8fr8WLF59P2T5t6BVlsxH9d8th5RaWmFwNAAAAagq3A/8HH3ygPn36KCQkRBs3blRhYaGksik1//GPf7i1L8MwTnsbPXq0c5vg4GC98sorOn78uHJzc7V48WL690+jS+Naalo7THlFpfpsy2GzywEAAEAN4Xbgf/LJJ/Xqq6/qjTfeUGBgoHN59+7dtWHDhmotDlVnsVh0c+fyk3cPmlwNAAAAagq3A/+uXbvUs2fPSsujoqIqzaYD7xpyeQNZLdL3+45r79Fcs8sBAABADXBe8/D//PPPlZavWLFCzZo1q5aicH7io4J1dcs6kqRF6337gmMAAACoGrcD/+23365JkyZp7dq1slgsSklJ0TvvvKP77rtPd911lydqhBuGdik7efeD9YdU6mBOfgAAAH/n9jz8DzzwgBwOh3r37q28vDz17NlTdrtd9913n3PKTJgnqW1dRYcGKjWrQCt+Pqpel9QxuyQAAACYyO0RfovFoocffljHjx/X1q1btWbNGh05ckRPPPGEJ+qDm+y2AA28rL4k6f0faOsBAADwd+c1D78kBQUFqW3bturatavCw8OrsyZcoPLZepZtS1NGXpHJ1QAAAMBMVW7pGTt2bJW2e/PNN8+7GFSP9vWj1KZepHYcztLHm1N0a2ITs0sCAACASao8wj9v3jx9/fXXysjI0IkTJ854Q80wtEvZKD9tPQAAAP6tyiP8d911l959913t3btXY8aM0S233KKYmBhP1oYLMOCy+vrHZzu09VCWtqdkqW1CpNklAQAAwARVHuF/5ZVXdPjwYf3tb3/TJ598ooYNG2ro0KH64osvZBhM/1jTxIQF6dq2cZIY5QcAAPBnbp20a7fbNWLECC1btkzbt29Xu3btNG7cODVp0kQ5OTmeqhHnadgVjSRJH6w/qJzCEpOrAQAAgBnOe5Yeq9Uqi8UiwzBUWlpanTWhmlzdoraa1Q5TdmGJPlh/0OxyAAAAYAK3An9hYaHeffddXXvttbrkkku0ZcsWvfzyy9q/fz9Tc9ZAVqtFo7s3kSTNW7VPDq68CwAA4HeqHPjHjRunevXq6amnntKNN96oAwcOaOHChbrhhhtktZ73HwrgYUMub6AIu017j+Zq+U9HzC4HAAAAXmYxqnjGrdVqVaNGjdSpUydZLJYzbrd48eJqK646ZGVlKSoqSpmZmYqM9M+Zap74dLvmrNirnpfU0b/HdjW7HAAAAFwgdzJulaflvPXWW88a9FFzjUpsojdX7tW3u4/o5/QctahL+xUAAIC/qHLgnzdvngfLgCc1ig1VUps4Lduepnmr9urJgZeaXRIAAAC8hOZ7PzHm5Mm7H6w/pMz8YnOLAQAAgNcQ+P1EYrNYtYqLUH5xqd5fx4W4AAAA/AWB309YLBbnKP9bq/eplCk6AQAA/AKB348M7FRftUIDdfBEvpZtTzO7HAAAAHgBgd+PBAcGaETXRpKkeav2mlwNAAAAvIHA72du6dZYAVaL1uw5rh2Hs8wuBwAAAB5G4PczCdEhur59vCRp7kpG+QEAAHwdgd8PjT158u6Hm1J0ODPf3GIAAADgUQR+P3R5o1rq2iRGRSUO/d8Xu80uBwAAAB5E4PdDFotFD/VrI0lavPGgth7KNLkiAAAAeAqB309d1jBaN3VMkGFI0/+7Q4bBvPwAAAC+iMDvx/52fSsF2axaveeYvtyRbnY5AAAA8AACvx9rUCtUt/VoKkma8dkOFZc6TK4IAAAA1Y3A7+fG/a65YsOCtOdoruav3W92OQAAAKhmBH4/FxEcqMnXXiJJev7L3crMLza5IgAAAFQnAj804oqGalE3XCfyijXr65/NLgcAAADViMAP2QKseviGsmk6567cpwPH80yuCAAAANWFwA9J0u9a1VGPFrVVVOrQU5/vNLscAAAAVBMCPySdvBjXDW1ksUj//fGw1v963OySAAAAUA0I/HBqmxCpoZ0bSpIeXrKVaToBAAB8AIEfLu7v21oxYUHamZqt17/dY3Y5AAAAuEAEfriICQvSIzeWncD7QvJP2ns01+SKAAAAcCEI/Khk4GX1dXXL2ioqceihxVtkGIbZJQEAAOA8EfhRicVi0fSBlyo40KrVe45p4Q8HzS4JAAAA54nAj9NqFBuqKSevwDv9sx06kl1ockUAAAA4HwR+nNHY7k3Vvn6kMvOL9dgn28wuBwAAAOeBwI8zsgVY9dTgDgqwWvTpj4f11c40s0sCAACAmwj8OKv29aN0W4+mkqS/L9mqnMISkysCAACAOwj8OKfJSS3VMCZEKZkF+r8vdpldDgAAANxA4Mc5hQbZNH3gpZKkeav2adXPR02uCAAAAFVF4EeV9LykjkZ0bSRJunfhZmXmFZtcEQAAAKqCwI8q+3u/NmoSG6rDmQV65KOtZpcDAACAKiDwo8rC7DY9N+wyBVgt+nhzij7adMjskgAAAHAOBH64pVOjWppwTQtJ0t8/3KpDGfkmVwQAAICzIfDDbXf/voUuaxit7IIS3ff+ZjkchtklAQAA4AwI/HCbLcCq54ZdppDAAK3ec0xzVuw1uyQAAACcAYEf56Vp7TA9cmNbSdIzX+zSjsNZJlcEAACA0yHw47yN6NpQSW3qqqjUoXsWbFJBcanZJQEAAOAUBH6cN4vFoqeGdFDt8CDtTM3WQ4u3yDDo5wcAAKhJCPy4ILXD7XpheCcFWC1avPGQXv92j9klAQAAoAICPy5Y9xa19ejJfv6nPt+p5B1pJlcEAACAcgR+VItbExvrj1c2kmFIk97bpN1p2WaXBAAAABH4UU0sFoseu6mdrmwao5zCEv35rR90IrfI7LIAAAD8HoEf1SYwwKrZt3RWw5gQ7T+ep3HvbFBxqcPssgAAAPwagR/VKiYsSP+69QqFBZVdlOuxT7aZXRIAAIBfMzXwf/vtt+rfv78SEhJksVj04Ycfuqw3DEOPPvqo6tWrp5CQECUlJemnn34yp1hUWav4CL0wvJMsFuntNfv11qp9ZpcEAADgt0wN/Lm5uerYsaNeeeWV065/+umn9eKLL+rVV1/V2rVrFRYWpj59+qigoMDLlcJdSW3j9Nc+rSRJ0z7Zps+2HDa5IgAAAP9kM/PF+/btq759+552nWEYev755/X3v/9dAwYMkCT9+9//VlxcnD788EMNHz7cm6XiPNzVq7kOnsjX/LX7Nfm9TYoOCdRVLWqbXRYAAIBfqbE9/Hv37lVqaqqSkpKcy6KionTllVdq9erVZ3xeYWGhsrKyXG4wh8Vi0RMD2qtv+3gVlTp0x3/Wa+uhTLPLAgAA8Cs1NvCnpqZKkuLi4lyWx8XFOdedzowZMxQVFeW8NWzY0KN14uwCrBY9P/wyJTaLVU5hiUbP/V77juaaXRYAAIDfqLGB/3w9+OCDyszMdN4OHDhgdkl+z24L0Ou3dla7hEgdzSnSrW9+r/RszsMAAADwhhob+OPj4yVJaWlpLsvT0tKc607HbrcrMjLS5QbzRQQHat6YrmocG6r9x/M06s11yiooNrssAAAAn1djA3/Tpk0VHx+v5ORk57KsrCytXbtWiYmJJlaG81Unwq7/jL1StcPt2nE4S7e/9YMKikvNLgsAAMCnmRr4c3JytGnTJm3atElS2Ym6mzZt0v79+2WxWDR58mQ9+eST+vjjj7VlyxbdeuutSkhI0MCBA80sGxegUWyo3hp7hSLsNq3de1x3/Gc9oR8AAMCDLIZhGGa9+DfffKPf//73lZaPGjVK8+bNk2EYmjp1ql5//XVlZGSoR48emjVrli655JIqv0ZWVpaioqKUmZlJe08Nsm7fcY1683vlFZUqqU1dzRrZWUG2GvsHJwAAgBrFnYxrauD3BgJ/zbXql6MaM3edCksc6ts+Xi+N6CRbAKEfAADgXNzJuKQrmOaq5rX1+q1dFBRg1dKtqZry/maVOnz6+ycAAIDXEfhhql6X1NGskZfLZrXo480puv+DH+Ug9AMAAFQbAj9Ml9Q2Ti+N6KQAq0WL1h/Uwx9ulY93mgEAAHgNgR81Qt9L62nm0I6yWKR3v9+v+xb+qKISh9llAQAAXPQI/KgxBlxWX8/c3FFWi/TBhoMaPfd7ZeZzcS4AAIALQeBHjXJz5waaM/oKhQUFaNUvx3Tz7FU6eCLP7LIAAAAuWgR+1Di/b1VX79+ZqLhIu35Kz9GgWav048EMs8sCAAC4KBH4USO1S4jSh+O7q3V8hI5kF2rYa2v05fY0s8sCAAC46BD4UWPViwrRwjsTdXXL2sovLtUd//lBb67Yyww+AAAAbiDwo0aLCA7Um6Ov0PArGsphSI9/ul1T3t+s/KJSs0sDAAC4KBD4UeMFBlg1Y/CleviGNgqwWrRk4yENmrVSvx7LNbs0AACAGo/Aj4uCxWLR7T2b6e3brlTt8CDtTM3WjS+tUPIO+voBAADOhsCPi0pi81h9MqGHOjWKVnZBiW576wfNXLZbDgd9/QAAAKdD4MdFp15UiBbckahbExtLkl5M/klj31qnYzmFJlcGAABQ8xD4cVEKsln1+ID2evYPHWW3WfXNriO6/oXv9M2udLNLAwAAqFEI/LioDencQEvGdVfLuuE6kl2o0XPXaepHW1VQzCw+AAAAEoEfPqBtQqQ+mdBDo69qIkl6a/WvuvGlFdqWkmluYQAAADUAgR8+ITgwQNNuaqd5Y65QnQi7fk7P0cBXVuq15b9wQi8AAPBrBH74lN+1qqsvJvfUdW3jVFxqaMbSnRr++hrtO8qc/QAAwD8R+OFzYsKC9NqfOuufQy5VaFCAvt93XNe/8K3mrtzLaD8AAPA7BH74JIvFomFXNNIXk3vqquaxKih26LFPtjPaDwAA/A6BHz6tYUyo3r7tSj05sL3CKoz2z1nBaD8AAPAPBH74PKvVolu6Ndbnk3uqe4uy0f4nPt2uoa+t1u60bLPLAwAA8CgCP/xG+Wj/9EFlo/0//HpCN7zwnf75+U7lFzFvPwAA8E0EfvgVi8WikVc21v+m9NJ1beNU4jA0+5tfdO1zy/XVzjSzywMAAKh2BH74pfrRIXr91i5649YuSogK1sET+Ro77wfd+Z/1OpyZb3Z5AAAA1YbAD792bds4LZvSS3/p2UwBVos+35aqpGeX6/kvdyuroNjs8gAAAC6YxTAMn56qJCsrS1FRUcrMzFRkZKTZ5aAG23E4Sw8v2aIN+zMkSZHBNt1+dTON7t5EEcGB5hYHAABQgTsZl8APVOBwGPps62G98OVP+ik9R5IUHRqo269uplFXNVG43WZyhQAAAAR+FwR+nI9Sh6FPf0zRC8k/ac+Rsgt11QoN1O09m+mWbo0VyYg/AAAwEYG/AgI/LkSpw9Anm8uC/96TV+iNsNv0p8TGGtO9qepE2E2uEAAA+CMCfwUEflSHklKHPt6cotnf/OJs9bHbrBrapaHu6NlMDWNCTa4QAAD4EwJ/BQR+VCeHw1DyznTN+uZnbTx5cm+A1aL+Herp9p7N1C4hytwCAQCAXyDwV0DghycYhqG1e49r1je/6NvdR5zLE5vF6vaeTfW7S+rKarWYWCEAAPBlBP4KCPzwtK2HMvX6t3v03y2HVeoo++fUvE6Y/nx1Mw3qVF/BgQEmVwgAAHwNgb8CAj+85VBGvuat3Kv3vj+g7MISSVJsWJBu7tJAAy+rrzb1+P0DAADVg8BfAYEf3pZdUKwF6w5o7sp9OpSR71zeOj5CAy6rrwGXJSghOsTECgEAwMWOwF8BgR9mKSl16MsdaVqy8ZC+3nlERaUOSZLFInVtEqOBneqrT7t4xYQFmVwpAAC42BD4KyDwoybIzCvWZ1sP68ONh7R273Hn8gCrRd2axahv+3rq0y6eef0BAECVEPgrIPCjpjmUka+PN6Xov1tStPVQlnO5xSJd0SRGN7SPV5/28aoXRdsPAAA4PQJ/BQR+1GT7j+Xp822H9dmWVG06kOGyrkODKPVpF6/r2sapRd1wWSxM8wkAAMoQ+Csg8ONicSgjX59vTdXnWw/rh19PqOK/zKa1w3Rd2zhd2zZOlzWMli3Aal6hAADAdAT+Cgj8uBgdyS5U8o40fbEtVSt/PuY84VeSokICdXXL2vp9q7rq1aqOaofT9w8AgL8h8FdA4MfFLqewRN/sStf/tqVp+e4jyswvdlnfoUGUfndJHSU2r61OjaK50BcAAH6AwF8BgR++pKTUoc0HM/T1ziP6ele6tqVkuawPsll1eaNodWsWq8RmsbqsUbTsNr4AAADgawj8FRD44cvSswr0ze4j+u6no1qz55iOZBe6rLfbrOrYIFqdGkfr8ka11KlRtOpGBJtULQAAqC4E/goI/PAXhmFoz9FcrdlzTKt/OaY1e47raE5hpe0a1Apxhv/LGkarTb1I2oAAALjIEPgrIPDDXxmGoV+O5GrD/hPauP+ENu7P0K60bJ36Lz4wwKK29SLVsWG0OjaI1mWNotU0NkxWK9OAAgBQUxH4KyDwA7/JLijW5gOZ2rD/hDYdyNCmAxk6nltUabvQoAC1jo9Qm3qRapsQqTb1ItU6PkKhQTYTqgYAAKci8FdA4AfOzDAMHTyR7wz/mw9kaMuhTBWWOCpta7FIjWNC1bxOuJrXDVfzOmFqVidczeuEKyYsyITqAQDwXwT+Cgj8gHtKSh3adyxX21KytONwtrYfztKOw1mVTgiuqFZooJrUDlOT2DA1jg1Vk9iwk49DFR3KlwEAAKobgb8CAj9QPY5kF+qn9Gz9ciRXe47k6JcjufolPUeHMvLP+ryIYJsa1gpVw5gQNagVqoa1QtQwJlQNY0JVPzpEYXbahAAAcBeBvwICP+BZ+UWl2ns0V78ey9W+Y3nadzRX+47l6tdjeUrNKjjn82PCgtSgVsjJW6ga1ApRvagQ1YsKVr2oYMWEBcli4QRiAAAqcifjMrQG4IKEBAWobULZyb2nyi8q1cETeTpwIk8HjufrwPGy+wdPlN3PKijR8dwiHc8t0o8HM0+7/yCbVfWighUfGaz4qGDVCberTkTZrW5EsPN+dEggMwsBAHAaBH4AHhMSFKCWcRFqGRdx2vWZ+cU6dCJfB09+CTh48v7hzAIdzizQ0ZxCFZU49OuxPP16LO+srxVgtSg2LEi1w+2qHWFX7fCT90/+jK1wPyYsSIEBVk+8ZQAAahwCPwDTRIUEKiok8LR/HZCkohKH0rIKTn4ByFd6VqGO5BTqSHbZLT27QEeyC3Uir1ilDkPp2YVKzy6UDp/7tSODbYoODVJUSKCiQwMVGRKo6JP1RIUEKiI4UJEhNkUGl62LDLYpIjhQ4XabggOttBkBAC4aBH4ANVaQzeo8wfdsikocOp5bpKM5ZV8IjmYX6mhO2eNjOYU6llukI9llP4/nFqnUYSiroERZBSXnVVeA1aJwu+23W7BNoUEBCrfbFBpkU7g9QKEn14UFBSj85BeF8m3L74cEBigkKEBBNv7aAADwHAI/gItekM2q+KiyHv9zcTgMZeQX63huoTLzi5WRV6zM/GKX+1kFxcrKLzn5s1jZBSXKyi9WTlGJDEMqdRjO51QHm9XiDP+hQQEKDgyQPTBAIYFWBQcGKCSwbFnwycfBgQEKtgUoJMjqvG8PtMpuK9um4s8gm1V2m1VBNquCAqwKLP8ZYOGvFADgJwj8APyK1WpRTFjQeV0szOEwlFdcqpyCEuUUlt1yC0uUXVCivKKy+zmFpcor+m1dbmGpsk/eL39edkGxcotKVeoomyStxGEou7BE2YXn9xeH81X+JcDlp82qwACrggIssp38YhAYULbMZi27bwuwyGYtWxdQvsxqUUCARYFWqwKsFtmsZc+3WS2ynnxcvtxaYX1g+XYnn2s7uU+rpexngMUiq1XO5wZYrS77Cqhws5187bLniy80AHASgR8AqshaoZWnOhSVOJRfVKr84rIvCfnFpcovKlVBsUP5xaUqKC5bV3jyZ0GxQwXFv60vLC5VQUnZcwpLHCosKVtf/rOg2KGiklIVlxoqKnU4v2BUfP2iEod05muqXdTKv1xYLSr74mCp8Nha9heO8nUWy29fFKwWi3Typ0Unf578AnHqc62W375c/Pa4bHtrhWUu661l21fcd/lrWcpfSzr5s/y1JanyOp2876xRJ1/HatG5vu9UfH+/vYezP6/8tSXXL1QutZ7y2OX5lvKq5bLOcso2Z1x/jjd16r4tOsf2zu1c38dpC3PZznK61TrTPOfOz+QMn0tVnelL7Nl2d6bXOtdnU1XGyXdtGL+9/6rM+H7qZ1iVY3a691LxpYwzHoHK+z7z53KW559hZUyYXV2bxpz1tc1G4AcAk5SPqEcp0CuvV+owVFxa9sWgqMSholKHM/RXXF5c6lCJw6GiEsN5v7jEULHDoZLS8mWGSpw/y9aVlhplj53bGXIYZcscJ5eXOqRSR4XnlTpUXL6vk/txOAyVGoYcjrKaSw1Dxsn9lJ68Vbx/JiUOQzrLegCoDlc1j9X827uZXcZZEfgBwE+UtbuUnQPgKyp+ESj/clH+xaN8WanDKDv3wih7XPELhcOovM6Qfvt5ctiy7LuD4dy+7L6czznd+tKT+zAqbmucfOzcf9njspcpX192v3zk8rf1ruuMspXO5Q7DteZSh3HGEcny55fXW15j6VlGZstWVRjNLa9PlevTaUZ7DVV8TuV1rncqj9aeqbQzjfCebZDZqLSNccrjyqP1hmG4PK/iezjTaPVvn0vFUfCyz8vdUf6qvP9K684w4l3dl1w9dXT+XO/tQo7ZaVec+Y8yp3/+ebz/s/314JIzTD1dkxD4AQAXLYvFcvI8A7MrAYCai7ngAAAAAB92UQT+V155RU2aNFFwcLCuvPJKff/992aXBAAAAFwUanzgX7BggaZMmaKpU6dqw4YN6tixo/r06aP09HSzSwMAAABqvBof+GfOnKnbb79dY8aMUdu2bfXqq68qNDRUb775ptmlAQAAADVejQ78RUVFWr9+vZKSkpzLrFarkpKStHr16tM+p7CwUFlZWS43AAAAwF/V6MB/9OhRlZaWKi4uzmV5XFycUlNTT/ucGTNmKCoqynlr2LChN0oFAAAAaqQaHfjPx4MPPqjMzEzn7cCBA2aXBAAAAJimRs/DX7t2bQUEBCgtLc1leVpamuLj40/7HLvdLrvd7o3yAAAAgBqvRo/wBwUFqXPnzkpOTnYuczgcSk5OVmJioomVAQAAABeHGj3CL0lTpkzRqFGj1KVLF3Xt2lXPP/+8cnNzNWbMGLNLAwAAAGq8Gh/4hw0bpiNHjujRRx9VamqqLrvsMn3++eeVTuQFAAAAUJnFMAzD7CI8KSsrS1FRUcrMzFRkZKTZ5QAAAAAXzJ2MW6N7+AEAAABcGAI/AAAA4MMI/AAAAIAPI/ADAAAAPozADwAAAPgwAj8AAADgw2r8PPwXqnzW0aysLJMrAQAAAKpHebatygz7Ph/4s7OzJUkNGzY0uRIAAACgemVnZysqKuqs2/j8hbccDodSUlIUEREhi8Xi9dfPyspSw4YNdeDAAS785Yc4/v6N4+/fOP7+jePv37xx/A3DUHZ2thISEmS1nr1L3+dH+K1Wqxo0aGB2GYqMjOQfvB/j+Ps3jr9/4/j7N46/f/P08T/XyH45TtoFAAAAfBiBHwAAAPBhBH4Ps9vtmjp1qux2u9mlwAQcf//G8fdvHH//xvH3bzXt+Pv8SbsAAACAP2OEHwAAAPBhBH4AAADAhxH4AQAAAB9G4AcAAAB8GIHfg1555RU1adJEwcHBuvLKK/X999+bXRI8YMaMGbriiisUERGhunXrauDAgdq1a5fLNgUFBRo/frxiY2MVHh6uIUOGKC0tzaSK4UlPPfWULBaLJk+e7FzG8fdthw4d0i233KLY2FiFhITo0ksv1Q8//OBcbxiGHn30UdWrV08hISFKSkrSTz/9ZGLFqC6lpaV65JFH1LRpU4WEhKh58+Z64oknVHE+FI6/7/j222/Vv39/JSQkyGKx6MMPP3RZX5Vjffz4cY0cOVKRkZGKjo7WbbfdppycHI/XTuD3kAULFmjKlCmaOnWqNmzYoI4dO6pPnz5KT083uzRUs+XLl2v8+PFas2aNli1bpuLiYl133XXKzc11bnPPPffok08+0cKFC7V8+XKlpKRo8ODBJlYNT1i3bp1ee+01dejQwWU5x993nThxQt27d1dgYKCWLl2q7du369lnn1WtWrWc2zz99NN68cUX9eqrr2rt2rUKCwtTnz59VFBQYGLlqA7//Oc/NXv2bL388svasWOH/vnPf+rpp5/WSy+95NyG4+87cnNz1bFjR73yyiunXV+VYz1y5Eht27ZNy5Yt06effqpvv/1Wd9xxh+eLN+ARXbt2NcaPH+98XFpaaiQkJBgzZswwsSp4Q3p6uiHJWL58uWEYhpGRkWEEBgYaCxcudG6zY8cOQ5KxevVqs8pENcvOzjZatmxpLFu2zOjVq5cxadIkwzA4/r7u/vvvN3r06HHG9Q6Hw4iPjzeeeeYZ57KMjAzDbrcb7777rjdKhAf169fPGDt2rMuywYMHGyNHjjQMg+PvyyQZS5YscT6uyrHevn27IclYt26dc5ulS5caFovFOHTokEfrZYTfA4qKirR+/XolJSU5l1mtViUlJWn16tUmVgZvyMzMlCTFxMRIktavX6/i4mKX34fWrVurUaNG/D74kPHjx6tfv34ux1ni+Pu6jz/+WF26dNEf/vAH1a1bV506ddIbb7zhXL93716lpqa6HP+oqChdeeWVHH8fcNVVVyk5OVm7d++WJG3evFkrVqxQ3759JXH8/UlVjvXq1asVHR2tLl26OLdJSkqS1WrV2rVrPVqfzaN791NHjx5VaWmp4uLiXJbHxcVp586dJlUFb3A4HJo8ebK6d++u9u3bS5JSU1MVFBSk6Ohol23j4uKUmppqQpWobu+99542bNigdevWVVrH8fdte/bs0ezZszVlyhQ99NBDWrdunSZOnKigoCCNGjXKeYxP9/8Bx//i98ADDygrK0utW7dWQECASktLNX36dI0cOVKSOP5+pCrHOjU1VXXr1nVZb7PZFBMT4/HfBwI/UI3Gjx+vrVu3asWKFWaXAi85cOCAJk2apGXLlik4ONjscuBlDodDXbp00T/+8Q9JUqdOnbR161a9+uqrGjVqlMnVwdPef/99vfPOO5o/f77atWunTZs2afLkyUpISOD4o0ahpccDateurYCAgEqzcKSlpSk+Pt6kquBpd999tz799FN9/fXXatCggXN5fHy8ioqKlJGR4bI9vw++Yf369UpPT9fll18um80mm82m5cuX68UXX5TNZlNcXBzH34fVq1dPbdu2dVnWpk0b7d+/X5Kcx5j/D3zTX//6Vz3wwAMaPny4Lr30Uv3pT3/SPffcoxkzZkji+PuTqhzr+Pj4SpO3lJSU6Pjx4x7/fSDwe0BQUJA6d+6s5ORk5zKHw6Hk5GQlJiaaWBk8wTAM3X333VqyZIm++uorNW3a1GV9586dFRgY6PL7sGvXLu3fv5/fBx/Qu3dvbdmyRZs2bXLeunTpopEjRzrvc/x9V/fu3StNw7t79241btxYktS0aVPFx8e7HP+srCytXbuW4+8D8vLyZLW6RqmAgAA5HA5JHH9/UpVjnZiYqIyMDK1fv965zVdffSWHw6Err7zSswV69JRgP/bee+8ZdrvdmDdvnrF9+3bjjjvuMKKjo43U1FSzS0M1u+uuu4yoqCjjm2++MQ4fPuy85eXlObe58847jUaNGhlfffWV8cMPPxiJiYlGYmKiiVXDkyrO0mMYHH9f9v333xs2m82YPn268dNPPxnvvPOOERoaarz99tvObZ566ikjOjra+Oijj4wff/zRGDBggNG0aVMjPz/fxMpRHUaNGmXUr1/f+PTTT429e/caixcvNmrXrm387W9/c27D8fcd2dnZxsaNG42NGzcakoyZM2caGzduNH799VfDMKp2rK+//nqjU6dOxtq1a40VK1YYLVu2NEaMGOHx2gn8HvTSSy8ZjRo1MoKCgoyuXbsaa9asMbskeICk097mzp3r3CY/P98YN26cUatWLSM0NNQYNGiQcfjwYfOKhkedGvg5/r7tk08+Mdq3b2/Y7XajdevWxuuvv+6y3uFwGI888ogRFxdn2O12o3fv3sauXbtMqhbVKSsry5g0aZLRqFEjIzg42GjWrJnx8MMPG4WFhc5tOP6+4+uvvz7t//ejRo0yDKNqx/rYsWPGiBEjjPDwcCMyMtIYM2aMkZ2d7fHaLYZR4XJwAAAAAHwKPfwAAACADyPwAwAAAD6MwA8AAAD4MAI/AAAA4MMI/AAAAIAPI/ADAAAAPozADwAAAPgwAj8AAADgwwj8AADTWSwWffjhh2aXAQA+icAPAH5u9OjRslgslW7XX3+92aUBAKqBzewCAADmu/766zV37lyXZXa73aRqAADViRF+AIDsdrvi4+NdbrVq1ZJU1m4ze/Zs9e3bVyEhIWrWrJkWLVrk8vwtW7bommuuUUhIiGJjY3XHHXcoJyfHZZs333xT7dq1k91uV7169XT33Xe7rD969KgGDRqk0NBQtWzZUh9//LFn3zQA+AkCPwDgnB555BENGTJEmzdv1siRIzV8+HDt2LFDkpSbm6s+ffqoVq1aWrdunRYuXKgvv/zSJdDPnj1b48eP1x133KEtW7bo448/VosWLVxe47HHHtPQoUP1448/6oYbbtDIkSN1/Phxr75PAPBFFsMwDLOLAACYZ/To0Xr77bcVHBzssvyhhx7SQw89JIvFojvvvFOzZ892ruvWrZsuv/xyzZo1S2+88Ybuv/9+HThwQGFhYZKkzz77TP3791dKSori4uJUv359jRkzRk8++eRpa7BYLPr73/+uJ554QlLZl4jw8HAtXbqUcwkA4ALRww8A0O9//3uXQC9JMTExzvuJiYku6xITE7Vp0yZJ0o4dO9SxY0dn2Jek7t27y+FwaNeuXbJYLEpJSVHv3r3PWkOHDh2c98PCwhQZGan09PTzfUsAgJMI/AAAhYWFVWqxqS4hISFV2i4wMNDlscVikcPh8ERJAOBX6OEHAJzTmjVrKj1u06aNJKlNmzbavHmzcnNznetXrlwpq9WqVq1aKSIiQk2aNFFycrJXawYAlGGEHwCgwsJCpaamuiyz2WyqXbu2JGnhwoXq0qWLevTooXfeeUfff/+95syZI0kaOXKkpk6dqlGjRmnatGk6cuSIJkyYoD/96U+Ki4uTJE2bNk133nmn6tatq759+yo7O1srV67UhAkTvPtGAcAPEfgBAPr8889Vr149l2WtWrXSzp07JZXNoPPee+9p3Lhxqlevnt599121bdtWkhQaGqovvvhCkyZN0hVXXKHQ0FANGTJEM2fOdO5r1KhRKigo0HPPPaf77rtPtWvX1s033+y9NwgAfoxZegAAZ2WxWLRkyRINHDjQ7FIAAOeBHn4AAADAhxH4AQAAAB9GDz8A4Kzo/ASAixsj/AAAAIAPI/ADAAAAPozADwAAAPgwAj8AAADgwwj8AAAAgA8j8AMAAAA+jMAPAAAA+DACPwAAAODD/h85bAQMaF1NqwAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Set training parameters\n",
"epochs = 100\n",
"learning_rate = 0.01\n",
"losses = []\n",
"\n",
"# Format training loop\n",
"for epoch in range(epochs):\n",
" for x_batch, y_batch in dataset:\n",
" with tf.GradientTape() as tape:\n",
" batch_loss = mse_loss(quad_model(x_batch), y_batch)\n",
" # Update parameters with respect to the gradient calculations\n",
" grads = tape.gradient(batch_loss, quad_model.variables)\n",
" for g,v in zip(grads, quad_model.variables):\n",
" v.assign_sub(learning_rate*g)\n",
" # Keep track of model loss per epoch\n",
" loss = mse_loss(quad_model(x), y)\n",
" losses.append(loss)\n",
" if epoch % 10 == 0:\n",
" print(f'Mean squared error for step {epoch}: {loss.numpy():0.3f}')\n",
"\n",
"# Plot model results\n",
"print(\"\\n\")\n",
"plt.plot(range(epochs), losses)\n",
"plt.xlabel(\"Epoch\")\n",
"plt.ylabel(\"Mean Squared Error (MSE)\")\n",
"plt.title('MSE loss vs training iterations');"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "dW5B2TTRsvxE"
},
"source": [
"Now, observe your model's performance after training:"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:39.875984Z",
"iopub.status.busy": "2024-10-03T01:24:39.875734Z",
"iopub.status.idle": "2024-10-03T01:24:40.077259Z",
"shell.execute_reply": "2024-10-03T01:24:40.076532Z"
},
"id": "Qcvzyg3eYLh8"
},
"outputs": [
{
"data": {
"image/png": "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gnURkSaYM2cObdq04dlnn6313Lx58/jggw+YPXt2vYF0fV1KunbtCrjaII4ePdpzA27gmA1ZtGgReXl5zJs3jxEjRlQ/npGR4cmhNVmbNm2IjIxk06ZNtZ6r6zERkUCjYF1EpJFKSkqYN28e559/Puedd16t59u3b89bb73FRx99xMSJE+vcR3R0NODKXB+sTZs2jBw5khdeeIEbbriB1NTUGs/v3r27yV1OYmJi6jxmQ6oy2wdnssvLy3nuueeaNAZPs9lsjB49mvnz57Nz587quvVNmzbx+eef+3l0IiLNp2BdRKSRPvroIwoKCjj77LPrfH7IkCHVCyTVF6xHRUVx5JFHMnfuXHr06EFSUhJ9+vShT58+PPvssxx//PH07duXyZMn07VrV3bt2sWyZcvYvn07q1atatK4u3XrRmJiIrNnzyYuLo6YmBgGDx7cYM37sGHDaNWqFZdeeik33ngjhmHw3//+11JlKNOmTeN///sfw4cP55prrsHhcPDMM8/Qp08ffv31V38PT0SkWTTBVESkkebMmUNkZCSnnHJKnc+HhIRwxhln8MUXX5CXl1fvfl566SU6dOjAzTffzIUXXsh7770HwJFHHslPP/3EGWecwauvvsp1113H7NmzCQkJ4d57723yuMPCwnjttdew2WxcffXVXHjhhXz77bcNvqZ169Z88sknpKam8s9//pNZs2ZxyimnMHPmzCaPw9MGDBjA559/TqtWrbjnnnv4z3/+wwMPPMDJJ5+sVVFFJOAZppXSIyIiIh4ybtw41q5dy8aNG/09FBGRJlNmXUREAl5JSUmN+xs3buSzzz5j5MiR/hmQiIiHKLMuIiIBLzU1lUmTJtG1a1e2bNnC888/T1lZGb/88gtHHHGEv4cnItJkmmAqIiIBb+zYsbz11ltkZ2cTERHB0KFDeeSRRxSoi0jAU2ZdRERERMSiVLMuIiIiImJRCtZFRERERCzK0jXrTqeTnTt3EhcX16RlskVERERErMg0TQoKCmjfvj0hIfXnzy0drO/cuZO0tDR/D0NERERExCu2bdtGx44d633e0sF6XFwc4HoT8fHxfh6NiIiIiIhn5Ofnk5aWVh3v1sfSwXpV6Ut8fLyCdREREREJOocr9dYEUxERERERi1KwLiIiIiJiUQrWRUREREQsytI16+5yOBxUVFT4exhiUWFhYdhs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RUX5aWTWl5qayuzZsxk4cCBlZWW89NJLjBw5kuXLl9O/f39/D89vnE4nN910E8OHD6dPnz71bmfV33ktIrM+derUOidcHHw79Bfujh07GDt2LOeffz6TJ0/208j9rynnrjH+8pe/cPbZZ9O3b1/GjRvHJ598wooVK1i0aJHn3oSfePvcBTNvn7u///3vjBkzhr59+3LxxRfz+uuv88EHH7B582YPvgtpyYYO/f927ickijeMA/jz03ZXRMzExeli7KrtocvagDF7cJOFCC8VXfJgW4f+GwkleImwU0HkITrUoe0oHSwPQZGzeTBqQVtpK4m2FmX7swfDWtCI6vs7iIN/0lpL31G/HxiQ2WeW532YeX12hnkN2b9/v/j9fgkGg9LV1SVut1uuXbumOjVaxXw+nxw5ckR0XZdAICA3btyQQCAgHR0dqlNT6sSJE/L8+XPp7OxUncqirIk766dPn5YDBw4sGOP1eq2/379/L/X19RIIBOT69esLHqdpmnz79k3GxsZm3F3PZDKiadrfpG0Ludbub3m9XikrK5NkMimhUOiffa8KS1m7qXMrk8nIxo0brf2ZTEb8fv+ivtNO/rR2mqbNecHv+/fv8unTp5yuv23btonI5NO0ysrKnPNdCcrKyiQ/P3/OSlULzVWapuUUv1otpnazORwOqampkWQyuRQprirznXfFxcW8q74ItbW10tfXpzoNZZqbm63FB373VMuuc96aaNbdbre43e4/in337p3U19eLrusSiUQkL2/hhw+6rovD4RDTNGXv3r0iMvkW9sjIiBiG8de5q5ZL7f6FdDoto6OjMxrQlWopa+fxeETTNDFN02rOv3z5IrFYLOfVeOzoT2tnGIaMjY3JwMCA6LouIiLRaFR+/vxpNeB/YnBwUERkVZx383E6naLrupimKbt37xaRyUfDpmlKc3PzL48xDENM05SWlhZr34MHD1bF3JaLxdRuth8/fkgikZCGhoYlzHR1MAxjznJ5a/G8+1cGBwdX9dw2HwBy8uRJuX37tvT29orH4/ntMbad85S+3moz6XQaVVVVCIVCSKfT+PDhg7VNj/H5fIjFYta+o0ePoqKiAtFoFP39/TAMA4ZhqBiCUsPDw4jH42hvb0dRURHi8Tji8Tiy2awV4/P50NXVBQDIZrM4c+YMHj9+jFQqhZ6eHmzduhXV1dX4+vWrqmEokWvtAODChQsoKSlBd3c3nj17hl27dsHj8WBiYkLFEJTZuXMnampqEIvF0NfXh+rqajQ2Nlqfz75mk8kkzp8/j/7+fqRSKXR3d8Pr9aKurk7VEJZNZ2cnXC4Xbt68iZcvX+Lw4cMoKSnBx48fAQBNTU1oa2uz4h89eoR169bh0qVLGBoawrlz5+BwOJBIJFQNQZlca9fe3o779+/jzZs3GBgYwL59+1BQUIAXL16oGoIy2WzWmtNEBJcvX0Y8Hsfw8DAAoK2tDU1NTVb827dvUVhYiNbWVgwNDeHq1avIz8/HvXv3VA1BmVxr19HRgTt37uD169dIJBI4deoU8vLy0NPTo2oIyhw7dgzr169Hb2/vjH5ufHzcilkpcx6b9WkikQhE5JfblFQqBRHBw4cPrX0TExM4fvw4NmzYgMLCQuzZs2dGg79WhMPhX9Zueq1EBJFIBAAwPj6OHTt2wO12w+FwYNOmTTh06JD1z28tybV2wOTyjWfPnkV5eTlcLhdCoRBevXq1/MkrNjo6isbGRhQVFaG4uBgHDx6c8SNn9jU7MjKCuro6lJaWwuVyoaqqCq2trfj8+bOiESyvK1euoKKiAk6nE7W1tXjy5In1WTAYRDgcnhF/69YtbN68GU6nE1u2bMHdu3eXOWP7yKV2LS0tVmx5eTkaGhrw9OlTBVmrN7Wc4Oxtql7hcBjBYHDOMX6/H06nE16vd8bct5bkWruLFy+isrISBQUFKC0txfbt2xGNRtUkr9h8/dz0c2mlzHn/AcBS3rknIiIiIqLFWROrwRARERERrURs1omIiIiIbIrNOhERERGRTbFZJyIiIiKyKTbrREREREQ2xWadiIiIiMim2KwTEREREdkUm3UiIiIiIptis05EREREZFNs1omIiIiIbIrNOhERERGRTbFZJyIiIiKyqf8B8R1JCqyOSFoAAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_preds(x, y, f, quad_model, 'After training')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hbtmFJIXb6qm"
},
"source": [
"That's working, but remember that implementations of common training utilities are available in the `tf.keras` module. So, consider using those before writing your own. To start with, the `Model.compile` and `Model.fit` methods implement a training loop for you:"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cjx23MiztFmT"
},
"source": [
"Begin by creating a Sequential Model in Keras using `tf.keras.Sequential`. One of the simplest Keras layers is the dense layer, which can be instantiated with `tf.keras.layers.Dense`. The dense layer is able to learn multidimensional linear relationships of the form $\\mathrm{Y} = \\mathrm{W}\\mathrm{X} + \\vec{b}$. In order to learn a nonlinear equation of the form, $w_1x^2 + w_2x + b$, the dense layer's input should be a data matrix with $x^2$ and $x$ as features. The lambda layer, `tf.keras.layers.Lambda`, can be used to perform this stacking transformation."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:40.080156Z",
"iopub.status.busy": "2024-10-03T01:24:40.079925Z",
"iopub.status.idle": "2024-10-03T01:24:40.092765Z",
"shell.execute_reply": "2024-10-03T01:24:40.092141Z"
},
"id": "5rt8HP2TZhEM"
},
"outputs": [],
"source": [
"new_model = tf.keras.Sequential([\n",
" tf.keras.layers.Lambda(lambda x: tf.stack([x, x**2], axis=1)),\n",
" tf.keras.layers.Dense(units=1, kernel_initializer=tf.random.normal)])"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:40.095280Z",
"iopub.status.busy": "2024-10-03T01:24:40.095062Z",
"iopub.status.idle": "2024-10-03T01:24:45.757257Z",
"shell.execute_reply": "2024-10-03T01:24:45.756486Z"
},
"id": "73kCo1BtP3rQ"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
"I0000 00:00:1727918680.462363 10695 service.cc:146] XLA service 0x7f51a0006eb0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
"I0000 00:00:1727918680.462397 10695 service.cc:154] StreamExecutor device (0): Tesla T4, Compute Capability 7.5\n",
"I0000 00:00:1727918680.462401 10695 service.cc:154] StreamExecutor device (1): Tesla T4, Compute Capability 7.5\n",
"I0000 00:00:1727918680.462404 10695 service.cc:154] StreamExecutor device (2): Tesla T4, Compute Capability 7.5\n",
"I0000 00:00:1727918680.462407 10695 service.cc:154] StreamExecutor device (3): Tesla T4, Compute Capability 7.5\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"I0000 00:00:1727918680.790826 10695 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
]
}
],
"source": [
"new_model.compile(\n",
" loss=tf.keras.losses.MSE,\n",
" optimizer=tf.keras.optimizers.SGD(learning_rate=0.01))\n",
"\n",
"history = new_model.fit(x, y,\n",
" epochs=100,\n",
" batch_size=32,\n",
" verbose=0)\n",
"\n",
"new_model.save('./my_new_model.keras')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "u3q5d1SzvzTq"
},
"source": [
"Observe your Keras model's performance after training:"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:45.760613Z",
"iopub.status.busy": "2024-10-03T01:24:45.760374Z",
"iopub.status.idle": "2024-10-03T01:24:45.902608Z",
"shell.execute_reply": "2024-10-03T01:24:45.901973Z"
},
"id": "Mo7zRV7XZjv7"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAvwAAAIjCAYAAAB/MM91AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABX2UlEQVR4nO3deXwTdf7H8XfSJulFT2hLuY8qNyIIFhRdQYFFVw5XdHFF1FVXUBHvXQHBA9RVWRUB75/rjQceK6KCoLKAUA4RBVFRQGhrKb3plczvj5LQ0AINJJmSvp6PRx5pZiaTTzJF3/n2M9+xGIZhCAAAAEBIsppdAAAAAIDAIfADAAAAIYzADwAAAIQwAj8AAAAQwgj8AAAAQAgj8AMAAAAhjMAPAAAAhDACPwAAABDCCPwAAABACCPwA0AjdsUVV6ht27bH9Nx77rlHFovFvwUBAPyOwA8g5Lz44ouyWCxau3at1/KCggL17dtXERER+vjjj02qzje7d+/WPffcow0bNphdCgDgBEXgB9AoFBYW6rzzztM333yjd999V0OHDjW7pHrZvXu3pk+fHrDA/8wzz2jr1q3H9Ny7775b+/fv93NFAAB/I/ADCHlFRUUaMmSINmzYoLffflvDhg077n2WlZXJ5XL5oTr/Ki0t9Wl7m80mh8NxTK8VHh6uiIiIY3qumYJ57KqqqlRRURGU1wKAwyHwAwhpxcXFGjp0qNatW6e3335bw4cP91r/22+/6corr1RKSoocDoe6du2q559/3mubZcuWyWKx6PXXX9fdd9+tFi1aKCoqSoWFhcrLy9Ott96q7t27KyYmRrGxsRo2bJg2btxYq5YnnnhCXbt2VVRUlBISEtSnTx+9+uqrh6192bJlOu200yRJ48ePl8VikcVi0YsvvihJOvvss9WtWzdlZmZq4MCBioqK0j/+8Q9J0nvvvafhw4crLS1NDodDHTp00L333iun0+n1Gof28P/yyy+yWCz617/+paefflodOnSQw+HQaaedpjVr1ng9t64efovFookTJ2rhwoXq1q2b5zOtq4Vq2bJl6tOnjyIiItShQwfNnz+/3ucF1Hzv/fv3V2RkpNq1a6d58+bVeo3DHTtJWrBggXr37q3IyEg1bdpUl112mX777bdar7dgwQJ16dJFERER6tatm959990jfnazZ8/2fHbfffedJGnLli266KKLlJiYqIiICPXp00fvv/++1+tUVlZq+vTpSk9PV0REhJKSknTGGWfo008/9WyTlZWl8ePHq2XLlnI4HGrevLkuvPBC/fLLL0f93AA0TuFmFwAAgVJSUqJhw4ZpzZo1euutt3T++ed7rc/Oztbpp5/uCanNmjXTokWLdNVVV6mwsFCTJk3y2v7ee++V3W7XrbfeqvLyctntdn333XdauHCh/vznP6tdu3bKzs7W/PnzddZZZ+m7775TWlqapOrWmRtvvFEXXXSRbrrpJpWVlembb77R6tWr9Ze//KXO+jt37qwZM2Zo6tSpuuaaa3TmmWdKkvr37+/ZZu/evRo2bJguueQSXXbZZUpJSZFUfR5DTEyMJk+erJiYGC1dulRTp05VYWGhHn744aN+dq+++qqKiop07bXXymKx6KGHHtKoUaP0888/y2azHfG5X331ld555x1df/31atKkiR5//HGNHj1aO3bsUFJSkiRp/fr1Gjp0qJo3b67p06fL6XRqxowZatas2VFrc9u3b5/++Mc/6uKLL9all16qN998U3//+99lt9t15ZVXem1b17F78cUXNX78eJ122mmaOXOmsrOz9e9//1srVqzQ+vXrFR8fL0n673//qzFjxqh79+6aOXOm9u3bp6uuukotWrSos64XXnhBZWVluuaaa+RwOJSYmKjNmzdrwIABatGihe68805FR0frzTff1IgRI/T2229r5MiRkqq/RM2cOVNXX321+vbtq8LCQq1du1br1q3TueeeK0kaPXq0Nm/erBtuuEFt27ZVTk6OPv30U+3YseOYT8AGEOIMAAgxL7zwgiHJaNOmjWGz2YyFCxfWud1VV11lNG/e3MjNzfVafskllxhxcXFGaWmpYRiG8fnnnxuSjPbt23uWuZWVlRlOp9Nr2fbt2w2Hw2HMmDHDs+zCCy80unbt6vN7WbNmjSHJeOGFF2qtO+usswxJxrx582qtO7ROwzCMa6+91oiKijLKyso8y8aNG2e0adPGq3ZJRlJSkpGXl+dZ/t577xmSjA8++MCzbNq0acah/xuRZNjtduPHH3/0LNu4caMhyXjiiSc8yy644AIjKirK+O233zzLtm3bZoSHh9faZ13c7/2RRx7xLCsvLzdOOeUUIzk52aioqDAM4/DHrqKiwkhOTja6detm7N+/37P8ww8/NCQZU6dO9Szr3r270bJlS6OoqMizbNmyZZ7fsUM/u9jYWCMnJ8er3kGDBhndu3f3+uxdLpfRv39/Iz093bOsZ8+exvDhww/7vvft22dIMh5++OGjfkYA4EZLD4CQlZ2drYiICLVq1arWOsMw9Pbbb+uCCy6QYRjKzc313IYMGaKCggKtW7fO6znjxo1TZGSk1zKHwyGrtfo/pU6nU3v37lVMTIxOPvlkr+fHx8dr165dtdpijpfD4dD48eNrLa9ZZ1FRkXJzc3XmmWeqtLRUW7ZsOep+x4wZo4SEBM9j918Xfv7556M+d/DgwerQoYPncY8ePRQbG+t5rtPp1GeffaYRI0Z4/gIiSR07dvTp/Irw8HBde+21nsd2u13XXnutcnJylJmZ6bXtocdu7dq1ysnJ0fXXX+91HsLw4cPVqVMn/fe//5VUfdL0pk2bdPnllysmJsaz3VlnnaXu3bvXWdfo0aO9/lKRl5enpUuX6uKLL/Yci9zcXO3du1dDhgzRtm3bPG1E8fHx2rx5s7Zt21bnviMjI2W327Vs2TLt27evvh8VgEaOwA8gZM2fP192u11Dhw6tNRPN77//rvz8fD399NNq1qyZ180doHNycrye065du1qv4XK59Nhjjyk9PV0Oh0NNmzZVs2bN9M0336igoMCz3R133KGYmBj17dtX6enpmjBhglasWHHc77FFixay2+21lm/evFkjR45UXFycYmNj1axZM1122WWS5FXX4bRu3drrsTv81ydkHvpc9/Pdz83JydH+/fvVsWPHWtvVtexw0tLSFB0d7bXspJNOkqRa/eyHHrtff/1VknTyySfX2m+nTp086933vtR66Gv9+OOPMgxDU6ZMqfW7Nm3aNEkHf9dmzJih/Px8nXTSSerevbtuu+02ffPNN559ORwOPfjgg1q0aJFSUlI0cOBAPfTQQ8rKyqqzFgCQ6OEHEMK6dOmijz76SIMGDdK5556rFStWeEb73bO0XHbZZRo3blydz+/Ro4fX40NH9yXpgQce0JQpU3TllVfq3nvvVWJioqxWqyZNmuQ1E0znzp21detWffjhh/r444/19ttv66mnntLUqVM1ffr0Y36PddWUn5+vs846S7GxsZoxY4Y6dOigiIgIrVu3TnfccUe9ZqgJCwurc7lhGAF9bqDU9TkF67Xcn/ett96qIUOG1Pkc95eHgQMH6qefftJ7772nTz75RM8++6wee+wxzZs3T1dffbUkadKkSbrgggu0cOFCLV68WFOmTNHMmTO1dOlS9erVK4DvDMCJisAPIKT17dtXCxcu1PDhw3Xuuefqyy+/9IyuNmnSRE6nU4MHDz7m/b/11lv6wx/+oOeee85reX5+vpo2beq1LDo6WmPGjNGYMWNUUVGhUaNG6f7779ddd9112Oktj+VKtsuWLdPevXv1zjvvaODAgZ7l27dv93lfgZCcnKyIiAj9+OOPtdbVtexwdu/erZKSEq9R/h9++EGSjnryaps2bSRJW7du1TnnnOO1buvWrZ717vvjqbV9+/aSqqdArc/vWmJiosaPH6/x48eruLhYAwcO1D333OMJ/JLUoUMH3XLLLbrlllu0bds2nXLKKXrkkUf08ssv16smAI0LLT0AQt6gQYP02muv6ccff9TQoUNVWFiosLAwjR49Wm+//ba+/fbbWs/5/fff67XvsLCwWiPXCxYsqDW14969e70e2+12denSRYZhqLKy8rD7d4fZ/Pz8etXjrknyHlGvqKjQU089Ve99BFJYWJgGDx6shQsXavfu3Z7lP/74oxYtWlTv/VRVVWn+/PmexxUVFZo/f76aNWum3r17H/G5ffr0UXJysubNm6fy8nLP8kWLFun777/3TN+alpambt266aWXXlJxcbFnu+XLl2vTpk31qjM5OVlnn3225s+frz179tRaX/N37dDfk5iYGHXs2NFTY2lpqcrKyry26dChg5o0aeL1PgCgJkb4ATQKI0eO1DPPPKMrr7xSf/rTn/Txxx9r1qxZ+vzzz9WvXz/97W9/U5cuXZSXl6d169bps88+U15e3lH3e/7552vGjBkaP368+vfvr02bNumVV17xjOq6nXfeeUpNTdWAAQOUkpKi77//Xk8++aSGDx+uJk2aHHb/HTp0UHx8vObNm6cmTZooOjpa/fr1q/N8Arf+/fsrISFB48aN04033iiLxaL//Oc/prbUHOqee+7RJ598ogEDBujvf/+7nE6nnnzySXXr1q3eVxVOS0vTgw8+qF9++UUnnXSS3njjDW3YsEFPP/30UacOtdlsevDBBzV+/HidddZZuvTSSz3TcrZt21Y333yzZ9sHHnhAF154oQYMGKDx48dr3759nlprfgk4kjlz5uiMM85Q9+7d9be//U3t27dXdna2Vq5cqV27dnmu29ClSxedffbZ6t27txITE7V27Vq99dZbmjhxoqTqv2AMGjRIF198sbp06aLw8HC9++67ys7O1iWXXFKvWgA0QqbNDwQAAeKelnPNmjW11v3rX/8yJBnnn3++UVlZaWRnZxsTJkwwWrVqZdhsNiM1NdUYNGiQ8fTTT3ue457accGCBbX2V1ZWZtxyyy1G8+bNjcjISGPAgAHGypUrjbPOOss466yzPNvNnz/fGDhwoJGUlGQ4HA6jQ4cOxm233WYUFBQc9f289957RpcuXTxTVrqn6DzrrLMOO9XnihUrjNNPP92IjIw00tLSjNtvv91YvHixIcn4/PPPPdsdblrOuqZ9lGRMmzbN8/hw03JOmDCh1nPbtGljjBs3zmvZkiVLjF69ehl2u93o0KGD8eyzzxq33HKLERERceQPpMZ7X7t2rZGRkWFEREQYbdq0MZ588kmv7Y507AzDMN544w2jV69ehsPhMBITE42xY8cau3btqrXd66+/bnTq1MlwOBxGt27djPfff98YPXq00alTJ882R/rsDMMwfvrpJ+Pyyy83UlNTDZvNZrRo0cI4//zzjbfeesuzzX333Wf07dvXiI+PNyIjI41OnToZ999/v2ea0dzcXGPChAlGp06djOjoaCMuLs7o16+f8eabbx71MwPQeFkMowEN+QAAGrURI0YccVpKt7PPPlu5ubl1tmMFyymnnKJmzZp5XQUXABoievgBAKbYv3+/1+Nt27bpo48+0tlnn21OQYdRWVmpqqoqr2XLli3Txo0bG1ytAFAXevgBAKZo3769rrjiCrVv316//vqr5s6dK7vdrttvv93s0rz89ttvGjx4sC677DKlpaVpy5YtmjdvnlJTU3XdddeZXR4AHBWBHwBgiqFDh+q1115TVlaWHA6HMjIy9MADDyg9Pd3s0rwkJCSod+/eevbZZ/X7778rOjpaw4cP16xZs5SUlGR2eQBwVPTwAwAAACGMHn4AAAAghBH4AQAAgBAW8j38LpdLu3fvVpMmTY7pEvUAAABAQ2MYhoqKipSWliar9chj+CEf+Hfv3q1WrVqZXQYAAADgdzt37lTLli2PuE3IB373Jet37typ2NhYk6sBAAAAjl9hYaFatWrlybpHEvKB393GExsbS+AHAABASKlPyzon7QIAAAAhjMAPAAAAhDACPwAAABDCCPwA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AQAAECw+9/AnJCQoMTExELU0GvZwZukBAABAcPgc+O+9915NnTpVpaWlgainUbDRww8AAIAg8bml55FHHtFPP/2klJQUtW3bVjabzWv9unXr/FZcqGKWHgAAAASLz4F/xIgRASijcXEwDz8AAACCxOfAP23atEDU0agwSw8AAACChQtvmcAWRksPAAAAgsPnEX6n06nHHntMb775pnbs2KGKigqv9Xl5eX4rLlTZCfwAAAAIEp9H+KdPn65HH31UY8aMUUFBgSZPnqxRo0bJarXqnnvu8WlfM2fO1GmnnaYmTZooOTlZI0aM0NatW722KSsr04QJE5SUlKSYmBiNHj1a2dnZvpbdoNDSAwAAgGDxOfC/8soreuaZZ3TLLbcoPDxcl156qZ599llNnTpVq1at8mlfy5cv14QJE7Rq1Sp9+umnqqys1HnnnaeSkhLPNjfffLM++OADLViwQMuXL9fu3bs1atQoX8tuUJilBwAAAMHic0tPVlaWunfvLkmKiYlRQUGBJOn888/XlClTfNrXxx9/7PX4xRdfVHJysjIzMzVw4EAVFBToueee06uvvqpzzjlHkvTCCy+oc+fOWrVqlU4//fRa+ywvL1d5ebnncWFhoU81BQNX2gUAAECw+DzC37JlS+3Zs0eS1KFDB33yySeSpDVr1sjhcBxXMe4vD+4r+WZmZqqyslKDBw/2bNOpUye1bt1aK1eurHMfM2fOVFxcnOfWqlWr46opENwj/JWM8AMAACDAfA78I0eO1JIlSyRJN9xwg6ZMmaL09HRdfvnluvLKK4+5EJfLpUmTJmnAgAHq1q2bpOq/JtjtdsXHx3ttm5KSoqysrDr3c9ddd6mgoMBz27lz5zHXFCj08AMAACBYfG7pmTVrlufnMWPGeEbb09PTdcEFFxxzIRMmTNC3336rr7766pj3IUkOh+O4/9IQaO6WnkqnIZfLkNVqMbkiAAAAhCqfA/+hMjIylJGRcVz7mDhxoj788EN98cUXatmypWd5amqqKioqlJ+f7zXKn52drdTU1ON6TTPZwg/+YaXC6VKENczEagAAABDKjunCW//5z380YMAApaWl6ddff5UkzZ49W++9955P+zEMQxMnTtS7776rpUuXql27dl7re/fuLZvN5mkhkqStW7dqx44dx/0lw0yOGoG/vJK2HgAAAASOz4F/7ty5mjx5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RqNHj651QTmEhlmzZslisWjSpEmeZRz/0Pbbb7/psssuU1JSkiIjI9W9e3etXbvWs94wDE2dOlXNmzdXZGSkBg8erG3btplYMfzF6XRqypQpateunSIjI9WhQwfde++9qjkfCsc/dHzxxRe64IILlJaWJovFooULF3qtr8+xzsvL09ixYxUbG6v4+HhdddVVKi4uDnjtBP4AeeONNzR58mRNmzZN69atU8+ePTVkyBDl5OSYXRr8bPny5ZowYYJWrVqlTz/9VJWVlTrvvPNUUlLi2ebmm2/WBx98oAULFmj58uXavXu3Ro0aZWLVCIQ1a9Zo/vz56tGjh9dyjn/o2rdvnwYMGCCbzaZFixbpu+++0yOPPKKEhATPNg899JAef/xxzZs3T6tXr1Z0dLSGDBmisrIyEyuHPzz44IOaO3eunnzySX3//fd68MEH9dBDD+mJJ57wbMPxDx0lJSXq2bOn5syZU+f6+hzrsWPHavPmzfr000/14Ycf6osvvtA111wT+OINBETfvn2NCRMmeB47nU4jLS3NmDlzpolVIRhycnIMScby5csNwzCM/Px8w2azGQsWLPBs8/333xuSjJUrV5pVJvysqKjISE9PNz799FPjrLPOMm666SbDMDj+oe6OO+4wzjjjjMOud7lcRmpqqvHwww97luXn5xsOh8N47bXXglEiAmj48OHGlVde6bVs1KhRxtixYw3D4PiHMknGu+++63lcn2P93XffGZKMNWvWeLZZtGiRYbFYjN9++y2g9TLCHwAVFRXKzMzU4MGDPcusVqsGDx6slStXmlgZgqGgoECSlJiYKEnKzMxUZWWl1+9Dp06d1Lp1a34fQsiECRM0fPhwr+MscfxD3fvvv68+ffroz3/+s5KTk9WrVy8988wznvXbt29XVlaW1/GPi4tTv379OP4hoH///lqyZIl++OEHSdLGjRv11VdfadiwYZI4/o1JfY71ypUrFR8frz59+ni2GTx4sKxWq1avXh3Q+hr8lXZPRLm5uXI6nbWuBpySkqItW7aYVBWCweVyadKkSRowYIC6desmScrKypLdbld8fLzXtikpKcrKyjKhSvjb66+/rnXr1mnNmjW11nH8Q9vPP/+suXPnavLkyfrHP/6hNWvW6MYbb5Tdbte4ceM8x7iu/x9w/E98d955pwoLC9WpUyeFhYXJ6XTq/vvv19ixYyWJ49+I1OdYZ2VlKTk52Wt9eHi4EhMTA/77QOAH/GjChAn69ttv9dVXX5ldCoJk586duummm/Tpp58qIiLC7HIQZC6XS3369NEDDzwgSerVq5e+/fZbzZs3T+PGjTO5OgTam2++qVdeeUWvvvqqunbtqg0bNmjSpElKS0vj+KNBoaUnAJo2baqwsLBas3BkZ2crNTXVpKoQaBMnTtSHH36ozz//XC1btvQsT01NVUVFhfLz87225/chNGRmZionJ0ennnqqwsPDFR4eruXLl+vxxx9XeHi4UlJSOP4hrHnz5urSpYvXss6dO2vHjh2S5DnG/P8gNN1222268847dckll6h79+7661//qptvvlkzZ86UxPFvTOpzrFNTU2tN3lJVVaW8vLyA/z4Q+APAbrerd+/eWrJkiWeZy+XSkiVLlJGRYWJlCATDMDRx4kS9++67Wrp0qdq1a+e1vnfv3rLZbF6/D1u3btWOHTv4fQgBgwYN0qZNm7RhwwbPrU+fPho7dqznZ45/6BowYECtaXh/+OEHtWnTRpLUrl07paameh3/wsJCrV69muMfAkpLS2W1ekepsLAwuVwuSRz/xqQ+xzojI0P5+fnKzMz0bLN06VK5XC7169cvsAUG9JTgRuz11183HA6H8eKLLxrfffedcc011xjx8fFGVlaW2aXBz/7+978bcXFxxrJly4w9e/Z4bqWlpZ5trrvuOqN169bG0qVLjbVr1xoZGRlGRkaGiVUjkGrO0mMYHP9Q9vXXXxvh4eHG/fffb2zbts145ZVXjKioKOPll1/2bDNr1iwjPj7eeO+994xvvvnGuPDCC4127doZ+/fvN7Fy+MO4ceOMFi1aGB9++KGxfft245133jGaNm1q3H777Z5tOP6ho6ioyFi/fr2xfv16Q5Lx6KOPGuvXrzd+/fVXwzDqd6yHDh1q9OrVy1i9erXx1VdfGenp6call14a8NoJ/AH0xBNPGK1btzbsdrvRt29fY9WqVWaXhACQVOfthRde8Gyzf/9+4/rrrzcSEhKMqKgoY+TIkcaePXvMKxoBdWjg5/iHtg8++MDo1q2b4XA4jE6dOhlPP/2013qXy2VMmTLFSElJMRwOhzFo0CBj69atJlULfyosLDRuuukmo3Xr1kZERITRvn1745///KdRXl7u2YbjHzo+//zzOv9/P27cOMMw6nes9+7da1x66aVGTEyMERsba4wfP94oKioKeO0Ww6hxOTgAAAAAIYUefgAAACCEEfgBAACAEEbgBwAAAEIYgR8AAAAIYQR+AAAAIIQR+AEAAIAQRuAHAAAAQhiBHwAAAAhhBH4AgOksFosWLlxodhkAEJII/ADQyF1xxRWyWCy1bkOHDjW7NACAH4SbXQAAwHxDhw7VCy+84LXM4XCYVA0AwJ8Y4QcAyOFwKDU11euWkJAgqbrdZu7cuRo2bJgiIyPVvn17vfXWW17P37Rpk8455xxFRkYqKSlJ11xzjYqLi722ef7559W1a1c5HA41b95cEydO9Fqfm5urkSNHKioqSunp6Xr//fcD+6YBoJEg8AMAjmrKlCkaPXq0Nm7cqLFjx+qSSy7R999/L0kqKSnRkCFDlJCQoDVr1mjBggX67LPPvAL93LlzNWHCBF1zzTXatGmT3n//fXXs2NHrNaZPn66LL75Y33zzjf74xz9q7NixysvLC+r7BIBQZDEMwzC7CACAea644gq9/PLLioiI8Fr+j3/8Q//4xz9ksVh03XXXae7cuZ51p59+uk499VQ99dRTeuaZZ3THHXdo586dio6OliR99NFHuuCCC7R7926lpKSoRYsWGj9+vO677746a7BYLLr77rt17733Sqr+EhETE6NFixZxLgEAHCd6+AEA+sMf/uAV6CUpMTHR83NGRobXuoyMDG3YsEGS9P3336tnz56esC9JAwYMkMvl0tatW2WxWLR7924NGjToiDX06NHD83N0dLRiY2OVk5NzrG8JAHAAgR8AoOjo6FotNv4SGRlZr+1sNpvXY4vFIpfLFYiSAKBRoYcfAHBUq1atqvW4c+fOkqTOnTtr48aNKikp8axfsWKFrFarTj75ZDVp0kRt27bVkiVLglozAKAaI/wAAJWXlysrK8trWXh4uJo2bSpJWrBggfr06aMzzjhDr7zyir7++ms999xzkqSxY8dq2rRpGjdunO655x79/vvvuuGGG/TXv/5VKSkpkqR77rlH1113nZKTkzVs2DAVFRVpxYoVuuGGG4L7RgGgESLwAwD08ccfq3nz5l7LTj75ZG3ZskVS9Qw6r7/+uq6//no1b95cr732mrp06SJJioqK0uLFi3XTTTfptNNOU1RUlEaPHq1HH33Us69x48aprKxMjz32mG699VY1bdpUF110UfDeIAA0YszSAwA4IovFonfffVcjRowwuxQAwDGghx8AAAAIYQR+AAAAIITRww8AOCI6PwHgxMYIPwAAABDCCPwAAABACCPwAwAAACGMwA8AAACEMAI/AAAAEMII/AAAAEAII/ADAAAAIYzADwAAAISw/wciVjKXUNQ44gAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(history.history['loss'])\n",
"plt.xlabel('Epoch')\n",
"plt.ylim([0, max(plt.ylim())])\n",
"plt.ylabel('Loss [Mean Squared Error]')\n",
"plt.title('Keras training progress');"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"execution": {
"iopub.execute_input": "2024-10-03T01:24:45.905335Z",
"iopub.status.busy": "2024-10-03T01:24:45.904857Z",
"iopub.status.idle": "2024-10-03T01:24:46.124788Z",
"shell.execute_reply": "2024-10-03T01:24:46.124100Z"
},
"id": "bB44a9YsvnfK"
},
"outputs": [
{
"data": {
"image/png": "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+Ph4EhMTGTVqFMuWLeP555/n888/x2Kx0Lt3b5555hlmz55Njx49mDdvHjNnzqywj5NPPpkbbriBcePGERMTwxNPPEFMTAxvv/02H3/8Md26dWPWrFk89dRTLnlNIiIiIu7kSRUTjmIyDMOofTP3yM7OJjIykqysLCIiIio8VlBQQFJSEm3btiUoKMhNIxRvoc+LiIhI45GSle/Sion6qCnOPZ7KYERERETEp8RHBntskF5XKoMREREREfFQCtZFRERERDyUgnUREREREQ+lYF1ERERExEMpWBcRERER8VAK1kVEREREPJSCdRERERERD6VgXURERETEQylYlzqZMWMGffr0cfcwGD58OLfddpu7hyEiIiLiVArW3eTAgQNMmTKFDh06EBQURPPmzRk6dCivvPIKeXl57h5evS1fvhyTycThw4c9cn8iIiIi3sTP3QNojHbt2sXQoUOJiori8ccfp2fPngQGBrJhwwb++9//0rJlSy644IIqn1tcXIy/v7+LR+x4RUVFBAQEuHsYIiIiIh5NmXU3mDx5Mn5+fvz+++9cdtlldO3alXbt2nHhhRfy9ddfc/7555dvazKZeOWVV7jgggsIDQ3lscceA+CVV16hffv2BAQE0LlzZ957773y5yQnJ2Mymfjrr7/K7zt8+DAmk4nly5cDxzLWS5YsoX///oSEhHDyySezbdu2CmOdNWsWzZs3Jzw8nIkTJ1JQUFDt60pOTmbEiBEANGnSBJPJxIQJEwBb2crNN9/MbbfdRnR0NCNHjqx1nDXtD8BqtXL33XfTtGlT4uLimDFjhr1vgYiIiHiwlKx8Vv2dTkpWvruH4na+FawbBhTluudmGHYNMSMjg++//56bbrqJ0NDQKrcxmUwVfp4xYwYXXXQRGzZs4JprrmHhwoVMmTKFO++8k40bN3L99ddz9dVXs2zZsjqfsnvvvZenn36a33//HT8/P6655pryxz766CNmzJjB448/zu+//058fDwvv/xytftKSEjg008/BWDbtm2kpKTw3HPPlT/+zjvvEBAQwMqVK3n11VdrHZs9+wsNDWX16tU88cQTPPzwwyxevLjO50BEREQ8x/w1exg6aynjX1/N0FlLmb9mj7uH5Fa+VQZTnAePt3DPsafvh4Cqg+/j7dy5E8Mw6Ny5c4X7o6Ojy7PWN910E7Nnzy5/bPz48Vx9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V3BFe0gRERFPozIYEREREREPpWBdRERERMRDKVgXEREREfFQCtZFRERERDyUgnUREREREQ+lYF1ERERExEMpWBcRERER8VAK1kVEREREPJSCdRERERERD6VgXURERETEQylYFxERERHxUArWRUREREQ8lIJ1EREREREPpWBdRERERMRDKVgXEREREfFQfu4eQE0MwwAgOzvbzSMREREREXGcsvi2LN6tjkcH60eOHAEgISHBzSMREREREXG8I0eOEBkZWe3jJqO2cN6NrFYr+/fvJzw8HJPJ5PLjZ2dnk5CQwN69e4mIiHD58b2Zzl396dw1jM5f/enc1Z/OXf3p3DWMzl/9ufvcGYbBkSNHaNGiBWZz9ZXpHp1ZN5vNtGrVyt3DICIiQv8A6knnrv507hpG56/+dO7qT+eu/nTuGkbnr/7cee5qyqiX0QRTEREREREPpWBdRERERMRDKVivQWBgIA8++CCBgYHuHorX0bmrP527htH5qz+du/rTuas/nbuG0fmrP285dx49wVREREREpDFTZl1ERERExEMpWBcRERER8VAK1kVEREREPJSCdRERERERD6Vg/TjJyclMnDiRtm3bEhwcTPv27XnwwQcpKiqq8XkFBQXcdNNNNGvWjLCwMC6++GIOHjzoolF7jscee4yTTz6ZkJAQoqKi7HrOhAkTMJlMFW6jRo1y7kA9UH3OnWEYPPDAA8THxxMcHMyZZ57Jjh07nDtQD3To0CGuuOIKIiIiiIqKYuLEieTk5NT4nOHDh1f63N1www0uGrF7vfTSSyQmJhIUFMSgQYP47bffatz+448/pkuXLgQFBdGzZ0+++eYbF43U89Tl3L399tuVPmNBQUEuHK3n+Omnnzj//PNp0aIFJpOJzz77rNbnLF++nJNOOonAwEA6dOjA22+/7fRxeqK6nrvly5dX+tyZTCYOHDjgmgF7kJkzZzJgwADCw8OJjY1lzJgxbNu2rdbneeLvPAXrx9m6dStWq5XXXnuNTZs28eyzz/Lqq68yffr0Gp93++238+WXX/Lxxx/z448/sn//fsaOHeuiUXuOoqIiLr30Um688cY6PW/UqFGkpKSU3z744AMnjdBz1efcPfHEEzz//PO8+uqrrF69mtDQUEaOHElBQYETR+p5rrjiCjZt2sTixYv56quv+Omnn7juuutqfd6kSZMqfO6e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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_preds(x, y, f, new_model, 'After Training: Keras')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ng-BY_eGS0bn"
},
"source": [
"Refer to [Basic training loops](basic_training_loops.ipynb) and the [Keras guide](https://www.tensorflow.org/guide/keras) for more details."
]
}
],
"metadata": {
"colab": {
"collapsed_sections": [],
"name": "basics.ipynb",
"toc_visible": true
},
"kernelspec": {
"display_name": "Python 3",
"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.9.20"
}
},
"nbformat": 4,
"nbformat_minor": 0
}