├── .gitignore ├── .ipynb_checkpoints └── lbs-notebook-1-checkpoint.ipynb ├── lbs-ep-2 ├── .ipynb_checkpoints │ └── lbs-notebook-2-checkpoint.ipynb ├── images-tree-hotdog-tea │ └── original │ │ ├── hotdog-0.jpg │ │ ├── hotdog-1.jpg │ │ ├── hotdog-10.jpg │ │ ├── hotdog-11.jpg │ │ ├── hotdog-12.jpg │ │ ├── hotdog-13.jpg │ │ ├── hotdog-14.jpg │ │ ├── hotdog-15.jpg │ │ ├── hotdog-16.jpg │ │ ├── hotdog-17.jpg │ │ ├── hotdog-18.jpg │ │ ├── hotdog-19.jpg │ │ ├── hotdog-2.jpg │ │ ├── hotdog-20.jpg │ │ ├── hotdog-21.jpg │ │ ├── hotdog-22.jpg │ │ ├── hotdog-23.jpg │ │ ├── hotdog-3.jpg │ │ ├── hotdog-4.jpg │ │ ├── hotdog-5.jpg │ │ ├── hotdog-6.jpg │ │ ├── hotdog-7.jpg │ │ ├── hotdog-8.jpg │ │ ├── hotdog-9.jpg │ │ ├── tea-0.jpg │ │ ├── tea-1.jpg │ │ ├── tea-10.jpg │ │ ├── tea-11.jpg │ │ ├── tea-12.jpg │ │ ├── tea-13.jpg │ │ ├── tea-14.jpg │ │ ├── tea-15.jpg │ │ ├── tea-16.jpg │ │ ├── tea-17.jpg │ │ ├── tea-18.jpg │ │ ├── tea-19.jpg │ │ ├── tea-2.jpg │ │ ├── tea-20.jpg │ │ ├── tea-21.jpg │ │ ├── tea-22.jpg │ │ ├── tea-23.jpg │ │ ├── tea-3.jpg │ │ ├── tea-4.jpg │ │ ├── tea-5.jpg │ │ ├── tea-6.jpg │ │ ├── tea-7.jpg │ │ ├── tea-8.jpg │ │ ├── tea-9.jpg │ │ ├── tree-0.jpg │ │ ├── tree-1.jpg │ │ ├── tree-10.jpg │ │ ├── tree-11.jpg │ │ ├── tree-12.jpg │ │ ├── tree-13.jpg │ │ ├── tree-14.jpg │ │ ├── tree-15.jpg │ │ ├── tree-16.jpg │ │ ├── tree-17.jpg │ │ ├── tree-18.jpg │ │ ├── tree-19.jpg │ │ ├── tree-2.jpg │ │ ├── tree-20.jpg │ │ ├── tree-21.jpg │ │ ├── tree-22.jpg │ │ ├── tree-23.jpg │ │ ├── tree-3.jpg │ │ ├── tree-4.jpg │ │ ├── tree-5.jpg │ │ ├── tree-6.jpg │ │ ├── tree-7.jpg │ │ ├── tree-8.jpg │ │ └── tree-9.jpg ├── lbs-notebook-2.ipynb ├── lbs-things.pdf ├── train_lst.lst └── val_lst.lst ├── lbs-ep-3 ├── .ipynb_checkpoints │ └── get-training-image-uris-checkpoint.ipynb ├── get-training-image-uris.ipynb └── model.txt ├── lbs-ep-4 ├── .ipynb_checkpoints │ └── lbs-ep-4-notebook-checkpoint.ipynb ├── lbs-ep-4-notebook.ipynb ├── test_1.jpg ├── test_2.jpg └── test_3.jpg ├── lbs-ep-5 ├── .ipynb_checkpoints │ └── Untitled-checkpoint.ipynb ├── Untitled.ipynb ├── test_1.jpg ├── test_2.jpg └── test_3.jpg ├── lbs-ep-6 ├── lambda-function │ └── lambda_function.py ├── readme.md └── s3-website │ ├── app.js │ ├── back.png │ ├── index.html │ ├── tea.svg │ ├── test_1.jpg │ ├── test_2.jpg │ └── test_3.jpg ├── lbs-notebook-1.ipynb └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/lbs-notebook-1-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "68e58829", 6 | "metadata": {}, 7 | "source": [ 8 | "# Let's Build Soemthing Live\n", 9 | "\n", 10 | "Lets get going\n", 11 | "\n", 12 | "! Don't worry if you get TensorFlow WARNINGs running this code. Its part and parcel of running TF in environments like this :) " 13 | ] 14 | }, 15 | { 16 | "cell_type": "code", 17 | "execution_count": 1, 18 | "id": "48e09213", 19 | "metadata": {}, 20 | "outputs": [ 21 | { 22 | "name": "stdout", 23 | "output_type": "stream", 24 | "text": [ 25 | "WARNING:tensorflow:From /home/ec2-user/anaconda3/envs/tensorflow_p37/cpu/lib/python3.7/site-packages/tensorflow_core/__init__.py:1473: The name tf.estimator.inputs is deprecated. Please use tf.compat.v1.estimator.inputs instead.\n", 26 | "\n" 27 | ] 28 | } 29 | ], 30 | "source": [ 31 | "import tensorflow as tf" 32 | ] 33 | }, 34 | { 35 | "cell_type": "code", 36 | "execution_count": 2, 37 | "id": "d330b72c", 38 | "metadata": {}, 39 | "outputs": [], 40 | "source": [ 41 | "mnist = tf.keras.datasets.mnist" 42 | ] 43 | }, 44 | { 45 | "cell_type": "code", 46 | "execution_count": 3, 47 | "id": "265d18a7", 48 | "metadata": {}, 49 | "outputs": [ 50 | { 51 | "name": "stdout", 52 | "output_type": "stream", 53 | "text": [ 54 | "\n" 55 | ] 56 | } 57 | ], 58 | "source": [ 59 | "print(mnist)" 60 | ] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "execution_count": 4, 65 | "id": "f7134220", 66 | "metadata": {}, 67 | "outputs": [], 68 | "source": [ 69 | "(X_train, y_train),(X_test, y_test) = mnist.load_data()" 70 | ] 71 | }, 72 | { 73 | "cell_type": "code", 74 | "execution_count": 5, 75 | "id": "af91cbea", 76 | "metadata": {}, 77 | "outputs": [ 78 | { 79 | "data": { 80 | "text/plain": [ 81 | "array([[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 82 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 83 | " 0, 0],\n", 84 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 85 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 86 | " 0, 0],\n", 87 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 88 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 89 | " 0, 0],\n", 90 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 91 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 92 | " 0, 0],\n", 93 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 118,\n", 94 | " 219, 166, 118, 118, 6, 0, 0, 0, 0, 0, 0, 0, 0,\n", 95 | " 0, 0],\n", 96 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 242, 254,\n", 97 | " 254, 254, 254, 254, 66, 0, 0, 0, 0, 0, 0, 0, 0,\n", 98 | " 0, 0],\n", 99 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 232, 254,\n", 100 | " 254, 254, 254, 254, 238, 70, 0, 0, 0, 0, 0, 0, 0,\n", 101 | " 0, 0],\n", 102 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 244,\n", 103 | " 254, 224, 254, 254, 254, 141, 0, 0, 0, 0, 0, 0, 0,\n", 104 | " 0, 0],\n", 105 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207,\n", 106 | " 254, 210, 254, 254, 254, 34, 0, 0, 0, 0, 0, 0, 0,\n", 107 | " 0, 0],\n", 108 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,\n", 109 | " 206, 254, 254, 254, 254, 41, 0, 0, 0, 0, 0, 0, 0,\n", 110 | " 0, 0],\n", 111 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 112 | " 24, 209, 254, 254, 254, 171, 0, 0, 0, 0, 0, 0, 0,\n", 113 | " 0, 0],\n", 114 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91,\n", 115 | " 137, 253, 254, 254, 254, 112, 0, 0, 0, 0, 0, 0, 0,\n", 116 | " 0, 0],\n", 117 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 214, 250,\n", 118 | " 254, 254, 254, 254, 254, 34, 0, 0, 0, 0, 0, 0, 0,\n", 119 | " 0, 0],\n", 120 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 247, 254,\n", 121 | " 254, 254, 254, 254, 254, 146, 0, 0, 0, 0, 0, 0, 0,\n", 122 | " 0, 0],\n", 123 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 246,\n", 124 | " 254, 254, 254, 254, 254, 171, 0, 0, 0, 0, 0, 0, 0,\n", 125 | " 0, 0],\n", 126 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,\n", 127 | " 89, 89, 93, 240, 254, 171, 0, 0, 0, 0, 0, 0, 0,\n", 128 | " 0, 0],\n", 129 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 130 | " 0, 0, 1, 128, 254, 219, 31, 0, 0, 0, 0, 0, 0,\n", 131 | " 0, 0],\n", 132 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 133 | " 0, 0, 7, 254, 254, 214, 28, 0, 0, 0, 0, 0, 0,\n", 134 | " 0, 0],\n", 135 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 136 | " 0, 0, 138, 254, 254, 116, 0, 0, 0, 0, 0, 0, 0,\n", 137 | " 0, 0],\n", 138 | " [ 0, 0, 0, 0, 0, 0, 19, 177, 90, 0, 0, 0, 0,\n", 139 | " 0, 25, 240, 254, 254, 34, 0, 0, 0, 0, 0, 0, 0,\n", 140 | " 0, 0],\n", 141 | " [ 0, 0, 0, 0, 0, 0, 164, 254, 215, 63, 36, 0, 51,\n", 142 | " 89, 206, 254, 254, 139, 8, 0, 0, 0, 0, 0, 0, 0,\n", 143 | " 0, 0],\n", 144 | " [ 0, 0, 0, 0, 0, 0, 57, 197, 254, 254, 222, 180, 241,\n", 145 | " 254, 254, 253, 213, 11, 0, 0, 0, 0, 0, 0, 0, 0,\n", 146 | " 0, 0],\n", 147 | " [ 0, 0, 0, 0, 0, 0, 0, 140, 105, 254, 254, 254, 254,\n", 148 | " 254, 254, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 149 | " 0, 0],\n", 150 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 7, 117, 117, 165, 254,\n", 151 | " 254, 239, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 152 | " 0, 0],\n", 153 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 154 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 155 | " 0, 0],\n", 156 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 157 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 158 | " 0, 0],\n", 159 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 160 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 161 | " 0, 0],\n", 162 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 163 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 164 | " 0, 0]], dtype=uint8)" 165 | ] 166 | }, 167 | "execution_count": 5, 168 | "metadata": {}, 169 | "output_type": "execute_result" 170 | } 171 | ], 172 | "source": [ 173 | "X_train[10]" 174 | ] 175 | }, 176 | { 177 | "cell_type": "code", 178 | "execution_count": 6, 179 | "id": "dd2b48b9", 180 | "metadata": {}, 181 | "outputs": [ 182 | { 183 | "data": { 184 | "text/plain": [ 185 | "3" 186 | ] 187 | }, 188 | "execution_count": 6, 189 | "metadata": {}, 190 | "output_type": "execute_result" 191 | } 192 | ], 193 | "source": [ 194 | "y_train[10]" 195 | ] 196 | }, 197 | { 198 | "cell_type": "code", 199 | "execution_count": 7, 200 | "id": "53c66f4b", 201 | "metadata": {}, 202 | "outputs": [], 203 | "source": [ 204 | "import matplotlib.pyplot as plt" 205 | ] 206 | }, 207 | { 208 | "cell_type": "code", 209 | "execution_count": 8, 210 | "id": "c5aaa54f", 211 | "metadata": {}, 212 | "outputs": [ 213 | { 214 | "data": { 215 | "text/plain": [ 216 | "" 217 | ] 218 | }, 219 | "execution_count": 8, 220 | "metadata": {}, 221 | "output_type": "execute_result" 222 | }, 223 | { 224 | "data": { 225 | "image/png": "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\n", 226 | "text/plain": [ 227 | "
" 228 | ] 229 | }, 230 | "metadata": { 231 | "needs_background": "light" 232 | }, 233 | "output_type": "display_data" 234 | } 235 | ], 236 | "source": [ 237 | "plt.imshow(X_train[10])" 238 | ] 239 | }, 240 | { 241 | "cell_type": "code", 242 | "execution_count": 9, 243 | "id": "60d27b24", 244 | "metadata": {}, 245 | "outputs": [ 246 | { 247 | "name": "stdout", 248 | "output_type": "stream", 249 | "text": [ 250 | "WARNING:tensorflow:From /home/ec2-user/anaconda3/envs/tensorflow_p37/cpu/lib/python3.7/site-packages/tensorflow_core/python/ops/resource_variable_ops.py:1630: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.\n", 251 | "Instructions for updating:\n", 252 | "If using Keras pass *_constraint arguments to layers.\n" 253 | ] 254 | } 255 | ], 256 | "source": [ 257 | "model = tf.keras.models.Sequential([\n", 258 | " tf.keras.layers.Flatten(input_shape=(28, 28)),\n", 259 | " tf.keras.layers.Dense(128, activation='relu'),\n", 260 | " tf.keras.layers.Dropout(0.2),\n", 261 | " tf.keras.layers.Dense(10, activation='softmax')\n", 262 | "])" 263 | ] 264 | }, 265 | { 266 | "cell_type": "code", 267 | "execution_count": 10, 268 | "id": "30bf967a", 269 | "metadata": {}, 270 | "outputs": [], 271 | "source": [ 272 | "model.compile(optimizer='adam',\n", 273 | " loss='sparse_categorical_crossentropy',\n", 274 | " metrics=['accuracy'])" 275 | ] 276 | }, 277 | { 278 | "cell_type": "code", 279 | "execution_count": 11, 280 | "id": "3d88fe5b", 281 | "metadata": {}, 282 | "outputs": [ 283 | { 284 | "name": "stdout", 285 | "output_type": "stream", 286 | "text": [ 287 | "WARNING:tensorflow:From /home/ec2-user/anaconda3/envs/tensorflow_p37/lib/python3.7/site-packages/horovod/tensorflow/__init__.py:163: The name tf.global_variables is deprecated. Please use tf.compat.v1.global_variables instead.\n", 288 | "\n", 289 | "WARNING:tensorflow:From /home/ec2-user/anaconda3/envs/tensorflow_p37/lib/python3.7/site-packages/horovod/tensorflow/__init__.py:189: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", 290 | "\n", 291 | "[2021-09-27 22:43:54.418 ip-172-16-38-40.ap-southeast-2.compute.internal:9998 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\n", 292 | "[2021-09-27 22:43:55.484 ip-172-16-38-40.ap-southeast-2.compute.internal:9998 INFO profiler_config_parser.py:111] Unable to find config at /opt/ml/input/config/profilerconfig.json. Profiler is disabled.\n", 293 | "Train on 60000 samples\n", 294 | "WARNING:tensorflow:OMP_NUM_THREADS is no longer used by the default Keras config. To configure the number of threads, use tf.config.threading APIs.\n", 295 | "Epoch 1/5\n", 296 | "60000/60000 [==============================] - 10s 162us/sample - loss: 2.6936 - acc: 0.7738\n", 297 | "Epoch 2/5\n", 298 | "60000/60000 [==============================] - 6s 92us/sample - loss: 0.5696 - acc: 0.8528\n", 299 | "Epoch 3/5\n", 300 | "60000/60000 [==============================] - 6s 92us/sample - loss: 0.4790 - acc: 0.8728\n", 301 | "Epoch 4/5\n", 302 | "60000/60000 [==============================] - 6s 97us/sample - loss: 0.4184 - acc: 0.8916\n", 303 | "Epoch 5/5\n", 304 | "60000/60000 [==============================] - 6s 92us/sample - loss: 0.3968 - acc: 0.9005\n" 305 | ] 306 | }, 307 | { 308 | "data": { 309 | "text/plain": [ 310 | "" 311 | ] 312 | }, 313 | "execution_count": 11, 314 | "metadata": {}, 315 | "output_type": "execute_result" 316 | } 317 | ], 318 | "source": [ 319 | "model.fit(X_train, y_train, epochs=5)" 320 | ] 321 | }, 322 | { 323 | "cell_type": "code", 324 | "execution_count": 12, 325 | "id": "088354e6", 326 | "metadata": {}, 327 | "outputs": [ 328 | { 329 | "data": { 330 | "text/plain": [ 331 | "" 332 | ] 333 | }, 334 | "execution_count": 12, 335 | "metadata": {}, 336 | "output_type": "execute_result" 337 | }, 338 | { 339 | "data": { 340 | "image/png": "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\n", 341 | "text/plain": [ 342 | "
" 343 | ] 344 | }, 345 | "metadata": { 346 | "needs_background": "light" 347 | }, 348 | "output_type": "display_data" 349 | } 350 | ], 351 | "source": [ 352 | "plt.imshow(X_test[4])" 353 | ] 354 | }, 355 | { 356 | "cell_type": "code", 357 | "execution_count": 13, 358 | "id": "73a8283e", 359 | "metadata": {}, 360 | "outputs": [ 361 | { 362 | "data": { 363 | "text/plain": [ 364 | "4" 365 | ] 366 | }, 367 | "execution_count": 13, 368 | "metadata": {}, 369 | "output_type": "execute_result" 370 | } 371 | ], 372 | "source": [ 373 | "y_test[4]" 374 | ] 375 | }, 376 | { 377 | "cell_type": "code", 378 | "execution_count": 14, 379 | "id": "3e397830", 380 | "metadata": {}, 381 | "outputs": [ 382 | { 383 | "data": { 384 | "text/plain": [ 385 | "array([[2.4977331e-07, 2.6878050e-07, 7.2632721e-03, 3.2813968e-08,\n", 386 | " 9.6082795e-01, 2.1373437e-05, 1.3506884e-07, 1.4954335e-02,\n", 387 | " 9.3570343e-08, 1.6932266e-02]], dtype=float32)" 388 | ] 389 | }, 390 | "execution_count": 14, 391 | "metadata": {}, 392 | "output_type": "execute_result" 393 | } 394 | ], 395 | "source": [ 396 | "model.predict([[X_test[4]]])" 397 | ] 398 | }, 399 | { 400 | "cell_type": "code", 401 | "execution_count": 15, 402 | "id": "0a368d71", 403 | "metadata": {}, 404 | "outputs": [], 405 | "source": [ 406 | "import numpy as np" 407 | ] 408 | }, 409 | { 410 | "cell_type": "code", 411 | "execution_count": 16, 412 | "id": "2ff90a9f", 413 | "metadata": {}, 414 | "outputs": [], 415 | "source": [ 416 | "pred = model.predict([[X_test[4]]])" 417 | ] 418 | }, 419 | { 420 | "cell_type": "code", 421 | "execution_count": 17, 422 | "id": "9e738b84", 423 | "metadata": {}, 424 | "outputs": [ 425 | { 426 | "data": { 427 | "text/plain": [ 428 | "4" 429 | ] 430 | }, 431 | "execution_count": 17, 432 | "metadata": {}, 433 | "output_type": "execute_result" 434 | } 435 | ], 436 | "source": [ 437 | "np.argmax(pred)" 438 | ] 439 | }, 440 | { 441 | "cell_type": "code", 442 | "execution_count": null, 443 | "id": "40d3599c", 444 | "metadata": {}, 445 | "outputs": [], 446 | "source": [] 447 | } 448 | ], 449 | "metadata": { 450 | "kernelspec": { 451 | "display_name": "conda_tensorflow_p37", 452 | "language": "python", 453 | "name": "conda_tensorflow_p37" 454 | }, 455 | "language_info": { 456 | "codemirror_mode": { 457 | "name": "ipython", 458 | "version": 3 459 | }, 460 | "file_extension": ".py", 461 | "mimetype": "text/x-python", 462 | "name": "python", 463 | "nbconvert_exporter": "python", 464 | "pygments_lexer": "ipython3", 465 | "version": "3.7.10" 466 | } 467 | }, 468 | "nbformat": 4, 469 | "nbformat_minor": 5 470 | } 471 | -------------------------------------------------------------------------------- /lbs-ep-2/.ipynb_checkpoints/lbs-notebook-2-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 5 6 | } 7 | -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-0.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-1.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-10.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-11.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-12.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-13.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-14.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-15.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-16.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-17.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-18.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-19.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-2.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-20.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-21.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-22.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-23.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-3.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-4.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-5.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-6.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-7.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-8.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/hotdog-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/hotdog-9.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-0.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-1.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-10.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-11.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-12.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-13.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-14.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-15.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-16.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-17.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-18.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-19.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-2.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-20.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-21.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-22.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-23.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-3.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-4.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-5.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-6.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-7.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-8.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tea-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tea-9.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-0.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-1.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-10.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-11.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-12.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-13.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-14.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-15.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-16.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-17.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-18.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-19.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-2.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-20.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-21.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-22.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-23.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-3.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-4.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-5.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-6.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-7.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-8.jpg -------------------------------------------------------------------------------- /lbs-ep-2/images-tree-hotdog-tea/original/tree-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/images-tree-hotdog-tea/original/tree-9.jpg -------------------------------------------------------------------------------- /lbs-ep-2/lbs-notebook-2.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "id": "d384cded", 7 | "metadata": {}, 8 | "outputs": [ 9 | { 10 | "name": "stdout", 11 | "output_type": "stream", 12 | "text": [ 13 | "Hello LBS\n" 14 | ] 15 | } 16 | ], 17 | "source": [ 18 | "print(\"Hello LBS\")" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 2, 24 | "id": "e582d828", 25 | "metadata": {}, 26 | "outputs": [], 27 | "source": [ 28 | "classes = ['tree', 'hotdog', 'tea']" 29 | ] 30 | }, 31 | { 32 | "cell_type": "code", 33 | "execution_count": 3, 34 | "id": "03e9900f", 35 | "metadata": {}, 36 | "outputs": [], 37 | "source": [ 38 | "train_lst = []\n", 39 | "val_lst = []" 40 | ] 41 | }, 42 | { 43 | "cell_type": "code", 44 | "execution_count": 9, 45 | "id": "bf29a77e", 46 | "metadata": {}, 47 | "outputs": [], 48 | "source": [ 49 | "for c in range(len(classes)):\n", 50 | " \n", 51 | " for i in range(0,20):\n", 52 | " train_lst.append(\"{}\\t{}-{}.jpg\".format(c, classes[c] ,i))\n", 53 | " \n", 54 | " for i in range(20,24):\n", 55 | " val_lst.append(\"{}\\t{}-{}.jpg\".format(c, classes[c] ,i)) \n", 56 | " " 57 | ] 58 | }, 59 | { 60 | "cell_type": "code", 61 | "execution_count": 11, 62 | "id": "0715a51c", 63 | "metadata": {}, 64 | "outputs": [], 65 | "source": [ 66 | "import random" 67 | ] 68 | }, 69 | { 70 | "cell_type": "code", 71 | "execution_count": 12, 72 | "id": "125bd4cc", 73 | "metadata": {}, 74 | "outputs": [], 75 | "source": [ 76 | "random.shuffle(train_lst)\n", 77 | "random.shuffle(val_lst)" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": 14, 83 | "id": "de871262", 84 | "metadata": {}, 85 | "outputs": [ 86 | { 87 | "name": "stdout", 88 | "output_type": "stream", 89 | "text": [ 90 | "0\t1\thotdog-18.jpg\n", 91 | "1\t0\ttree-19.jpg\n", 92 | "2\t2\ttea-15.jpg\n", 93 | "3\t0\ttree-0.jpg\n", 94 | "4\t2\ttea-14.jpg\n", 95 | "5\t1\thotdog-4.jpg\n", 96 | "6\t2\ttea-10.jpg\n", 97 | "7\t0\ttree-8.jpg\n", 98 | "8\t0\ttree-16.jpg\n", 99 | "9\t2\ttea-12.jpg\n", 100 | "10\t1\thotdog-7.jpg\n", 101 | "11\t2\ttea-3.jpg\n", 102 | "12\t0\ttree-15.jpg\n", 103 | "13\t1\thotdog-19.jpg\n", 104 | "14\t1\thotdog-11.jpg\n", 105 | "15\t0\ttree-5.jpg\n", 106 | "16\t1\thotdog-12.jpg\n", 107 | "17\t1\thotdog-16.jpg\n", 108 | "18\t2\ttea-16.jpg\n", 109 | "19\t0\ttree-9.jpg\n", 110 | "20\t0\ttree-14.jpg\n", 111 | "21\t1\thotdog-15.jpg\n", 112 | "22\t1\thotdog-0.jpg\n", 113 | "23\t1\thotdog-17.jpg\n", 114 | "24\t2\ttea-6.jpg\n", 115 | "25\t0\ttree-6.jpg\n", 116 | "26\t2\ttea-0.jpg\n", 117 | "27\t2\ttea-1.jpg\n", 118 | "28\t1\thotdog-3.jpg\n", 119 | "29\t2\ttea-17.jpg\n", 120 | "30\t1\thotdog-10.jpg\n", 121 | "31\t2\ttea-7.jpg\n", 122 | "32\t0\ttree-4.jpg\n", 123 | "33\t2\ttea-8.jpg\n", 124 | "34\t0\ttree-18.jpg\n", 125 | "35\t2\ttea-18.jpg\n", 126 | "36\t0\ttree-3.jpg\n", 127 | "37\t0\ttree-11.jpg\n", 128 | "38\t0\ttree-17.jpg\n", 129 | "39\t1\thotdog-13.jpg\n", 130 | "40\t1\thotdog-1.jpg\n", 131 | "41\t1\thotdog-2.jpg\n", 132 | "42\t1\thotdog-14.jpg\n", 133 | "43\t2\ttea-19.jpg\n", 134 | "44\t1\thotdog-6.jpg\n", 135 | "45\t0\ttree-1.jpg\n", 136 | "46\t2\ttea-13.jpg\n", 137 | "47\t2\ttea-9.jpg\n", 138 | "48\t0\ttree-13.jpg\n", 139 | "49\t2\ttea-5.jpg\n", 140 | "50\t1\thotdog-8.jpg\n", 141 | "51\t0\ttree-10.jpg\n", 142 | "52\t1\thotdog-9.jpg\n", 143 | "53\t1\thotdog-5.jpg\n", 144 | "54\t0\ttree-7.jpg\n", 145 | "55\t0\ttree-12.jpg\n", 146 | "56\t2\ttea-11.jpg\n", 147 | "57\t2\ttea-2.jpg\n", 148 | "58\t2\ttea-4.jpg\n", 149 | "59\t0\ttree-2.jpg\n" 150 | ] 151 | } 152 | ], 153 | "source": [ 154 | "for i in range(len(train_lst)):\n", 155 | " print( \"{}\\t{}\".format( i, train_lst[i] ) )" 156 | ] 157 | }, 158 | { 159 | "cell_type": "code", 160 | "execution_count": 15, 161 | "id": "2e83817d", 162 | "metadata": {}, 163 | "outputs": [ 164 | { 165 | "name": "stdout", 166 | "output_type": "stream", 167 | "text": [ 168 | "0\t0\ttree-22.jpg\n", 169 | "1\t1\thotdog-20.jpg\n", 170 | "2\t2\ttea-23.jpg\n", 171 | "3\t0\ttree-23.jpg\n", 172 | "4\t1\thotdog-21.jpg\n", 173 | "5\t1\thotdog-23.jpg\n", 174 | "6\t0\ttree-21.jpg\n", 175 | "7\t1\thotdog-22.jpg\n", 176 | "8\t0\ttree-20.jpg\n", 177 | "9\t2\ttea-20.jpg\n", 178 | "10\t2\ttea-21.jpg\n", 179 | "11\t2\ttea-22.jpg\n" 180 | ] 181 | } 182 | ], 183 | "source": [ 184 | "for i in range(len(val_lst)):\n", 185 | " print( \"{}\\t{}\".format( i, val_lst[i] ) )" 186 | ] 187 | }, 188 | { 189 | "cell_type": "markdown", 190 | "id": "421924da", 191 | "metadata": {}, 192 | "source": [ 193 | "id class image_path\n", 194 | "0 0 /path/to/image-tree-0\n", 195 | "1 1 " 196 | ] 197 | } 198 | ], 199 | "metadata": { 200 | "kernelspec": { 201 | "display_name": "conda_python3", 202 | "language": "python", 203 | "name": "conda_python3" 204 | }, 205 | "language_info": { 206 | "codemirror_mode": { 207 | "name": "ipython", 208 | "version": 3 209 | }, 210 | "file_extension": ".py", 211 | "mimetype": "text/x-python", 212 | "name": "python", 213 | "nbconvert_exporter": "python", 214 | "pygments_lexer": "ipython3", 215 | "version": "3.6.13" 216 | } 217 | }, 218 | "nbformat": 4, 219 | "nbformat_minor": 5 220 | } 221 | -------------------------------------------------------------------------------- /lbs-ep-2/lbs-things.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-2/lbs-things.pdf -------------------------------------------------------------------------------- /lbs-ep-2/train_lst.lst: -------------------------------------------------------------------------------- 1 | 0 1 hotdog-18.jpg 2 | 1 0 tree-19.jpg 3 | 2 2 tea-15.jpg 4 | 3 0 tree-0.jpg 5 | 4 2 tea-14.jpg 6 | 5 1 hotdog-4.jpg 7 | 6 2 tea-10.jpg 8 | 7 0 tree-8.jpg 9 | 8 0 tree-16.jpg 10 | 9 2 tea-12.jpg 11 | 10 1 hotdog-7.jpg 12 | 11 2 tea-3.jpg 13 | 12 0 tree-15.jpg 14 | 13 1 hotdog-19.jpg 15 | 14 1 hotdog-11.jpg 16 | 15 0 tree-5.jpg 17 | 16 1 hotdog-12.jpg 18 | 17 1 hotdog-16.jpg 19 | 18 2 tea-16.jpg 20 | 19 0 tree-9.jpg 21 | 20 0 tree-14.jpg 22 | 21 1 hotdog-15.jpg 23 | 22 1 hotdog-0.jpg 24 | 23 1 hotdog-17.jpg 25 | 24 2 tea-6.jpg 26 | 25 0 tree-6.jpg 27 | 26 2 tea-0.jpg 28 | 27 2 tea-1.jpg 29 | 28 1 hotdog-3.jpg 30 | 29 2 tea-17.jpg 31 | 30 1 hotdog-10.jpg 32 | 31 2 tea-7.jpg 33 | 32 0 tree-4.jpg 34 | 33 2 tea-8.jpg 35 | 34 0 tree-18.jpg 36 | 35 2 tea-18.jpg 37 | 36 0 tree-3.jpg 38 | 37 0 tree-11.jpg 39 | 38 0 tree-17.jpg 40 | 39 1 hotdog-13.jpg 41 | 40 1 hotdog-1.jpg 42 | 41 1 hotdog-2.jpg 43 | 42 1 hotdog-14.jpg 44 | 43 2 tea-19.jpg 45 | 44 1 hotdog-6.jpg 46 | 45 0 tree-1.jpg 47 | 46 2 tea-13.jpg 48 | 47 2 tea-9.jpg 49 | 48 0 tree-13.jpg 50 | 49 2 tea-5.jpg 51 | 50 1 hotdog-8.jpg 52 | 51 0 tree-10.jpg 53 | 52 1 hotdog-9.jpg 54 | 53 1 hotdog-5.jpg 55 | 54 0 tree-7.jpg 56 | 55 0 tree-12.jpg 57 | 56 2 tea-11.jpg 58 | 57 2 tea-2.jpg 59 | 58 2 tea-4.jpg 60 | 59 0 tree-2.jpg -------------------------------------------------------------------------------- /lbs-ep-2/val_lst.lst: -------------------------------------------------------------------------------- 1 | 0 0 tree-22.jpg 2 | 1 1 hotdog-20.jpg 3 | 2 2 tea-23.jpg 4 | 3 0 tree-23.jpg 5 | 4 1 hotdog-21.jpg 6 | 5 1 hotdog-23.jpg 7 | 6 0 tree-21.jpg 8 | 7 1 hotdog-22.jpg 9 | 8 0 tree-20.jpg 10 | 9 2 tea-20.jpg 11 | 10 2 tea-21.jpg 12 | 11 2 tea-22.jpg -------------------------------------------------------------------------------- /lbs-ep-3/.ipynb_checkpoints/get-training-image-uris-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "802b8e4b", 6 | "metadata": {}, 7 | "source": [ 8 | "# Get the URI's of the Amazon Owned Training Images" 9 | ] 10 | }, 11 | { 12 | "cell_type": "code", 13 | "execution_count": 1, 14 | "id": "91d4bcdf", 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "from boto3.session import Session\n", 19 | "from sagemaker import image_uris" 20 | ] 21 | }, 22 | { 23 | "cell_type": "code", 24 | "execution_count": null, 25 | "id": "2d6b7feb", 26 | "metadata": {}, 27 | "outputs": [], 28 | "source": [ 29 | "s = Session()\n", 30 | "sagemaker_regions = s.get_available_regions('sagemaker')" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 9, 36 | "id": "3ef909f4", 37 | "metadata": {}, 38 | "outputs": [], 39 | "source": [ 40 | "framework = 'image-classification'" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": 10, 46 | "id": "414f5b8d", 47 | "metadata": {}, 48 | "outputs": [ 49 | { 50 | "name": "stdout", 51 | "output_type": "stream", 52 | "text": [ 53 | "Region: af-south-1\tUri: 455444449433.dkr.ecr.af-south-1.amazonaws.com/image-classification:1\n", 54 | "Region: ap-east-1\tUri: 286214385809.dkr.ecr.ap-east-1.amazonaws.com/image-classification:1\n", 55 | "Region: ap-northeast-1\tUri: 501404015308.dkr.ecr.ap-northeast-1.amazonaws.com/image-classification:1\n", 56 | "Region: ap-northeast-2\tUri: 306986355934.dkr.ecr.ap-northeast-2.amazonaws.com/image-classification:1\n", 57 | "Region: ap-northeast-3\tUri: 867004704886.dkr.ecr.ap-northeast-3.amazonaws.com/image-classification:1\n", 58 | "Region: ap-south-1\tUri: 991648021394.dkr.ecr.ap-south-1.amazonaws.com/image-classification:1\n", 59 | "Region: ap-southeast-1\tUri: 475088953585.dkr.ecr.ap-southeast-1.amazonaws.com/image-classification:1\n", 60 | "Region: ap-southeast-2\tUri: 544295431143.dkr.ecr.ap-southeast-2.amazonaws.com/image-classification:1\n", 61 | "Region: ca-central-1\tUri: 469771592824.dkr.ecr.ca-central-1.amazonaws.com/image-classification:1\n", 62 | "Region: eu-central-1\tUri: 813361260812.dkr.ecr.eu-central-1.amazonaws.com/image-classification:1\n", 63 | "Region: eu-north-1\tUri: 669576153137.dkr.ecr.eu-north-1.amazonaws.com/image-classification:1\n", 64 | "Region: eu-south-1\tUri: 257386234256.dkr.ecr.eu-south-1.amazonaws.com/image-classification:1\n", 65 | "Region: eu-west-1\tUri: 685385470294.dkr.ecr.eu-west-1.amazonaws.com/image-classification:1\n", 66 | "Region: eu-west-2\tUri: 644912444149.dkr.ecr.eu-west-2.amazonaws.com/image-classification:1\n", 67 | "Region: eu-west-3\tUri: 749696950732.dkr.ecr.eu-west-3.amazonaws.com/image-classification:1\n", 68 | "Region: me-south-1\tUri: 249704162688.dkr.ecr.me-south-1.amazonaws.com/image-classification:1\n", 69 | "Region: sa-east-1\tUri: 855470959533.dkr.ecr.sa-east-1.amazonaws.com/image-classification:1\n", 70 | "Region: us-east-1\tUri: 811284229777.dkr.ecr.us-east-1.amazonaws.com/image-classification:1\n", 71 | "Region: us-east-2\tUri: 825641698319.dkr.ecr.us-east-2.amazonaws.com/image-classification:1\n", 72 | "Region: us-west-1\tUri: 632365934929.dkr.ecr.us-west-1.amazonaws.com/image-classification:1\n", 73 | "Region: us-west-2\tUri: 433757028032.dkr.ecr.us-west-2.amazonaws.com/image-classification:1\n" 74 | ] 75 | } 76 | ], 77 | "source": [ 78 | "for r in sagemaker_regions:\n", 79 | " uri = image_uris.retrieve(framework=framework,region=r)\n", 80 | " print(\"Region: {}\\tUri: {}\".format(r, uri))" 81 | ] 82 | }, 83 | { 84 | "cell_type": "code", 85 | "execution_count": 3, 86 | "id": "bdd5d97f", 87 | "metadata": {}, 88 | "outputs": [], 89 | "source": [] 90 | }, 91 | { 92 | "cell_type": "code", 93 | "execution_count": null, 94 | "id": "5428fc31", 95 | "metadata": {}, 96 | "outputs": [], 97 | "source": [] 98 | }, 99 | { 100 | "cell_type": "code", 101 | "execution_count": null, 102 | "id": "072f780b", 103 | "metadata": {}, 104 | "outputs": [], 105 | "source": [] 106 | } 107 | ], 108 | "metadata": { 109 | "kernelspec": { 110 | "display_name": "conda_python3", 111 | "language": "python", 112 | "name": "conda_python3" 113 | }, 114 | "language_info": { 115 | "codemirror_mode": { 116 | "name": "ipython", 117 | "version": 3 118 | }, 119 | "file_extension": ".py", 120 | "mimetype": "text/x-python", 121 | "name": "python", 122 | "nbconvert_exporter": "python", 123 | "pygments_lexer": "ipython3", 124 | "version": "3.6.13" 125 | } 126 | }, 127 | "nbformat": 4, 128 | "nbformat_minor": 5 129 | } 130 | -------------------------------------------------------------------------------- /lbs-ep-3/get-training-image-uris.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "802b8e4b", 6 | "metadata": {}, 7 | "source": [ 8 | "# Get the URI's of the Amazon Owned Training Images" 9 | ] 10 | }, 11 | { 12 | "cell_type": "code", 13 | "execution_count": 1, 14 | "id": "91d4bcdf", 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "from boto3.session import Session\n", 19 | "from sagemaker import image_uris" 20 | ] 21 | }, 22 | { 23 | "cell_type": "code", 24 | "execution_count": null, 25 | "id": "2d6b7feb", 26 | "metadata": {}, 27 | "outputs": [], 28 | "source": [ 29 | "s = Session()\n", 30 | "sagemaker_regions = s.get_available_regions('sagemaker')" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 9, 36 | "id": "3ef909f4", 37 | "metadata": {}, 38 | "outputs": [], 39 | "source": [ 40 | "framework = 'image-classification'" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": 10, 46 | "id": "414f5b8d", 47 | "metadata": {}, 48 | "outputs": [ 49 | { 50 | "name": "stdout", 51 | "output_type": "stream", 52 | "text": [ 53 | "Region: af-south-1\tUri: 455444449433.dkr.ecr.af-south-1.amazonaws.com/image-classification:1\n", 54 | "Region: ap-east-1\tUri: 286214385809.dkr.ecr.ap-east-1.amazonaws.com/image-classification:1\n", 55 | "Region: ap-northeast-1\tUri: 501404015308.dkr.ecr.ap-northeast-1.amazonaws.com/image-classification:1\n", 56 | "Region: ap-northeast-2\tUri: 306986355934.dkr.ecr.ap-northeast-2.amazonaws.com/image-classification:1\n", 57 | "Region: ap-northeast-3\tUri: 867004704886.dkr.ecr.ap-northeast-3.amazonaws.com/image-classification:1\n", 58 | "Region: ap-south-1\tUri: 991648021394.dkr.ecr.ap-south-1.amazonaws.com/image-classification:1\n", 59 | "Region: ap-southeast-1\tUri: 475088953585.dkr.ecr.ap-southeast-1.amazonaws.com/image-classification:1\n", 60 | "Region: ap-southeast-2\tUri: 544295431143.dkr.ecr.ap-southeast-2.amazonaws.com/image-classification:1\n", 61 | "Region: ca-central-1\tUri: 469771592824.dkr.ecr.ca-central-1.amazonaws.com/image-classification:1\n", 62 | "Region: eu-central-1\tUri: 813361260812.dkr.ecr.eu-central-1.amazonaws.com/image-classification:1\n", 63 | "Region: eu-north-1\tUri: 669576153137.dkr.ecr.eu-north-1.amazonaws.com/image-classification:1\n", 64 | "Region: eu-south-1\tUri: 257386234256.dkr.ecr.eu-south-1.amazonaws.com/image-classification:1\n", 65 | "Region: eu-west-1\tUri: 685385470294.dkr.ecr.eu-west-1.amazonaws.com/image-classification:1\n", 66 | "Region: eu-west-2\tUri: 644912444149.dkr.ecr.eu-west-2.amazonaws.com/image-classification:1\n", 67 | "Region: eu-west-3\tUri: 749696950732.dkr.ecr.eu-west-3.amazonaws.com/image-classification:1\n", 68 | "Region: me-south-1\tUri: 249704162688.dkr.ecr.me-south-1.amazonaws.com/image-classification:1\n", 69 | "Region: sa-east-1\tUri: 855470959533.dkr.ecr.sa-east-1.amazonaws.com/image-classification:1\n", 70 | "Region: us-east-1\tUri: 811284229777.dkr.ecr.us-east-1.amazonaws.com/image-classification:1\n", 71 | "Region: us-east-2\tUri: 825641698319.dkr.ecr.us-east-2.amazonaws.com/image-classification:1\n", 72 | "Region: us-west-1\tUri: 632365934929.dkr.ecr.us-west-1.amazonaws.com/image-classification:1\n", 73 | "Region: us-west-2\tUri: 433757028032.dkr.ecr.us-west-2.amazonaws.com/image-classification:1\n" 74 | ] 75 | } 76 | ], 77 | "source": [ 78 | "for r in sagemaker_regions:\n", 79 | " uri = image_uris.retrieve(framework=framework,region=r)\n", 80 | " print(\"Region: {}\\tUri: {}\".format(r, uri))" 81 | ] 82 | }, 83 | { 84 | "cell_type": "code", 85 | "execution_count": 3, 86 | "id": "bdd5d97f", 87 | "metadata": {}, 88 | "outputs": [], 89 | "source": [] 90 | }, 91 | { 92 | "cell_type": "code", 93 | "execution_count": null, 94 | "id": "5428fc31", 95 | "metadata": {}, 96 | "outputs": [], 97 | "source": [] 98 | }, 99 | { 100 | "cell_type": "code", 101 | "execution_count": null, 102 | "id": "072f780b", 103 | "metadata": {}, 104 | "outputs": [], 105 | "source": [] 106 | } 107 | ], 108 | "metadata": { 109 | "kernelspec": { 110 | "display_name": "conda_python3", 111 | "language": "python", 112 | "name": "conda_python3" 113 | }, 114 | "language_info": { 115 | "codemirror_mode": { 116 | "name": "ipython", 117 | "version": 3 118 | }, 119 | "file_extension": ".py", 120 | "mimetype": "text/x-python", 121 | "name": "python", 122 | "nbconvert_exporter": "python", 123 | "pygments_lexer": "ipython3", 124 | "version": "3.6.13" 125 | } 126 | }, 127 | "nbformat": 4, 128 | "nbformat_minor": 5 129 | } 130 | -------------------------------------------------------------------------------- /lbs-ep-3/model.txt: -------------------------------------------------------------------------------- 1 | The model built during the session is available here: 2 | https://lets-build-something-assets.s3.amazonaws.com/ep3/model.tar.gz 3 | 4 | 5 | UPDATE: 6 | There is a new model (one that works!) available here: 7 | https://lets-build-something-assets.s3.amazonaws.com/ep3/model2.tar.gz 8 | 9 | Training Image (Depends on the region you're working in): 10 | 11 | Region: af-south-1 Uri: 455444449433.dkr.ecr.af-south-1.amazonaws.com/image-classification:1 12 | Region: ap-east-1 Uri: 286214385809.dkr.ecr.ap-east-1.amazonaws.com/image-classification:1 13 | Region: ap-northeast-1 Uri: 501404015308.dkr.ecr.ap-northeast-1.amazonaws.com/image-classification:1 14 | Region: ap-northeast-2 Uri: 306986355934.dkr.ecr.ap-northeast-2.amazonaws.com/image-classification:1 15 | Region: ap-northeast-3 Uri: 867004704886.dkr.ecr.ap-northeast-3.amazonaws.com/image-classification:1 16 | Region: ap-south-1 Uri: 991648021394.dkr.ecr.ap-south-1.amazonaws.com/image-classification:1 17 | Region: ap-southeast-1 Uri: 475088953585.dkr.ecr.ap-southeast-1.amazonaws.com/image-classification:1 18 | Region: ap-southeast-2 Uri: 544295431143.dkr.ecr.ap-southeast-2.amazonaws.com/image-classification:1 19 | Region: ca-central-1 Uri: 469771592824.dkr.ecr.ca-central-1.amazonaws.com/image-classification:1 20 | Region: eu-central-1 Uri: 813361260812.dkr.ecr.eu-central-1.amazonaws.com/image-classification:1 21 | Region: eu-north-1 Uri: 669576153137.dkr.ecr.eu-north-1.amazonaws.com/image-classification:1 22 | Region: eu-south-1 Uri: 257386234256.dkr.ecr.eu-south-1.amazonaws.com/image-classification:1 23 | Region: eu-west-1 Uri: 685385470294.dkr.ecr.eu-west-1.amazonaws.com/image-classification:1 24 | Region: eu-west-2 Uri: 644912444149.dkr.ecr.eu-west-2.amazonaws.com/image-classification:1 25 | Region: eu-west-3 Uri: 749696950732.dkr.ecr.eu-west-3.amazonaws.com/image-classification:1 26 | Region: me-south-1 Uri: 249704162688.dkr.ecr.me-south-1.amazonaws.com/image-classification:1 27 | Region: sa-east-1 Uri: 855470959533.dkr.ecr.sa-east-1.amazonaws.com/image-classification:1 28 | Region: us-east-1 Uri: 811284229777.dkr.ecr.us-east-1.amazonaws.com/image-classification:1 29 | Region: us-east-2 Uri: 825641698319.dkr.ecr.us-east-2.amazonaws.com/image-classification:1 30 | Region: us-west-1 Uri: 632365934929.dkr.ecr.us-west-1.amazonaws.com/image-classification:1 31 | Region: us-west-2 Uri: 433757028032.dkr.ecr.us-west-2.amazonaws.com/image-classification:1 -------------------------------------------------------------------------------- /lbs-ep-4/.ipynb_checkpoints/lbs-ep-4-notebook-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 5 6 | } 7 | -------------------------------------------------------------------------------- /lbs-ep-4/lbs-ep-4-notebook.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "e16ebae3", 6 | "metadata": {}, 7 | "source": [ 8 | "# Lets Build Something \n", 9 | "\n", 10 | "## Lets make some inferance \n", 11 | "\n", 12 | "0 = Tree\n", 13 | "1 = Hotdog\n", 14 | "2 = Tea" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 17, 20 | "id": "fbeda0b2", 21 | "metadata": {}, 22 | "outputs": [], 23 | "source": [ 24 | "import boto3" 25 | ] 26 | }, 27 | { 28 | "cell_type": "code", 29 | "execution_count": 18, 30 | "id": "d6c77ac6", 31 | "metadata": {}, 32 | "outputs": [], 33 | "source": [ 34 | "import json" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": 19, 40 | "id": "8812a5ee", 41 | "metadata": {}, 42 | "outputs": [], 43 | "source": [ 44 | "client = boto3.client('sagemaker-runtime')" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "execution_count": 20, 50 | "id": "250ef858", 51 | "metadata": {}, 52 | "outputs": [], 53 | "source": [ 54 | "f = open('./test_3.jpg', 'rb')\n", 55 | "data = f.read()" 56 | ] 57 | }, 58 | { 59 | "cell_type": "code", 60 | "execution_count": 21, 61 | "id": "7a3bc5ec", 62 | "metadata": {}, 63 | "outputs": [], 64 | "source": [ 65 | "response = client.invoke_endpoint(\n", 66 | " EndpointName=\"b\",\n", 67 | " Body=data\n", 68 | ")" 69 | ] 70 | }, 71 | { 72 | "cell_type": "code", 73 | "execution_count": 22, 74 | "id": "119dc384", 75 | "metadata": {}, 76 | "outputs": [], 77 | "source": [ 78 | "result = json.loads(response['Body'].read().decode())" 79 | ] 80 | }, 81 | { 82 | "cell_type": "code", 83 | "execution_count": 23, 84 | "id": "7f367f69", 85 | "metadata": {}, 86 | "outputs": [ 87 | { 88 | "data": { 89 | "text/plain": [ 90 | "[1.0, 2.1091477728656701e-16, 5.628758896122932e-32]" 91 | ] 92 | }, 93 | "execution_count": 23, 94 | "metadata": {}, 95 | "output_type": "execute_result" 96 | } 97 | ], 98 | "source": [ 99 | "result" 100 | ] 101 | }, 102 | { 103 | "cell_type": "code", 104 | "execution_count": null, 105 | "id": "7bd6a54e", 106 | "metadata": {}, 107 | "outputs": [], 108 | "source": [] 109 | } 110 | ], 111 | "metadata": { 112 | "kernelspec": { 113 | "display_name": "conda_python3", 114 | "language": "python", 115 | "name": "conda_python3" 116 | }, 117 | "language_info": { 118 | "codemirror_mode": { 119 | "name": "ipython", 120 | "version": 3 121 | }, 122 | "file_extension": ".py", 123 | "mimetype": "text/x-python", 124 | "name": "python", 125 | "nbconvert_exporter": "python", 126 | "pygments_lexer": "ipython3", 127 | "version": "3.6.13" 128 | } 129 | }, 130 | "nbformat": 4, 131 | "nbformat_minor": 5 132 | } 133 | -------------------------------------------------------------------------------- /lbs-ep-4/test_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-4/test_1.jpg -------------------------------------------------------------------------------- /lbs-ep-4/test_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-4/test_2.jpg -------------------------------------------------------------------------------- /lbs-ep-4/test_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-4/test_3.jpg -------------------------------------------------------------------------------- /lbs-ep-5/.ipynb_checkpoints/Untitled-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 5 6 | } 7 | -------------------------------------------------------------------------------- /lbs-ep-5/Untitled.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "25930ca0", 6 | "metadata": {}, 7 | "source": [ 8 | "# Let's Make Inferance " 9 | ] 10 | }, 11 | { 12 | "cell_type": "code", 13 | "execution_count": 6, 14 | "id": "9aad2dc1", 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "import boto3\n", 19 | "import json" 20 | ] 21 | }, 22 | { 23 | "cell_type": "code", 24 | "execution_count": 2, 25 | "id": "dbdd67c6", 26 | "metadata": {}, 27 | "outputs": [], 28 | "source": [ 29 | "client = boto3.client('sagemaker-runtime')" 30 | ] 31 | }, 32 | { 33 | "cell_type": "code", 34 | "execution_count": 3, 35 | "id": "dac57a89", 36 | "metadata": {}, 37 | "outputs": [], 38 | "source": [ 39 | "f = open('./test_1.jpg', 'rb')\n", 40 | "data = f.read()" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": 4, 46 | "id": "eb99e86c", 47 | "metadata": {}, 48 | "outputs": [], 49 | "source": [ 50 | "response = client.invoke_endpoint(\n", 51 | " EndpointName='lbs-tree-hotdog-tea-1',\n", 52 | " Body=data\n", 53 | ")" 54 | ] 55 | }, 56 | { 57 | "cell_type": "code", 58 | "execution_count": 7, 59 | "id": "e9a7c478", 60 | "metadata": {}, 61 | "outputs": [], 62 | "source": [ 63 | "results = json.loads(response['Body'].read().decode())" 64 | ] 65 | }, 66 | { 67 | "cell_type": "code", 68 | "execution_count": 8, 69 | "id": "f0c569df", 70 | "metadata": {}, 71 | "outputs": [ 72 | { 73 | "data": { 74 | "text/plain": [ 75 | "[0.0032631459180265665, 0.9967368245124817, 3.247778934678536e-08]" 76 | ] 77 | }, 78 | "execution_count": 8, 79 | "metadata": {}, 80 | "output_type": "execute_result" 81 | } 82 | ], 83 | "source": [ 84 | "results" 85 | ] 86 | }, 87 | { 88 | "cell_type": "markdown", 89 | "id": "19b1256a", 90 | "metadata": {}, 91 | "source": [ 92 | "0 = Tree,\n", 93 | "1 = HotDog,\n", 94 | "2 = Tea" 95 | ] 96 | }, 97 | { 98 | "cell_type": "code", 99 | "execution_count": 9, 100 | "id": "ee26e901", 101 | "metadata": {}, 102 | "outputs": [], 103 | "source": [ 104 | "import numpy as np" 105 | ] 106 | }, 107 | { 108 | "cell_type": "code", 109 | "execution_count": 10, 110 | "id": "7f4d8e89", 111 | "metadata": {}, 112 | "outputs": [ 113 | { 114 | "data": { 115 | "text/plain": [ 116 | "1" 117 | ] 118 | }, 119 | "execution_count": 10, 120 | "metadata": {}, 121 | "output_type": "execute_result" 122 | } 123 | ], 124 | "source": [ 125 | "np.argmax(results)" 126 | ] 127 | }, 128 | { 129 | "cell_type": "code", 130 | "execution_count": 11, 131 | "id": "27fe0262", 132 | "metadata": {}, 133 | "outputs": [], 134 | "source": [ 135 | "labels = ['tree', 'hotdog', 'tea']" 136 | ] 137 | }, 138 | { 139 | "cell_type": "code", 140 | "execution_count": 14, 141 | "id": "8b057c08", 142 | "metadata": {}, 143 | "outputs": [ 144 | { 145 | "name": "stdout", 146 | "output_type": "stream", 147 | "text": [ 148 | "tree\n" 149 | ] 150 | } 151 | ], 152 | "source": [ 153 | "image_name = 'test_3.jpg'\n", 154 | "\n", 155 | "f = open(image_name, 'rb')\n", 156 | "data = f.read()\n", 157 | "\n", 158 | "response = client.invoke_endpoint(\n", 159 | " EndpointName='lbs-tree-hotdog-tea-1',\n", 160 | " Body=data\n", 161 | ")\n", 162 | "\n", 163 | "results = json.loads(response['Body'].read().decode())\n", 164 | "\n", 165 | "pred = np.argmax(results)\n", 166 | "\n", 167 | "print( labels[pred] )\n" 168 | ] 169 | }, 170 | { 171 | "cell_type": "code", 172 | "execution_count": null, 173 | "id": "2283ab64", 174 | "metadata": {}, 175 | "outputs": [], 176 | "source": [] 177 | } 178 | ], 179 | "metadata": { 180 | "kernelspec": { 181 | "display_name": "conda_python3", 182 | "language": "python", 183 | "name": "conda_python3" 184 | }, 185 | "language_info": { 186 | "codemirror_mode": { 187 | "name": "ipython", 188 | "version": 3 189 | }, 190 | "file_extension": ".py", 191 | "mimetype": "text/x-python", 192 | "name": "python", 193 | "nbconvert_exporter": "python", 194 | "pygments_lexer": "ipython3", 195 | "version": "3.6.13" 196 | } 197 | }, 198 | "nbformat": 4, 199 | "nbformat_minor": 5 200 | } 201 | -------------------------------------------------------------------------------- /lbs-ep-5/test_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-5/test_1.jpg -------------------------------------------------------------------------------- /lbs-ep-5/test_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-5/test_2.jpg -------------------------------------------------------------------------------- /lbs-ep-5/test_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-5/test_3.jpg -------------------------------------------------------------------------------- /lbs-ep-6/lambda-function/lambda_function.py: -------------------------------------------------------------------------------- 1 | import json, boto3 2 | import base64, binascii 3 | from botocore.exceptions import ClientError 4 | 5 | def lambda_handler(event, context): 6 | 7 | print(event) 8 | 9 | client = boto3.client('sagemaker-runtime') 10 | 11 | body = base64.b64decode(event['body']) 12 | 13 | try: 14 | response = client.invoke_endpoint( 15 | EndpointName='ENDPOINT-NAME-GOES-HERE', 16 | Body=body, 17 | ContentType='application/x-image' 18 | ) 19 | 20 | body = response['Body'] 21 | data = body.read() 22 | string = data.decode("utf-8") 23 | string = string[1:-1] 24 | values = string.split(",") 25 | 26 | except ClientError as e: 27 | #ret = ("Error: %s" % e) 28 | values = "Not Sure: {}".format(str(e)) 29 | 30 | print(values) 31 | 32 | return { 33 | 'statusCode': 200, 34 | 'headers': { 35 | "Content-Type" : "application/json", 36 | "Access-Control-Allow-Origin" : "*", 37 | "Allow" : "GET, OPTIONS, POST", 38 | "Access-Control-Allow-Methods" : "GET, OPTIONS, POST", 39 | "Access-Control-Allow-Headers" : "*" 40 | }, 41 | 'body': json.dumps(values, default=str) 42 | } -------------------------------------------------------------------------------- /lbs-ep-6/readme.md: -------------------------------------------------------------------------------- 1 | # Instructions (Notes) 2 | 3 | ## Pay attention to your region, make sure that resources are all within the same region. \ 4 | 5 | These notes are supplimenty to the live stream / video. 6 | (I assume that your SageMaker Endpoint is already live. Else go back a week...) 7 | 8 | Step 1: 9 | - Make note of the SageMaker Endpoint name. 10 | - Create a Lambda function: 11 | - Paste code into Python function. 12 | - Insert the SageMaker endpoint name into code. 13 | - Add SageMaker permissions. 14 | 15 | Step 2: 16 | - Create API: 17 | - HTTP API 18 | - POST 19 | - Select Lambda 20 | - Make a note of the API URL (inclusing the route). 21 | - Enable CORS - '*' for everything. 22 | 23 | Step 3: 24 | - Create S3 bucket 25 | - Uncheck "Block all public access" 26 | - Properties > Static website hosting (get the URL of the bucket). 27 | - Permisions > Bucket Policy > 28 | 29 | ``` 30 | { 31 | "Version":"2012-10-17", 32 | "Statement":{ 33 | "Effect":"Allow", 34 | "Principal": "*", 35 | "Action":"s3:GetObject", 36 | "Resource":"ARN/*" 37 | } 38 | } 39 | ``` 40 | 41 | Step 4: 42 | - Edit 'app.js' with the URL for the API. 43 | - Upload 44 | 45 | Step 5: 46 | - Test :) -------------------------------------------------------------------------------- /lbs-ep-6/s3-website/app.js: -------------------------------------------------------------------------------- 1 | var apiUrl = "API-URL-GOES-HERE" 2 | 3 | var imageLoader = document.getElementById('imageLoader'); 4 | var imageCanvas = document.getElementById('imageCanvas'); 5 | var spinner = document.getElementById("spinner"); 6 | var banner = document.getElementById("banner"); 7 | var bannerText = document.getElementById("banner-text"); 8 | var samples = document.getElementById("samples"); 9 | 10 | var context = imageCanvas.getContext('2d'); 11 | var image = new Image(); 12 | 13 | image.onloadeddata = function(e){ 14 | console.log("here" + e) 15 | } 16 | 17 | imageLoader.onchange = function(e) { 18 | loadImage( 19 | e.target.files[0], 20 | function(img) { 21 | console.log(img); 22 | context.drawImage(img, 0, 0, 256, 256); 23 | sendImg(); 24 | window.scrollTo(0,0); 25 | }, 26 | { 27 | aspectRatio: 1, 28 | orientation: true, 29 | canvas: true 30 | } 31 | ); 32 | }; 33 | 34 | function loadSample(s){ 35 | 36 | let sampleImage = new Image(); 37 | 38 | sampleImage.onload = function(){ 39 | console.log('sampleImage Loaded'); 40 | context.drawImage(sampleImage, 0, 0, 256, 256); 41 | sendImg(); 42 | window.scrollTo(0,0); 43 | } 44 | 45 | sampleImage.src = s; 46 | 47 | } 48 | 49 | // function loadSample(s){ 50 | // new Promise(function(resolve, reject) { 51 | 52 | // setTimeout(() => resolve(1), 0); 53 | 54 | // }).then(function(result) { // (**) 55 | 56 | // image.src = s; 57 | // return; 58 | 59 | // }).then(function(result) { // (**) 60 | 61 | // window.scrollTo(0,0); 62 | // setTimeout(() => sendImg(), 2000); 63 | // return; 64 | 65 | // }); 66 | // } 67 | 68 | function sendImg(){ 69 | console.log("sendImg") 70 | spinner.hidden = false; 71 | banner.hidden = true; 72 | imgData = imageCanvas.toDataURL("image/png"); 73 | $.ajax({ 74 | type: "POST", 75 | url: apiUrl, 76 | data: imgData.substr(22), 77 | contentType: "application/json", 78 | success: function(data){ 79 | displayResponse(data); 80 | }, 81 | failure: function(errMsg) { 82 | alert(errMsg); 83 | } 84 | }); 85 | } 86 | 87 | function argMax(array) { 88 | return array.map((x, i) => [x, i]).reduce((r, a) => (a[0] > r[0] ? a : r))[1]; 89 | } 90 | 91 | function displayResponse(data){ 92 | 93 | var bricks = ['Tree', 'Hot Dog', 'Tea']; 94 | 95 | console.log(data); 96 | maxIndex = -1; 97 | maxValue = null; 98 | var i; 99 | for (i = 0; i < data.length; i++) { 100 | if (parseFloat(data[i]) > maxValue){ 101 | maxValue = parseFloat(data[i]); 102 | maxIndex = i; 103 | } 104 | } 105 | 106 | console.log(bricks[maxIndex]); 107 | bannerText.innerText = bricks[maxIndex]; 108 | spinner.hidden = true; 109 | banner.hidden = false; 110 | 111 | } 112 | 113 | image.onload = function(){ 114 | context.drawImage(image, 0, 0, 256, 256); 115 | } 116 | 117 | // image.src = 'back.png'; 118 | 119 | spinner.hidden = true; 120 | banner.hidden = false; 121 | -------------------------------------------------------------------------------- /lbs-ep-6/s3-website/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-6/s3-website/back.png -------------------------------------------------------------------------------- /lbs-ep-6/s3-website/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | Lets Build Something 23 | 24 | 25 | 26 | 27 | 33 | 34 | 37 | 38 |
39 |
40 | Loading... 41 |
42 |
43 | 44 |
45 | 46 |
47 | 48 |
49 |
50 | 51 | 52 |
53 |
54 | 55 |
56 | 59 |
60 | 61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | 69 | 70 |
71 | 72 | 73 |
74 | 75 | 76 |
77 | 78 | 79 |
80 | 81 | 82 |
Why this?
83 |

