0% found this document useful (0 votes)
10 views9 pages

Ddpgresnet Ipynb

The document contains a Jupyter notebook that utilizes Python libraries such as PyTorch and torchvision for image processing and model training. It includes code for downloading datasets from Kaggle, preprocessing images, and creating a canvas for displaying images. The notebook is set up to run on a GPU-enabled environment, indicating a focus on deep learning applications.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views9 pages

Ddpgresnet Ipynb

The document contains a Jupyter notebook that utilizes Python libraries such as PyTorch and torchvision for image processing and model training. It includes code for downloading datasets from Kaggle, preprocessing images, and creating a canvas for displaying images. The notebook is set up to run on a GPU-enabled environment, indicating a focus on deep learning applications.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 9

{"metadata":{"colab":{"provenance":[],"authorship_tag":"ABX9TyNxTM/

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":[]}]}

You might also like