Ddpgresnet Ipynb
Ddpgresnet Ipynb
Ny1lHFUurO2kMShsc"},"kernelspec":{"name":"python3","display_name":"Python
3","language":"python"},"language_info":
{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":
{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"py
thon","file_extension":".py"},"kaggle":{"accelerator":"gpu","dataSources":
[{"sourceId":9563184,"sourceType":"datasetVersion","datasetId":5828021},
{"sourceId":9570594,"sourceType":"datasetVersion","datasetId":5833601}],"dockerImag
eVersionId":30788,"isInternetEnabled":true,"language":"python","sourceType":"notebo
ok","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":
[{"cell_type":"code","source":"import torch\nimport torch.nn as nn\nimport
torch.nn.functional as F\nfrom torch.autograd import Variable\nfrom
torch.utils.data import DataLoader\nfrom torchvision import transforms\nfrom
torchvision import datasets\n#import resnet50\nfrom torchvision.models import
resnet18,resnet50,resnet101\nimport matplotlib.pyplot as plt\nimport numpy as np\
nimport matplotlib.pyplot as plt\nimport skimage\nimport random\nimport
kagglehub","metadata":{"id":"mJMyUbZVq5QX","executionInfo":
{"status":"ok","timestamp":1728339791599,"user_tz":300,"elapsed":10590,"user":
{"displayName":"DAVID SANTIAGO SANCHEZ
CEPEDA","userId":"09385389865282990454"}},"execution":{"iopub.status.busy":"2024-
10-08T21:45:29.821335Z","iopub.execute_input":"2024-10-
08T21:45:29.821631Z","iopub.status.idle":"2024-10-
08T21:45:32.490394Z","shell.execute_reply.started":"2024-10-
08T21:45:29.821593Z","shell.execute_reply":"2024-10-
08T21:45:32.489549Z"},"trusted":true},"execution_count":1,"outputs":[]},
{"cell_type":"code","source":"kagglehub.dataset_download('tallo2060/imagenmonkee',
path='fae6202d-2a8b-40e3-8d05-
19f46ba7b537.ce308afc0ee1b59229142849913da8f1.jpeg')","metadata":{"execution":
{"iopub.status.busy":"2024-10-08T21:45:32.491528Z","iopub.execute_input":"2024-10-
08T21:45:32.492045Z","iopub.status.idle":"2024-10-
08T21:45:33.711841Z","shell.execute_reply.started":"2024-10-
08T21:45:32.491996Z","shell.execute_reply":"2024-10-
08T21:45:33.710937Z"},"trusted":true},"execution_count":2,"outputs":
[{"execution_count":2,"output_type":"execute_result","data":{"text/plain":"'/
kaggle/input/imagenmonkee/fae6202d-2a8b-40e3-8d05-
19f46ba7b537.ce308afc0ee1b59229142849913da8f1.jpeg'"},"metadata":{}}]},
{"cell_type":"code","source":"kagglehub.dataset_download('tallo2060/
monkeee')","metadata":{"execution":{"iopub.status.busy":"2024-10-
08T21:45:33.712846Z","iopub.execute_input":"2024-10-
08T21:45:33.713158Z","iopub.status.idle":"2024-10-
08T21:45:34.822857Z","shell.execute_reply.started":"2024-10-
08T21:45:33.713124Z","shell.execute_reply":"2024-10-
08T21:45:34.821915Z"},"trusted":true},"execution_count":3,"outputs":
[{"execution_count":3,"output_type":"execute_result","data":{"text/plain":"'/
kaggle/input/monkeee'"},"metadata":{}}]},{"cell_type":"code","source":"#create
images\nmonkee=skimage.io.imread(\"../input/monkeee/fae6202d-2a8b-40e3-8d05-
19f46ba7b537.ce308afc0ee1b59229142849913da8f1.jpeg\")\
nmonkee=skimage.transform.resize(monkee,(250,250))\nimg=monkee\npreprocess =
transforms.Compose([\n transforms.ToPILImage(),\n transforms.Resize(256),\n
transforms.CenterCrop(224),\n transforms.ToTensor(),\n
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n])\
n#create 1500x1500 canvas\ncanvas=np.zeros((1500,1500,3))\nx=750-monkee.shape[0]/2\
nresnetimages=[]\nys=[]\nfor i in range(3):\n y=random.randint(0,1000)\n
canvas[int(y):int(y)+monkee.shape[0],int(x):int(x)+monkee.shape[1]]=monkee\n
yinfivesec=y+(1/2)*9.8*5**2\n ys.append(yinfivesec)\n
resnetimages.append(preprocess(canvas))\n canvas=np.zeros((1500,1500,3))\n\n\n\
n\nplt.imshow(canvas)","metadata":{"colab":{"base_uri":"https://
localhost:8080/","height":452},"id":"dxabEnsKrY9h","executionInfo":
{"status":"ok","timestamp":1728339802040,"user_tz":300,"elapsed":6832,"user":
{"displayName":"DAVID SANTIAGO SANCHEZ
CEPEDA","userId":"09385389865282990454"}},"outputId":"b1d8f4c9-890f-44c5-a942-
ce2a642a7c57","execution":{"iopub.status.busy":"2024-10-
08T21:45:34.825206Z","iopub.execute_input":"2024-10-
08T21:45:34.825529Z","iopub.status.idle":"2024-10-
08T21:45:38.135562Z","shell.execute_reply.started":"2024-10-
08T21:45:34.825494Z","shell.execute_reply":"2024-10-
08T21:45:38.134618Z"},"trusted":true},"execution_count":4,"outputs":
[{"execution_count":4,"output_type":"execute_result","data":{"text/
plain":"<matplotlib.image.AxesImage at 0x7ee194892bc0>"},"metadata":{}},
{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1
Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAbIAAAGiCAYAAACCpUOHAAAAOXRFWHRTb2Z0d2F
yZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/
xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAoPUlEQVR4nO3df3DU9Z3H8deGkCUx7iaA2SWYYNoyUIXSaD
S3ivYPMgSPUVud9ppJKUeZMlg8wToUMw7UXscmhTt/
3SlqZ06ZqZWWGcHKiE6aUCLTGCAEELCRGymk6CZXYnaDQkjY9/3R43ssRgllQ/
JJn4+Z94z5ft673897SPKaTT5ufGZmAgDAUWlDvQEAAC4FQQYAcBpBBgBwGkEGAHAaQQYAcBpBBgBwGkEGA
HAaQQYAcBpBBgBwGkEGAHDasA6yp59+Wtdcc43GjBmj0tJS7dixY6i3BAAYZoZtkP3617/WD3/4Q/34xz/
W7t27NWPGDJWXl6ujo2OotwYAGEZ8w/VNg0tLS3XjjTfqP//zPyVJiURCBQUF+pd/
+Rc99NBDQ7w7AMBwkT7UG+jP6dOn1dzcrKqqKu9aWlqaysrK1NjY2O9jenp61NPT432cSCTU2dmpcePGyef
zDfqeAQCpY2bq7u5Wfn6+0tI+/4eHwzLI/vKXv+jMmTMKhUJJ10OhkP74xz/2+5jq6mr95Cc/
uRzbAwBcJm1tbbr66qs/t2fY/
o7sYlVVVSkWi3l19OjRod4SAOASXXnllRfsGZavyMaPH69Ro0apvb096Xp7e7vC4XC/j/H7/fL7/
ZdjewCAy2Qgvxoalq/IMjIydMMNN6iurs67lkgkVFdXp0gkMoQ7AwAMN8PyFZkk/
fCHP9T8+fNVUlKim266SU888YQ+/vhjLViwYKi3BgAYRoZtkP3TP/2T/ud//
kerVq1SNBrVV7/6Vb3xxhufOgACAPj7Nmz/P7JLFY/
HFQwGh3obAIBLEIvFFAgEPrdnWP6ODACAgSLIAABOI8gAAE4jyAAATiPIAABOI8gAAE4jyAAATiPIAABOI8
gAAE4jyAAATiPIAABOI8gAAE4jyAAATiPIAABOI8gAAE4jyAAATiPIAABOI8gAAE4jyAAATiPIAABOI8gAA
E4jyAAATiPIAABOI8gAAE4jyAAATiPIAABOI8gAAE4jyAAATiPIAABOI8gAAE4jyAAATiPIAABOI8gAAE4j
yAAATiPIAABOI8gAAE4jyAAATiPIAABOS3mQVVdX68Ybb9SVV16pvLw8ff3rX1dra2tSz6lTp7RkyRKNGzd
O2dnZuueee9Te3p7Uc/ToUc2dO1dZWVnKy8vT8uXL1dfXl+rtAgAcl/
Ig27Ztm5YsWaK3335btbW16u3t1ezZs/Xxxx97PQ888IBee+01bdiwQdu2bdMHH3ygu+++21s/
c+aM5s6dq9OnT+sPf/iD1q1bpxdffFGrVq1K9XYBAK6zQdbR0WGSbNu2bWZm1tXVZaNHj7YNGzZ4Pe++
+65JssbGRjMze/311y0tLc2i0ajXs3btWgsEAtbT0zOg+8ZiMZNEURRFOVyxWOyC3+8H/
XdksVhMkjR27FhJUnNzs3p7e1VWVub1TJ06VYWFhWpsbJQkNTY2avr06QqFQl5PeXm54vG4Dhw40O99enp6
FI/
HkwoAMPINapAlEgktW7ZMt9xyi6ZNmyZJikajysjIUE5OTlJvKBRSNBr1es4NsbPrZ9f6U11drWAw6FVBQU
GKpwEADEeDGmRLlizR/v37tX79+sG8jSSpqqpKsVjMq7a2tkG/
JwBg6KUP1hPfd9992rx5sxoaGnT11Vd718PhsE6fPq2urq6kV2Xt7e0Kh8Nez44dO5Ke7+ypxrM95/P7/
fL7/
SmeAgAw3KX8FZmZ6b777tPGjRtVX1+voqKipPUbbrhBo0ePVl1dnXettbVVR48eVSQSkSRFIhG988476ujo
8Hpqa2sVCAR07bXXpnrLAACXXcQBxAG59957LRgM2u9//3v78MMPvfrkk0+8nsWLF1thYaHV19fbrl27LBK
JWCQS8db7+vps2rRpNnv2bNuzZ4+98cYbdtVVV1lVVdWA98GpRYqiKPdrIKcWUx5kn7WZF154wes5efKk/
eAHP7Dc3FzLysqyb3zjG/bhhx8mPc+f/vQnu/322y0zM9PGjx9vDz74oPX29g54HwQZRVGU+zWQIPP9X/
iMOPF4XMFgcKi3AQC4BLFYTIFA4HN7eK9FAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAg
NMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMI
MgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgC
A0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0wY9yGpqauTz+bRs2TLv2qlTp7RkyRKNGzdO2dnZuu
eee9Te3p70uKNHj2ru3LnKyspSXl6eli9frr6+vsHeLgDAMYMaZDt37tRzzz2nr3zlK0nXH3jgAb322mvas
GGDtm3bpg8++EB33323t37mzBnNnTtXp0+f1h/
+8AetW7dOL774olatWjWY2wUAuMgGSXd3t02ePNlqa2vta1/7mi1dutTMzLq6umz06NG2YcMGr/
fdd981SdbY2GhmZq+//
rqlpaVZNBr1etauXWuBQMB6enr6vd+pU6csFot51dbWZpIoiqIohysWi10wbwbtFdmSJUs0d+5clZWVJV1v
bm5Wb29v0vWpU6eqsLBQjY2NkqTGxkZNnz5doVDI6ykvL1c8HteBAwf6vV91dbWCwaBXBQUFgzAVAGC4GZQ
gW79+vXbv3q3q6upPrUWjUWVkZCgnJyfpeigUUjQa9XrODbGz62fX+lNVVaVYLOZVW1tbCiYBAAx36al+wr
a2Ni1dulS1tbUaM2ZMqp/+M/n9fvn9/st2PwDA8JDyV2TNzc3q6OjQ9ddfr/
T0dKWnp2vbtm166qmnlJ6erlAopNOnT6urqyvpce3t7QqHw5KkcDj8qVOMZz8+2wMAgDQIQTZr1iy988472
rNnj1clJSWqrKz0/
nv06NGqq6vzHtPa2qqjR48qEolIkiKRiN555x11dHR4PbW1tQoEArr22mtTvWUAgMsu4WDigJ17atHMbPHi
xVZYWGj19fW2a9cui0QiFolEvPW+vj6bNm2azZ492/bs2WNvvPGGXXXVVVZVVTXge8ZisSE/
bUNRFEVdWg3k1GLKf0c2EI8//rjS0tJ0zz33qKenR+Xl5XrmmWe89VGjRmnz5s269957FYlEdMUVV2j+/
Pn613/916HYLgBgGPOZmQ31JgZDPB5XMBgc6m0AAC5BLBZTIBD43B7eaxEA4DSCDADgNIIMAOA0ggwA4DSC
DADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDAD
gNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNI
IMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgtEEJsmPHjuk73/
mOxo0bp8zMTE2fPl27du3y1s1Mq1at0oQJE5SZmamysjIdOnQo6Tk6OztVWVmpQCCgnJwcLVy4UCdOnBiM7
QIAHJbyIPvoo490yy23aPTo0dqyZYsOHjyof//
3f1dubq7Xs3r1aj311FN69tln1dTUpCuuuELl5eU6deqU11NZWakDBw6otrZWmzdvVkNDgxYtWpTq7QIAXG
cptmLFCps5c+ZnricSCQuHw7ZmzRrvWldXl/
n9fnv55ZfNzOzgwYMmyXbu3On1bNmyxXw+nx07dmxA+4jFYiaJoiiKcrhisdgFv9+n/
BXZb3/7W5WUlOib3/ym8vLyVFxcrF/
84hfe+uHDhxWNRlVWVuZdCwaDKi0tVWNjoySpsbFROTk5Kikp8XrKysqUlpampqamfu/
b09OjeDyeVACAkS/lQfb+++9r7dq1mjx5st58803de++9uv/+
+7Vu3TpJUjQalSSFQqGkx4VCIW8tGo0qLy8vaT09PV1jx471es5XXV2tYDDoVUFBQapHAwAMQykPskQioeu
vv14/+9nPVFxcrEWLFun73/++nn322VTfKklVVZVisZhXbW1tg3o/
AMDwkPIgmzBhgq699tqka1/+8pd19OhRSVI4HJYktbe3J/W0t7d7a+FwWB0dHUnrfX196uzs9HrO5/
f7FQgEkgoAMPKlPMhuueUWtba2Jl177733NGnSJElSUVGRwuGw6urqvPV4PK6mpiZFIhFJUiQSUVdXl5qbm
72e+vp6JRIJlZaWpnrLAACXDegI4EXYsWOHpaen26OPPmqHDh2yl156ybKysuyXv/
yl11NTU2M5OTn26quv2r59+
+yuu+6yoqIiO3nypNczZ84cKy4utqamJtu+fbtNnjzZKioqBrwPTi1SFEW5XwM5tZjyIDMze+2112zatGnm
9/tt6tSp9vzzzyetJxIJW7lypYVCIfP7/TZr1ixrbW1N6jl+/
LhVVFRYdna2BQIBW7BggXV3dw94DwQZRVGU+zWQIPOZmWkEisfjCgaDQ70NAMAliMViFzzzwHstAgCcRpAB
AJxGkAEAnEaQAQCcRpABAJxGkAEAnEaQAQCcRpABAJxGkAEAnEaQAQCcRpABAJxGkAEAnEaQAQCcRpABAJx
GkAEAnEaQAQCcRpABAJxGkAEAnEaQAQCcRpABAJxGkAEAnEaQAQCcRpABAJxGkAEAnEaQAQCcRpABAJxGkA
EAnEaQAQCcRpABAJxGkAEAnEaQAQCcRpABAJxGkAEAnEaQAQCcRpABAJxGkAEAnEaQAQCcRpABAJyW8iA7c
+aMVq5cqaKiImVmZuqLX/
yifvrTn8rMvB4z06pVqzRhwgRlZmaqrKxMhw4dSnqezs5OVVZWKhAIKCcnRwsXLtSJEydSvV0AgOssxR599
FEbN26cbd682Q4fPmwbNmyw7Oxse/LJJ72empoaCwaDtmnTJtu7d6/
deeedVlRUZCdPnvR65syZYzNmzLC3337b3nrrLfvSl75kFRUVA95HLBYzSRRFUZTDFYvFLvj9PuVBNnfuXP
ve976XdO3uu++2ys
pKMzNLJBIWDodtzZo13npXV5f5/
X57+eWXzczs4MGDJsl27tzp9WzZssV8Pp8dO3ZsQPsgyCiKotyvgQRZyn+0ePPNN6uurk7vvfeeJGnv3r3a
vn27br/9dknS4cOHFY1GVVZW5j0mGAyqtLRUjY2NkqTGxkbl5OSopKTE6ykrK1NaWpqampr6vW9PT4/
i8XhSAQBGvvRUP+FDDz2keDyuqVOnatSoUTpz5oweffRRVVZWSpKi0agkKRQKJT0uFAp5a9FoVHl5eckbTU
/X2LFjvZ7zVVdX6yc/+UmqxwEADHMpf0X2m9/8Ri+99JJ+9atfaffu3Vq3bp3+7d/
+TevWrUv1rZJUVVUpFot51dbWNqj3AwAMDyl/
RbZ8+XI99NBD+va3vy1Jmj59uo4cOaLq6mrNnz9f4XBYktTe3q4JEyZ4j2tvb9dXv/pVSVI4HFZHR0fS8/
b19amzs9N7/Pn8fr/8fn+qxwEADHMpf0X2ySefKC0t+WlHjRqlRCIhSSoqKlI4HFZdXZ23Ho/
H1dTUpEgkIkmKRCLq6upSc3Oz11NfX69EIqHS0tJUbxkA4LIBHQG8CPPnz7eJEyd6x+9feeUVGz9+vP3oRz
/
yempqaiwnJ8deffVV27dvn9111139Hr8vLi62pqYm2759u02ePJnj9xRFUX9nNSTH7+PxuC1dutQKCwttzJ
gx9oUvfMEefvhh6+np8XoSiYStXLnSQqGQ+f1+mzVrlrW2tiY9z/
Hjx62iosKys7MtEAjYggULrLu7e8D7IMgoiqLcr4EEmc/
snLfcGEHi8biCweBQbwMAcAlisZgCgcDn9vBeiwAApxFkAACnEWQAAKcRZAAApxFkAACnEWQAAKcRZAAApx
FkAACnEWQAAKcRZAAApxFkAACnEWQAAKcRZAAApxFkAACnEWQAAKcRZAAApxFkAACnEWQAAKcRZAAApxFkA
ACnEWQAAKcRZAAApxFkAACnEWQAAKcRZAAApxFkAACnEWQAAKcRZAAApxFkAACnEWQAAKcRZAAApxFkAACn
EWQAAKcRZAAApxFkAACnEWQAAKcRZAAApxFkAACnXXSQNTQ06I477lB+fr58Pp82bdqUtG5mWrVqlSZMmKD
MzEyVlZXp0KFDST2dnZ2qrKxUIBBQTk6OFi5cqBMnTiT17Nu3T7feeqvGjBmjgoICrV69+uKnAwCMeBcdZB
9//LFmzJihp59+ut/
11atX66mnntKzzz6rpqYmXXHFFSovL9epU6e8nsrKSh04cEC1tbXavHmzGhoatGjRIm89Ho9r9uzZmjRpkp
qbm7VmzRo98sgjev755/+GEQEAI5pdAkm2ceNG7+NEImHhcNjWrFnjXevq6jK/328vv/
yymZkdPHjQJNnOnTu9ni1btpjP57Njx46Zmdkzzzxjubm51tPT4/
WsWLHCpkyZMuC9xWIxk0RRFEU5XLFY7ILf71P6O7LDhw8rGo2qrKzMuxYMBlVaWqrGxkZJUmNjo3JyclRSU
uL1lJWVKS0tTU1NTV7PbbfdpoyMDK+nvLxcra2t+uijj/
q9d09Pj+LxeFIBAEa+lAZZNBqVJIVCoaTroVDIW4tGo8rLy0taT09P19ixY5N6+nuOc+9xvurqagWDQa8KC
goufSAAwLA3Yk4tVlVVKRaLedXW1jbUWwIAXAYpDbJwOCxJam9vT7re3t7urYXDYXV0dCSt9/
X1qbOzM6mnv+c49x7n8/
v9CgQCSQUAGPlSGmRFRUUKh8Oqq6vzrsXjcTU1NSkSiUiSIpGIurq61Nzc7PXU19crkUiotLTU62loaFBvb
6/XU1tbqylTpig3NzeVWwYAuG7AxwD/
T3d3t7W0tFhLS4tJsscee8xaWlrsyJEjZmZWU1NjOTk59uqrr9q+ffvsrrvusqKiIjt58qT3HHPmzLHi4mJ
ramqy7du32+TJk62iosJb7+rqslAoZPPmzbP9+/
fb+vXrLSsry5577rkB75NTixRFUe7XQE4tXnSQbd26td+bzZ8/38z+egR/5cqVFgqFzO/
326xZs6y1tTXpOY4fP24VFRWWnZ1tgUDAFixYYN3d3Uk9e/futZkzZ5rf77eJEydaTU3NRe2TIKMoinK/
BhJkPjMzjUDxeFzBYHCotwEAuASxWOyCZx5GzKlFAMDfJ4IMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDAD
gNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNI
IMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMA
OA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4LSLDrKGhgbdcccdys/Pl8/
n06ZNm7y13t5erVixQtOnT9cVV1yh/
Px8ffe739UHH3yQ9BydnZ2qrKxUIBBQTk6OFi5cqBMnTiT17Nu3T7feeqvGjBmjgoICrV69+m+bEAAwol10
kH388ceaMWOGnn766U+tffLJJ9q9e7dWrlyp3bt365VXXlFra6vuvPPOpL7KykodOHBAtbW12rx5sxoaGrR
o0SJvPR6Pa/bs2Zo0aZKam5u1Zs0aPfLII3r++ef/hhEBACOaXQJJtnHjxs/
t2bFjh0myI0eOmJnZwYMHTZLt3LnT69myZYv5fD47duyYmZk988wzlpubaz09PV7PihUrbMqUKZ95n1OnTl
ksFvOqra3NJFEURVEOVywWu2AWDfrvyGKxmHw+n3JyciRJjY2NysnJUUlJiddTVlamtLQ0NTU1eT233XabM
jIyvJ7y8nK1trbqo48+6vc+1dXVCgaDXhUUFAzeUACAYWNQg+zUqVNasWKFKioqFAgEJEnRaFR5eXlJfenp
6Ro7dqyi0ajXEwqFknrOfny253xVVVWKxWJetbW1pXocAMAwlD5YT9zb26tvfetbMjOtXbt2sG7j8fv98vv
9g34fAMDwMihBdjbEjhw5ovr6eu/VmCSFw2F1dHQk9ff19amzs1PhcNjraW9vT+o5+/
HZHgAApEH40eLZEDt06JB+97vfady4cUnrkUhEXV1dam5u9q7V19crkUiotLTU62loaFBvb6/
XU1tbqylTpig3NzfVWwYAuOyCx0HO093dbS0tLdbS0mKS7LHHHrOWlhY7cuSInT592u688067+uqrbc+ePf
bhhx96de4JxDlz5lhxcbE1NTXZ9u3bbfLkyVZRUeGtd3V1WSgUsnnz5tn+/ftt/
fr1lpWVZc8999yA9xmLxYb8tA1FURR1aTWQU4sXHWRbt27t92bz58+3w4cPf+Zmtm7d6j3H8ePHraKiwrKz
sy0QCNiCBQusu7s76T579+61mTNnmt/
vt4kTJ1pNTc1F7ZMgoyiKcr8GEmQ+MzONQPF4XMFgcKi3AQC4BLFYLOmcRX94r0UAgNMIMgCA0wgyAIDTCD
IAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAg
NMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMI
MgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0wgyAIDTCDIAgNMIMgCA0y46yBoaGnTHHXcoPz9
fPp9PmzZt+szexYsXy+fz6Yknnki63tnZqcrKSgUCAeXk5GjhwoU6ceJEUs+
+fft06623asyYMSooKNDq1asvdqsAgL8DFx1kH3/8sWbMmKGnn376c/s2btyot99+W/
n5+Z9aq6ys1IEDB1RbW6vNmzeroaFBixYt8tbj8bhmz56tSZMmqbm5WWvWrNEjjzyi559//
mK3CwAY6ewSSLKNGzd+6vqf//xnmzhxou3fv98mTZpkjz/
+uLd28OBBk2Q7d+70rm3ZssV8Pp8dO3bMzMyeeeYZy83NtZ6eHq9nxYoVNmXKlAHvLRaLmSSKoijK4YrFYh
f8fp/
y35ElEgnNmzdPy5cv13XXXfep9cbGRuXk5KikpMS7VlZWprS0NDU1NXk9t912mzIyMrye8vJytba26qOPPu
r3vj09PYrH40kFABj5Uh5kP//5z5Wenq7777+/3/
VoNKq8vLyka+np6Ro7dqyi0ajXEwqFknrOfny253zV1dUKBoNeFRQUXOooAAAHpDTImpub9eSTT+rFF1+Uz
+dL5VNfUFVVlWKxmFdtbW2X9f4AgKGR0iB766231NHRocLCQqWnpys9PV1HjhzRgw8+qGuuuUaSFA6H1dHR
kfS4vr4+dXZ2KhwOez3t7e1JPWc/PttzPr/
fr0AgkFQAgJEvpUE2b9487du3T3v27PEqPz9fy5cv15tvvilJikQi6urqUnNzs/
e4+vp6JRIJlZaWej0NDQ3q7e31emprazVlyhTl5uamcssAANcN+Bjg/
+nu7raWlhZraWkxSfbYY49ZS0uLHTlypN/
+808tmpnNmTPHiouLrampybZv326TJ0+2iooKb72rq8tCoZDNmzfP9u/
fb+vXr7esrCx77rnnBrxPTi1SFEW5XwM5tXjRQbZ169Z+bzZ//vx++/
sLsuPHj1tFRYVlZ2dbIBCwBQsWWHd3d1LP3r17bebMmeb3+23ixIlWU1NzUfskyCiKotyvgQSZz8xMI1A8H
lcwGBzqbQAALkEsFrvgmQfeaxEA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0
ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4LQRG2Qj9O+FAsDflYF8Lx+xQXb8+PGh3gIA4BJ
1d3dfsCf9MuxjSIwdO1aSdPToUQWDwSHezd8mHo+roKBAbW1tF/
xT38PZSJiDGYaHkTCDNDLmGOwZzEzd3d3Kz8+/YO+IDbK0tL++2AwGg85+opwVCAScn0EaGXMww/
AwEmaQRsYcgznDQF+EjNgfLQIA/j4QZAAAp43YIPP7/
frxj38sv98/1Fv5m42EGaSRMQczDA8jYQZpZMwxnGbwGefUAQAOG7GvyAAAfx8IMgCA0wgyAIDTCDIAgNMI
MgCA00ZkkD399NO65pprNGbMGJWWlmrHjh1DvSVPdXW1brzxRl155ZXKy8vT17/+dbW2tib1nDp1SkuWLNG
4ceOUnZ2te+65R+3t7Uk9R48e1dy5c5WVlaW8vDwtX75cfX19l3MUT01NjXw+n5YtW+Zdc2WGY8eO6Tvf+Y
7GjRunzMxMTZ8+Xbt27fLWzUyrVq3ShAkTlJmZqbKyMh06dCjpOTo7O1VZWalAIKCcnBwtXLhQJ06cuCz7P
3PmjFauXKmioiJlZmbqi1/8on76058mvdHqcJuhoaFBd9xxh/Lz8+Xz+bRp06ak9VTtd9+
+fbr11ls1ZswYFRQUaPXq1Zdtjt7eXq1YsULTp0/XFVdcofz8fH33u9/VBx98MKzmuNC/
xbkWL14sn8+nJ554YljNIEmyEWb9+vWWkZFh//Vf/
2UHDhyw73//+5aTk2Pt7e1DvTUzMysvL7cXXnjB9u/fb3v27LF//Md/
tMLCQjtx4oTXs3jxYisoKLC6ujrbtWuX/cM//IPdfPPN3npfX59NmzbNysrKrKWlxV5//
XUbP368VVVVXfZ5duzYYddcc4195StfsaVLlzo1Q2dnp02aNMn++Z//2Zqamuz999+3N9980/77v//
b66mpqbFgMGibNm2yvXv32p133mlFRUV28uRJr2fOnDk2Y8YMe/
vtt+2tt96yL33pS1ZRUXFZZnj00Udt3LhxtnnzZjt8+LBt2LDBsrOz7cknnxy2M7z+
+uv28MMP2yuvvGKSbOPGjUnrqdhvLBazUChklZWVtn//fnv55ZctMzPTnnvuucsyR1dXl5WVldmvf/1r+
+Mf/2iNjY1200032Q033JD0HEM9x4X+Lc565ZVXbMaMGZafn2+PP/
74sJrBzGzEBdlNN91kS5Ys8T4+c+aM5efnW3V19RDu6rN1dHSYJNu2bZuZ/
fULYPTo0bZhwwav59133zVJ1tjYaGZ//
eRLS0uzaDTq9axdu9YCgYD19PRctr13d3fb5MmTrba21r72ta95QebKDCtWrLCZM2d+5noikbBwOGxr1qzx
rnV1dZnf77eXX37ZzMwOHjxokmznzp1ez5YtW8zn89mxY8cGb/P/Z+7cufa9730v6drdd99tlZWVTsxw/
jfPVO33mWeesdzc3KTPpRUrVtiUKVMuyxz92bFjh0myI0eOmNnwm+OzZvjzn/
9sEydOtP3799ukSZOSgmy4zDCifrR4+vRpNTc3q6yszLuWlpamsrIyNTY2DuHOPlssFpP0/+/
W39zcrN7e3qQZpk6dqsLCQm+GxsZGTZ8+XaFQyOspLy9XPB7XgQMHLtvelyxZorlz5ybtVXJnht/
+9rcqKSnRN7/5TeXl5am4uFi/
+MUvvPXDhw8rGo0mzREMBlVaWpo0R05OjkpKSryesrIypaWlqampadBnuPnmm1VXV6f33ntPkrR3715t375
dt99+uzMznCtV+21sbNRtt92mjIwMr6e8vFytra366KOPLtM0yWKxmHw+n3Jycrw9Dvc5EomE5s2bp+XLl+
u666771PpwmWFEBdlf/
vIXnTlzJumboySFQiFFo9Eh2tVnSyQSWrZsmW655RZNmzZNkhSNRpWRkeF9sp917gzRaLTfGc+uXQ7r16/
X7t27VV1d/ak1V2Z4//33tXbtWk2ePFlvvvmm7r33Xt1///1at25d0j4+7/
MpGo0qLy8vaT09PV1jx469LHM89NBD+va3v62pU6dq9OjRKi4u1rJly1RZWenMDOdK1X6Hw+fXuU6dOqUVK
1aooqLCe6d4F+b4+c9/rvT0dN1///39rg+XGUbsn3FxwZIlS7R//
35t3759qLdyUdra2rR06VLV1tZqzJgxQ72dv1kikVBJSYl+9rOfSZKKi4u1f/9+Pfvss5o/f/
4Q725gfvOb3+ill17Sr371K1133XXas2ePli1bpvz8fGdmGOl6e3v1rW99S2amtWvXDvV2Bqy5uVlPPvmkd
u/eLZ/
PN9Tb+Vwj6hXZ+PHjNWrUqE+djmtvb1c4HB6iXfXvvvvu0+bNm7V161ZdffXV3vVwOKzTp0+rq6srqf/
cGcLhcL8znl0bbM3Nzero6ND111+v9PR0paena9u2bXrqqaeUnp6uUCg07GeQpAkTJujaa69NuvblL39ZR4
8eTdrH530+hcNhdXR0JK339fWps7PzssyxfPly71XZ9OnTNW/ePD3wwAPeK2UXZjhXqvY7HD6/
pP8PsSNHjqi2tjbp73YN9zneeustdXR0qLCw0Ps6P3LkiB588EFdc801w2qGERVkGRkZuuGGG1RXV+ddSyQ
SqqurUyQSGcKd/
T8z03333aeNGzeqvr5eRUVFSes33HCDRo8enTRDa2urjh496s0QiUT0zjvvJH0Cnf0iOf8b82CYNWuW3nnn
He3Zs8erkpISVVZWev893GeQpFtuueVT/+vDe+
+9p0mTJkmSioqKFA6Hk+aIx+NqampKmqOrq0vNzc1eT319vRKJhEpLSwd9hk8+
+cT7I7JnjRo1SolEwpkZzpWq/
UYiETU0NKi3t9frqa2t1ZQpU5Sbm3tZZjkbYocOHdLvfvc7jRs3Lml9uM8xb9487du3L+nrPD8/
X8uXL9ebb745vGZI2bGRYWL9+vXm9/vtxRdftIMHD9qiRYssJycn6XTcULr33nstGAza73//e/
vwww+9+uSTT7yexYsXW2FhodXX19uuXbssEolYJBLx1s8eXZ89e7bt2bPH3njjDbvqqquG5Pj9WeeeWjRzY
4YdO3ZYenq6Pfroo3bo0CF76aWXLCsry375y196PTU1NZaTk2Ovvvqq7du3z+66665+j4IXFxdbU1OTbd+
+3SZPnnzZjt/Pnz/fJk6c6B2/f+WVV2z8+PH2ox/
9aNjO0N3dbS0tLdbS0mKS7LHHHrOWlhbvNF8q9tvV1WWhUMjmzZtn+/fvt/Xr11tWVlZKj3x/3hynT5+2O+
+8066++mrbs2dP0tf6uaf3hnqOC/1bnO/8U4vDYQazEXj83szsP/
7jP6ywsNAyMjLspptusrfffnuot+SR1G+98MILXs/JkyftBz/4geXm5lpWVpZ94xvfsA8//DDpef70pz/
Z7bffbpmZmTZ+/Hh78MEHrbe39zJP8//
ODzJXZnjttdds2rRp5vf7berUqfb8888nrScSCVu5cqWFQiHz+/
02a9Ysa21tTeo5fvy4VVRUWHZ2tgUCAVuwYIF1d3dflv3H43FbunSpFRYW2pgxY+wLX/
iCPfzww0nfLIfbDFu3bu33a2D+/Pkp3e/
evXtt5syZ5vf7beLEiVZTU3PZ5jh8+PBnfq1v3bp12MxxoX+L8/
UXZEM9g5kZf48MAOC0EfU7MgDA3x+CDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0ggwA4DSCDADgNIIMAOA0g
gwA4DSCDADgtP8FwPeruHk+YigAAAAASUVORK5CYII="},"metadata":{}}]},
{"cell_type":"code","source":"device = torch.device(\"cuda\" if
torch.cuda.is_available() else \"cpu\")\nprint(f\"Using device: {device}\")\
ntorch.set_default_device(device)\
ntorch.set_default_tensor_type(\"torch.cuda.FloatTensor\")","metadata":
{"id":"rQ7iRaR7rcim","execution":{"iopub.status.busy":"2024-10-
08T21:45:38.136925Z","iopub.execute_input":"2024-10-
08T21:45:38.137561Z","iopub.status.idle":"2024-10-
08T21:45:38.171695Z","shell.execute_reply.started":"2024-10-
08T21:45:38.137518Z","shell.execute_reply":"2024-10-
08T21:45:38.170690Z"},"trusted":true},"execution_count":5,"outputs":
[{"name":"stdout","text":"Using device: cuda\n","output_type":"stream"},
{"name":"stderr","text":"/opt/conda/lib/python3.10/site-packages/torch/
__init__.py:955: UserWarning: torch.set_default_tensor_type() is deprecated as of
PyTorch 2.1, please use torch.set_default_dtype() and torch.set_default_device() as
alternatives. (Triggered internally at
/usr/local/src/pytorch/torch/csrc/tensor/python_tensor.cpp:432.)\n
_C._set_default_tensor_type(t)\n","output_type":"stream"}]},
{"cell_type":"code","source":"\nclass game():\n def __init__(self):\n
self.x=450\n\n def reset(self):\n self.x=450\n self.y=0\n self.canvas =
np.zeros((1500,
1500,3))\n self.canvas[self.y:self.y+250,self.x:self.x+250]=img\n
print(self.canvas.shape)\n #resize image\n
self.canvas=preprocess(self.canvas)\n return self.canvas,0,False,{}\n def
step(self,action):\n self.canvas=np.zeros((1500,1500,3))\n print(self.y)\n
freefall=self.y+(1/2)*9.8*(2)**2\n print(\"yfuture\")\n print(freefall)\n\n
self.y=freefall\n if self.y>1500-250:\n done=True\n return
preprocess(self.canvas),1,done,{}\n else:\n done=False\n
self.y=int(freefall)\n print()\n
self.canvas[self.y:self.y+250,self.x:self.x+250]=img\n #resize image\n
stateaf=preprocess(self.canvas)\n reward=self.reward(action)\n info={}\n
return stateaf,reward,done,info\n\n\n def reward(self,action):\n
print((self.y,action))\n return
100/(1+torch.nn.functional.mse_loss(torch.tensor(action),torch.tensor(self.y)))","m
etadata":{"id":"xX96_z3Zrh7H","executionInfo":
{"status":"ok","timestamp":1728339802041,"user_tz":300,"elapsed":12,"user":
{"displayName":"DAVID SANTIAGO SANCHEZ
CEPEDA","userId":"09385389865282990454"}},"execution":{"iopub.status.busy":"2024-
10-08T21:45:38.172991Z","iopub.execute_input":"2024-10-
08T21:45:38.173308Z","iopub.status.idle":"2024-10-
08T21:45:38.184701Z","shell.execute_reply.started":"2024-10-
08T21:45:38.173275Z","shell.execute_reply":"2024-10-
08T21:45:38.183803Z"},"trusted":true},"execution_count":6,"outputs":[]},
{"cell_type":"code","source":"class ResBlock(torch.nn.Module):\n def
__init__(self,inn,outt,downsample):\n super(ResBlock,self).__init__()\n
self.conv1=torch.nn.Conv2d(inn,outt,3,padding=1)\n
self.batchnorm1=torch.nn.BatchNorm2d(outt)\n self.relu=torch.nn.ReLU()\n\n
self.downsample = downsample\n self.avgpool=torch.nn.AvgPool2d(4,4)\n if
self.downsample or inn != outt:\n self.identity_downsample =
nn.Conv2d(inn, outt, kernel_size=1, stride=1)\n self.identity_batchnorm
= nn.BatchNorm2d(outt)\n else:\n self.identity_downsample = None\n
def forward(self,x):\n residual=self.conv1(x)\n
residual=self.batchnorm1(residual)\n residual=self.relu(residual)\n identity
= x\n #print(\"identity shape\")\n #print(identity.shape)\n
#print(\"residual shape\")\n #print(residual.shape)\n if
self.identity_downsample is not None:\n identity =
self.identity_downsample(identity)\n #print(\"identity shape2\")\n
#print(identity.shape)\n identity = self.identity_batchnorm(identity)\n\n
# Add residual and identity\n output = residual + identity\n output =
self.relu(output)\n output = self.avgpool(output)\n return output\n
else:\n output = residual + identity\n output = self.relu(output)\n
output = self.avgpool(output)\n return output\n\n return output\n\n\
n","metadata":{"id":"uWBsams_rkY1","executionInfo":
{"status":"ok","timestamp":1728339802043,"user_tz":300,"elapsed":11,"user":
{"displayName":"DAVID SANTIAGO SANCHEZ
CEPEDA","userId":"09385389865282990454"}},"execution":{"iopub.status.busy":"2024-
10-08T21:45:38.185668Z","iopub.execute_input":"2024-10-
08T21:45:38.185953Z","iopub.status.idle":"2024-10-
08T21:45:38.199613Z","shell.execute_reply.started":"2024-10-
08T21:45:38.185902Z","shell.execute_reply":"2024-10-
08T21:45:38.198689Z"},"trusted":true},"execution_count":7,"outputs":[]},
{"cell_type":"code","source":"class Qfunction(torch.nn.Module):\n def
__init__(self):\n super(Qfunction,self).__init__()\n #process the image\n
self.resblock1=ResBlock(3,64,True)\n self.resblock2=ResBlock(64,128,True)\n
self.resblock3=ResBlock(128,256,True)\n self.flatten=torch.nn.Flatten()\n
self.fullyconnected=torch.nn.Linear(2304,100)\n self.selu1=torch.nn.SELU()\n
self.selu2=torch.nn.SELU()\n self.selu3=torch.nn.SELU()\n
self.fulconected2=torch.nn.Linear(101,1)\n \n\n def forward(self,x,a):\n
x=self.resblock1(x)\n x=self.resblock2(x)\n x=self.resblock3(x)\n
x=self.flatten(x)\n x=self.fullyconnected(x)\n x=self.selu1(x)\n
a=self.selu2(a)\n #concat\n x=torch.cat((x,a),dim=1)\n
x=self.fulconected2(x)\n x=self.selu3(x)\n return x\nclass
actor(torch.nn.Module):\n def __init__(self):\n super(actor,self).__init__()\n
self.resblock1=ResBlock(3,64,True)\n self.resblock2=ResBlock(64,128,True)\n
self.resblock3=ResBlock(128,256,True)\n self.flatten=torch.nn.Flatten()\n
self.fullyconnected=torch.nn.Linear(2304,100)\n self.selu=torch.nn.SELU()\n
self.linear=torch.nn.Linear(100,1)\n self.sigmoid=torch.nn.Sigmoid()\n def
forward(self,x):\n x=self.resblock1(x)\n x=self.resblock2(x)\n
x=self.resblock3(x)\n x=self.flatten(x)\n x=self.fullyconnected(x)\n
x=self.selu(x)\n x=self.linear(x)\n x=self.sigmoid(x)\n return
x","metadata":{"id":"9cqpf7llsCBg","executionInfo":
{"status":"ok","timestamp":1728339804134,"user_tz":300,"elapsed":212,"user":
{"displayName":"DAVID SANTIAGO SANCHEZ
CEPEDA","userId":"09385389865282990454"}},"execution":{"iopub.status.busy":"2024-
10-08T21:45:38.200913Z","iopub.execute_input":"2024-10-
08T21:45:38.201291Z","iopub.status.idle":"2024-10-
08T21:45:38.215465Z","shell.execute_reply.started":"2024-10-
08T21:45:38.201241Z","shell.execute_reply":"2024-10-
08T21:45:38.214675Z"},"trusted":true},"execution_count":8,"outputs":[]},
{"cell_type":"code","source":"from collections import deque\nimport json\nimport
random","metadata":{"id":"Y67ThEy9uaXJ","executionInfo":
{"status":"ok","timestamp":1728339807487,"user_tz":300,"elapsed":222,"user":
{"displayName":"DAVID SANTIAGO SANCHEZ
CEPEDA","userId":"09385389865282990454"}},"execution":{"iopub.status.busy":"2024-
10-08T21:45:38.216533Z","iopub.execute_input":"2024-10-
08T21:45:38.216915Z","iopub.status.idle":"2024-10-
08T21:45:38.228322Z","shell.execute_reply.started":"2024-10-
08T21:45:38.216878Z","shell.execute_reply":"2024-10-
08T21:45:38.227520Z"},"trusted":true},"execution_count":9,"outputs":[]},
{"cell_type":"code","source":"class trainer():\n def
__init__(self,qfunction,actor,initial_eps,decay,gamma,env):\n
self.qfunction=qfunction()\n self.actorpast=actor()\n self.actor=actor()\n
self.qfunction=qfunction()\n self.qfunctionpast=qfunction()\n
self.qfunctionpast.load_state_dict(self.qfunction.state_dict())\n
self.actorpast.load_state_dict(self.actor.state_dict())\n self.gamma=gamma\n
self.eps=initial_eps\n self.decay=decay\n self.buffer=deque(maxlen=10000)\n
self.env=env\n
self.optimizerq=torch.optim.Adam(self.qfunction.parameters(),lr=0.0001)\n
self.optimizera=torch.optim.Adam(self.actor.parameters(),lr=0.0001)\n
self.accre=[]\n self.norm=torch.distributions.Normal(0,1)\n\n def
collecttrayectories(self,t):\n while t>0:\n
state,reward,done,info=self.env.reset()\n acumulated=0\n\n while not
done:\n state=state.unsqueeze(0) \n action=self.actor(state.cuda())
if random.random() > self.eps else torch.rand((1,1))\n
action=torch.clamp(action,0,1)\n action=action*1500\n
action=action.detach()\n next_state,reward,done,info=self.env.step(action)\n
next_state=next_state.cuda()\n
self.buffer.append((state.detach(),action.detach(),reward,next_state.detach(),done)
)\n state=next_state\n t=t-1\n acumulated=acumulated+reward\n
\n self.accre.append(acumulated.cpu())\n plt.plot(self.accre)\n
plt.savefig(\"accreward\")\n plt.clf()\n clear_output()\n\n def
gradientstep(self,epochs):\n batch=random.sample(self.buffer,30)\n
states,actions,rewards,next_states,dones=zip(*batch)\n for i in range(epochs):\n
\n \n concatlossesq=torch.tensor([[0]]).float()\n
concatlossesa=torch.tensor([[0]]).float()\n self.eps*=self.decay\n for z
in range(len(states)):\n actual_state=states[z].cuda()\n
actual_action=actions[z]\n actual_reward=rewards[z]\n
actual_next_state=next_states[z].cuda()\n actual_done=dones[z]\n
#actual_state=actual_state.unsqueeze(0)\n
actual_next_state=actual_next_state.unsqueeze(0)\n #print(\"actual state\")\
n #print(actual_state.shape)\n #print(\"actual next state\")\n
#print(actual_next_state.shape)\n
actorpast=self.actorpast(actual_next_state)\n
q_past=self.qfunctionpast(actual_next_state,actorpast)\n
y=actual_reward+self.gamma*(1-int(actual_done))*q_past\n y=torch.reshape(y,
(-1,1))\n actualq=self.qfunction(actual_state,actual_action)\n
lossq=torch.nn.SmoothL1Loss()(actualq,y)\n #lossq=actualq\n
concatlossesq=concatlossesq + lossq\n actual_actor=self.actor(actual_state)\
n xd=torch.Tensor([[1500]]).detach()\n \n\n lossa=-
self.qfunction(actual_state.detach(),actual_actor)\n
concatlossesa=concatlossesa + lossa\n concatlossesq=concatlossesq/len(states)\
n concatlossesa=concatlossesa/len(states)\n #self.optimizerq.zero_grad()\
n\n #concatlossesq.backward(retain_graph=True)\n \n
#self.optimizerq.step()\n self.optimizera.zero_grad()\n
self.optimizerq.zero_grad()\n concatlossesa.backward(retain_graph=True)\n
torch.nn.utils.clip_grad_norm_(self.actor.parameters(),max_norm=1)\n
concatlossesq.backward(retain_graph=True)\n
torch.nn.utils.clip_grad_norm_(self.qfunction.parameters(),max_norm=1)\n
self.optimizera.step()\n self.optimizerq.step()\n \n
self.printgrad()\n def update(self,p):\n with torch.no_grad():\n for
param,target_param in
zip(self.qfunction.parameters(),self.qfunctionpast.parameters()):\n
target_param.data.copy_(p*target_param.data+(1-p)*param.data)\n def
printgrad(self):\n prms={}\n for name,param in
self.qfunction.named_parameters():\n if param.requires_grad:\n
#print(name)\n #print(param.grad)\n
prms[name]=str(param.grad.cpu().detach().numpy())\n for name,param in
self.actor.named_parameters():\n if param.requires_grad:\n
prms[name]=str(param.grad.cpu().detach().numpy())\n prms[\"eps\"]=self.eps \n
\n with open('data.json', 'w') as json_file:\n json.dump(prms, json_file)\
n\n\n\n\n","metadata":{"id":"rukNXgLKt2u3","executionInfo":
{"status":"ok","timestamp":1728339834657,"user_tz":300,"elapsed":696,"user":
{"displayName":"DAVID SANTIAGO SANCHEZ
CEPEDA","userId":"09385389865282990454"}},"execution":{"iopub.status.busy":"2024-
10-08T21:45:38.229766Z","iopub.execute_input":"2024-10-
08T21:45:38.230129Z","iopub.status.idle":"2024-10-
08T21:45:38.254882Z","shell.execute_reply.started":"2024-10-
08T21:45:38.230087Z","shell.execute_reply":"2024-10-
08T21:45:38.253977Z"},"trusted":true},"execution_count":10,"outputs":[]},
{"cell_type":"code","source":"from IPython.display import clear_output","metadata":
{"execution":{"iopub.status.busy":"2024-10-
08T21:45:38.256122Z","iopub.execute_input":"2024-10-
08T21:45:38.256475Z","iopub.status.idle":"2024-10-
08T21:45:38.268104Z","shell.execute_reply.started":"2024-10-
08T21:45:38.256430Z","shell.execute_reply":"2024-10-
08T21:45:38.267275Z"},"trusted":true},"execution_count":11,"outputs":[]},
{"cell_type":"code","source":"#main loop\
ntrain=trainer(Qfunction,actor,0.999,0.999,0.99,game())\nidk=500\
ntorch.autograd.set_detect_anomaly(True)\nfor i in range(idk):\n
train.collecttrayectories(30)\n train.gradientstep(10)\n \n if i%10==0:\n
train.update(0.9)\n train.printgrad()\n \n clear_output()\n","metadata":
{"colab":{"base_uri":"https://localhost:8080/"},"id":"s5feAtag2Hw0","outputId":"a7d
e1f9b-30bf-4172-8937-2936db5256dc","execution":{"iopub.status.busy":"2024-10-
08T21:45:38.269382Z","iopub.execute_input":"2024-10-
08T21:45:38.269750Z"},"trusted":true},"execution_count":null,"outputs":[]}]}