This is a demo of Machine Learning image classification. It was built with AWS (Amazon Web Services) SageMaker. 84 | This live demo was created for Mike's YouTube Live Stream and Mike's AWS Machine Learning Specialty Cert course, available here.

85 | 86 |
87 | 88 | 89 |
90 | 91 | 92 |
93 | 94 | 95 |
Links:
96 |

LinkedIn: Mike on Linkedin

97 |

Twitter: @mikegchambers

98 |

Course: AWS Machine Learning Specialty Certification

99 |
100 | 101 | 102 |
103 | 104 | 105 |
106 | 107 | 108 |
109 | 110 | 111 | 112 | 113 | 114 | 115 | -------------------------------------------------------------------------------- /lbs-ep-6/s3-website/tea.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /lbs-ep-6/s3-website/test_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-6/s3-website/test_1.jpg -------------------------------------------------------------------------------- /lbs-ep-6/s3-website/test_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-6/s3-website/test_2.jpg -------------------------------------------------------------------------------- /lbs-ep-6/s3-website/test_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-mikegchambers-com/lets-build-something-live/3df894168952528f138fa8acfd981fc485219c4e/lbs-ep-6/s3-website/test_3.jpg -------------------------------------------------------------------------------- /lbs-notebook-1.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "68e58829", 6 | "metadata": {}, 7 | "source": [ 8 | "# Let's Build Soemthing Live\n", 9 | "\n", 10 | "Lets get going\n", 11 | "\n", 12 | "! Don't worry if you get TensorFlow WARNINGs running this code. Its part and parcel of running TF in environments like this :) " 13 | ] 14 | }, 15 | { 16 | "cell_type": "code", 17 | "execution_count": 1, 18 | "id": "48e09213", 19 | "metadata": {}, 20 | "outputs": [ 21 | { 22 | "name": "stdout", 23 | "output_type": "stream", 24 | "text": [ 25 | "WARNING:tensorflow:From /home/ec2-user/anaconda3/envs/tensorflow_p37/cpu/lib/python3.7/site-packages/tensorflow_core/__init__.py:1473: The name tf.estimator.inputs is deprecated. Please use tf.compat.v1.estimator.inputs instead.\n", 26 | "\n" 27 | ] 28 | } 29 | ], 30 | "source": [ 31 | "import tensorflow as tf" 32 | ] 33 | }, 34 | { 35 | "cell_type": "code", 36 | "execution_count": 2, 37 | "id": "d330b72c", 38 | "metadata": {}, 39 | "outputs": [], 40 | "source": [ 41 | "mnist = tf.keras.datasets.mnist" 42 | ] 43 | }, 44 | { 45 | "cell_type": "code", 46 | "execution_count": 3, 47 | "id": "265d18a7", 48 | "metadata": {}, 49 | "outputs": [ 50 | { 51 | "name": "stdout", 52 | "output_type": "stream", 53 | "text": [ 54 | "\n" 55 | ] 56 | } 57 | ], 58 | "source": [ 59 | "print(mnist)" 60 | ] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "execution_count": 4, 65 | "id": "f7134220", 66 | "metadata": {}, 67 | "outputs": [], 68 | "source": [ 69 | "(X_train, y_train),(X_test, y_test) = mnist.load_data()" 70 | ] 71 | }, 72 | { 73 | "cell_type": "code", 74 | "execution_count": 5, 75 | "id": "af91cbea", 76 | "metadata": {}, 77 | "outputs": [ 78 | { 79 | "data": { 80 | "text/plain": [ 81 | "array([[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 82 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 83 | " 0, 0],\n", 84 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 85 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 86 | " 0, 0],\n", 87 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 88 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 89 | " 0, 0],\n", 90 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 91 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 92 | " 0, 0],\n", 93 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 118,\n", 94 | " 219, 166, 118, 118, 6, 0, 0, 0, 0, 0, 0, 0, 0,\n", 95 | " 0, 0],\n", 96 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 242, 254,\n", 97 | " 254, 254, 254, 254, 66, 0, 0, 0, 0, 0, 0, 0, 0,\n", 98 | " 0, 0],\n", 99 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 232, 254,\n", 100 | " 254, 254, 254, 254, 238, 70, 0, 0, 0, 0, 0, 0, 0,\n", 101 | " 0, 0],\n", 102 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 244,\n", 103 | " 254, 224, 254, 254, 254, 141, 0, 0, 0, 0, 0, 0, 0,\n", 104 | " 0, 0],\n", 105 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207,\n", 106 | " 254, 210, 254, 254, 254, 34, 0, 0, 0, 0, 0, 0, 0,\n", 107 | " 0, 0],\n", 108 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,\n", 109 | " 206, 254, 254, 254, 254, 41, 0, 0, 0, 0, 0, 0, 0,\n", 110 | " 0, 0],\n", 111 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 112 | " 24, 209, 254, 254, 254, 171, 0, 0, 0, 0, 0, 0, 0,\n", 113 | " 0, 0],\n", 114 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91,\n", 115 | " 137, 253, 254, 254, 254, 112, 0, 0, 0, 0, 0, 0, 0,\n", 116 | " 0, 0],\n", 117 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 214, 250,\n", 118 | " 254, 254, 254, 254, 254, 34, 0, 0, 0, 0, 0, 0, 0,\n", 119 | " 0, 0],\n", 120 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 247, 254,\n", 121 | " 254, 254, 254, 254, 254, 146, 0, 0, 0, 0, 0, 0, 0,\n", 122 | " 0, 0],\n", 123 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 246,\n", 124 | " 254, 254, 254, 254, 254, 171, 0, 0, 0, 0, 0, 0, 0,\n", 125 | " 0, 0],\n", 126 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,\n", 127 | " 89, 89, 93, 240, 254, 171, 0, 0, 0, 0, 0, 0, 0,\n", 128 | " 0, 0],\n", 129 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 130 | " 0, 0, 1, 128, 254, 219, 31, 0, 0, 0, 0, 0, 0,\n", 131 | " 0, 0],\n", 132 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 133 | " 0, 0, 7, 254, 254, 214, 28, 0, 0, 0, 0, 0, 0,\n", 134 | " 0, 0],\n", 135 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 136 | " 0, 0, 138, 254, 254, 116, 0, 0, 0, 0, 0, 0, 0,\n", 137 | " 0, 0],\n", 138 | " [ 0, 0, 0, 0, 0, 0, 19, 177, 90, 0, 0, 0, 0,\n", 139 | " 0, 25, 240, 254, 254, 34, 0, 0, 0, 0, 0, 0, 0,\n", 140 | " 0, 0],\n", 141 | " [ 0, 0, 0, 0, 0, 0, 164, 254, 215, 63, 36, 0, 51,\n", 142 | " 89, 206, 254, 254, 139, 8, 0, 0, 0, 0, 0, 0, 0,\n", 143 | " 0, 0],\n", 144 | " [ 0, 0, 0, 0, 0, 0, 57, 197, 254, 254, 222, 180, 241,\n", 145 | " 254, 254, 253, 213, 11, 0, 0, 0, 0, 0, 0, 0, 0,\n", 146 | " 0, 0],\n", 147 | " [ 0, 0, 0, 0, 0, 0, 0, 140, 105, 254, 254, 254, 254,\n", 148 | " 254, 254, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 149 | " 0, 0],\n", 150 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 7, 117, 117, 165, 254,\n", 151 | " 254, 239, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 152 | " 0, 0],\n", 153 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 154 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 155 | " 0, 0],\n", 156 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 157 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 158 | " 0, 0],\n", 159 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 160 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 161 | " 0, 0],\n", 162 | " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 163 | " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", 164 | " 0, 0]], dtype=uint8)" 165 | ] 166 | }, 167 | "execution_count": 5, 168 | "metadata": {}, 169 | "output_type": "execute_result" 170 | } 171 | ], 172 | "source": [ 173 | "X_train[10]" 174 | ] 175 | }, 176 | { 177 | "cell_type": "code", 178 | "execution_count": 6, 179 | "id": "dd2b48b9", 180 | "metadata": {}, 181 | "outputs": [ 182 | { 183 | "data": { 184 | "text/plain": [ 185 | "3" 186 | ] 187 | }, 188 | "execution_count": 6, 189 | "metadata": {}, 190 | "output_type": "execute_result" 191 | } 192 | ], 193 | "source": [ 194 | "y_train[10]" 195 | ] 196 | }, 197 | { 198 | "cell_type": "code", 199 | "execution_count": 7, 200 | "id": "53c66f4b", 201 | "metadata": {}, 202 | "outputs": [], 203 | "source": [ 204 | "import matplotlib.pyplot as plt" 205 | ] 206 | }, 207 | { 208 | "cell_type": "code", 209 | "execution_count": 8, 210 | "id": "c5aaa54f", 211 | "metadata": {}, 212 | "outputs": [ 213 | { 214 | "data": { 215 | "text/plain": [ 216 | "" 217 | ] 218 | }, 219 | "execution_count": 8, 220 | "metadata": {}, 221 | "output_type": "execute_result" 222 | }, 223 | { 224 | "data": { 225 | "image/png": "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\n", 226 | "text/plain": [ 227 | "
" 228 | ] 229 | }, 230 | "metadata": { 231 | "needs_background": "light" 232 | }, 233 | "output_type": "display_data" 234 | } 235 | ], 236 | "source": [ 237 | "plt.imshow(X_train[10])" 238 | ] 239 | }, 240 | { 241 | "cell_type": "code", 242 | "execution_count": 9, 243 | "id": "60d27b24", 244 | "metadata": {}, 245 | "outputs": [ 246 | { 247 | "name": "stdout", 248 | "output_type": "stream", 249 | "text": [ 250 | "WARNING:tensorflow:From /home/ec2-user/anaconda3/envs/tensorflow_p37/cpu/lib/python3.7/site-packages/tensorflow_core/python/ops/resource_variable_ops.py:1630: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.\n", 251 | "Instructions for updating:\n", 252 | "If using Keras pass *_constraint arguments to layers.\n" 253 | ] 254 | } 255 | ], 256 | "source": [ 257 | "model = tf.keras.models.Sequential([\n", 258 | " tf.keras.layers.Flatten(input_shape=(28, 28)),\n", 259 | " tf.keras.layers.Dense(128, activation='relu'),\n", 260 | " tf.keras.layers.Dropout(0.2),\n", 261 | " tf.keras.layers.Dense(10, activation='softmax')\n", 262 | "])" 263 | ] 264 | }, 265 | { 266 | "cell_type": "code", 267 | "execution_count": 10, 268 | "id": "30bf967a", 269 | "metadata": {}, 270 | "outputs": [], 271 | "source": [ 272 | "model.compile(optimizer='adam',\n", 273 | " loss='sparse_categorical_crossentropy',\n", 274 | " metrics=['accuracy'])" 275 | ] 276 | }, 277 | { 278 | "cell_type": "code", 279 | "execution_count": 11, 280 | "id": "3d88fe5b", 281 | "metadata": {}, 282 | "outputs": [ 283 | { 284 | "name": "stdout", 285 | "output_type": "stream", 286 | "text": [ 287 | "WARNING:tensorflow:From /home/ec2-user/anaconda3/envs/tensorflow_p37/lib/python3.7/site-packages/horovod/tensorflow/__init__.py:163: The name tf.global_variables is deprecated. Please use tf.compat.v1.global_variables instead.\n", 288 | "\n", 289 | "WARNING:tensorflow:From /home/ec2-user/anaconda3/envs/tensorflow_p37/lib/python3.7/site-packages/horovod/tensorflow/__init__.py:189: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", 290 | "\n", 291 | "[2021-09-27 22:43:54.418 ip-172-16-38-40.ap-southeast-2.compute.internal:9998 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\n", 292 | "[2021-09-27 22:43:55.484 ip-172-16-38-40.ap-southeast-2.compute.internal:9998 INFO profiler_config_parser.py:111] Unable to find config at /opt/ml/input/config/profilerconfig.json. Profiler is disabled.\n", 293 | "Train on 60000 samples\n", 294 | "WARNING:tensorflow:OMP_NUM_THREADS is no longer used by the default Keras config. To configure the number of threads, use tf.config.threading APIs.\n", 295 | "Epoch 1/5\n", 296 | "60000/60000 [==============================] - 10s 162us/sample - loss: 2.6936 - acc: 0.7738\n", 297 | "Epoch 2/5\n", 298 | "60000/60000 [==============================] - 6s 92us/sample - loss: 0.5696 - acc: 0.8528\n", 299 | "Epoch 3/5\n", 300 | "60000/60000 [==============================] - 6s 92us/sample - loss: 0.4790 - acc: 0.8728\n", 301 | "Epoch 4/5\n", 302 | "60000/60000 [==============================] - 6s 97us/sample - loss: 0.4184 - acc: 0.8916\n", 303 | "Epoch 5/5\n", 304 | "60000/60000 [==============================] - 6s 92us/sample - loss: 0.3968 - acc: 0.9005\n" 305 | ] 306 | }, 307 | { 308 | "data": { 309 | "text/plain": [ 310 | "" 311 | ] 312 | }, 313 | "execution_count": 11, 314 | "metadata": {}, 315 | "output_type": "execute_result" 316 | } 317 | ], 318 | "source": [ 319 | "model.fit(X_train, y_train, epochs=5)" 320 | ] 321 | }, 322 | { 323 | "cell_type": "code", 324 | "execution_count": 12, 325 | "id": "088354e6", 326 | "metadata": {}, 327 | "outputs": [ 328 | { 329 | "data": { 330 | "text/plain": [ 331 | "" 332 | ] 333 | }, 334 | "execution_count": 12, 335 | "metadata": {}, 336 | "output_type": "execute_result" 337 | }, 338 | { 339 | "data": { 340 | "image/png": "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\n", 341 | "text/plain": [ 342 | "
" 343 | ] 344 | }, 345 | "metadata": { 346 | "needs_background": "light" 347 | }, 348 | "output_type": "display_data" 349 | } 350 | ], 351 | "source": [ 352 | "plt.imshow(X_test[4])" 353 | ] 354 | }, 355 | { 356 | "cell_type": "code", 357 | "execution_count": 13, 358 | "id": "73a8283e", 359 | "metadata": {}, 360 | "outputs": [ 361 | { 362 | "data": { 363 | "text/plain": [ 364 | "4" 365 | ] 366 | }, 367 | "execution_count": 13, 368 | "metadata": {}, 369 | "output_type": "execute_result" 370 | } 371 | ], 372 | "source": [ 373 | "y_test[4]" 374 | ] 375 | }, 376 | { 377 | "cell_type": "code", 378 | "execution_count": 14, 379 | "id": "3e397830", 380 | "metadata": {}, 381 | "outputs": [ 382 | { 383 | "data": { 384 | "text/plain": [ 385 | "array([[2.4977331e-07, 2.6878050e-07, 7.2632721e-03, 3.2813968e-08,\n", 386 | " 9.6082795e-01, 2.1373437e-05, 1.3506884e-07, 1.4954335e-02,\n", 387 | " 9.3570343e-08, 1.6932266e-02]], dtype=float32)" 388 | ] 389 | }, 390 | "execution_count": 14, 391 | "metadata": {}, 392 | "output_type": "execute_result" 393 | } 394 | ], 395 | "source": [ 396 | "model.predict([[X_test[4]]])" 397 | ] 398 | }, 399 | { 400 | "cell_type": "code", 401 | "execution_count": 15, 402 | "id": "0a368d71", 403 | "metadata": {}, 404 | "outputs": [], 405 | "source": [ 406 | "import numpy as np" 407 | ] 408 | }, 409 | { 410 | "cell_type": "code", 411 | "execution_count": 16, 412 | "id": "2ff90a9f", 413 | "metadata": {}, 414 | "outputs": [], 415 | "source": [ 416 | "pred = model.predict([[X_test[4]]])" 417 | ] 418 | }, 419 | { 420 | "cell_type": "code", 421 | "execution_count": 17, 422 | "id": "9e738b84", 423 | "metadata": {}, 424 | "outputs": [ 425 | { 426 | "data": { 427 | "text/plain": [ 428 | "4" 429 | ] 430 | }, 431 | "execution_count": 17, 432 | "metadata": {}, 433 | "output_type": "execute_result" 434 | } 435 | ], 436 | "source": [ 437 | "np.argmax(pred)" 438 | ] 439 | }, 440 | { 441 | "cell_type": "code", 442 | "execution_count": null, 443 | "id": "40d3599c", 444 | "metadata": {}, 445 | "outputs": [], 446 | "source": [] 447 | } 448 | ], 449 | "metadata": { 450 | "kernelspec": { 451 | "display_name": "conda_tensorflow_p37", 452 | "language": "python", 453 | "name": "conda_tensorflow_p37" 454 | }, 455 | "language_info": { 456 | "codemirror_mode": { 457 | "name": "ipython", 458 | "version": 3 459 | }, 460 | "file_extension": ".py", 461 | "mimetype": "text/x-python", 462 | "name": "python", 463 | "nbconvert_exporter": "python", 464 | "pygments_lexer": "ipython3", 465 | "version": "3.7.10" 466 | } 467 | }, 468 | "nbformat": 4, 469 | "nbformat_minor": 5 470 | } 471 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Let's Build Something Live! 2 | 3 | These are the resources for my LBS series on YouTube. 4 | 5 | Subscribe and watch along here: https://youtube.com/c/mikegchambers 6 | 7 | Streams live, weekly, at 4:30pm PST (and availble as a recording straight after). 8 | 9 | Ep: 0 - AMA Pilot 10 | https://youtu.be/rHjrDsJI0Dc 11 | 12 | Ep: 1 - Setting up a SageMaker Notebook Server 13 | https://youtu.be/XSzDDXoDfV4 14 | 15 | Ep: 2 - Getting the data 16 | https://youtu.be/7D_m9GdWMLI 17 | 18 | Ep: 3 - Training the model 19 | https://youtu.be/hGu3MbtDrD8 20 | (Trained model is here: https://lets-build-something-assets.s3.amazonaws.com/ep3/model.tar.gz) 21 | 22 | Ep: 4 - Deploy the model 23 | https://youtu.be/sEtMLYqVNJ4 24 | 25 | --------------------------------------------------------------------------------