|
5 | 5 | "colab": {
|
6 | 6 | "name": "Lab5-Using-Convolutions-With-Complex-Images.ipynb",
|
7 | 7 | "provenance": [],
|
8 |
| - "collapsed_sections": [], |
9 |
| - "toc_visible": true |
| 8 | + "collapsed_sections": [] |
10 | 9 | },
|
11 | 10 | "kernelspec": {
|
12 | 11 | "name": "python3",
|
|
35 | 34 | "# See the License for the specific language governing permissions and\n",
|
36 | 35 | "# limitations under the License."
|
37 | 36 | ],
|
38 |
| - "execution_count": 0, |
| 37 | + "execution_count": null, |
39 | 38 | "outputs": []
|
40 | 39 | },
|
41 | 40 | {
|
|
81 | 80 | " https://storage.googleapis.com/laurencemoroney-blog.appspot.com/validation-horse-or-human.zip \\\n",
|
82 | 81 | " -O /tmp/validation-horse-or-human.zip"
|
83 | 82 | ],
|
84 |
| - "execution_count": 0, |
| 83 | + "execution_count": null, |
85 | 84 | "outputs": []
|
86 | 85 | },
|
87 | 86 | {
|
|
113 | 112 | "zip_ref.extractall('/tmp/validation-horse-or-human')\n",
|
114 | 113 | "zip_ref.close()"
|
115 | 114 | ],
|
116 |
| - "execution_count": 0, |
| 115 | + "execution_count": null, |
117 | 116 | "outputs": []
|
118 | 117 | },
|
119 | 118 | {
|
|
154 | 153 | "# Directory with our training human pictures\n",
|
155 | 154 | "validation_human_dir = os.path.join('/tmp/validation-horse-or-human/humans')"
|
156 | 155 | ],
|
157 |
| - "execution_count": 0, |
| 156 | + "execution_count": null, |
158 | 157 | "outputs": []
|
159 | 158 | },
|
160 | 159 | {
|
|
181 | 180 | "train_human_names = os.listdir(train_human_dir)\n",
|
182 | 181 | "print(train_human_names[:10])"
|
183 | 182 | ],
|
184 |
| - "execution_count": 0, |
| 183 | + "execution_count": null, |
185 | 184 | "outputs": []
|
186 | 185 | },
|
187 | 186 | {
|
|
205 | 204 | "print('total training horse images:', len(os.listdir(train_horse_dir)))\n",
|
206 | 205 | "print('total training human images:', len(os.listdir(train_human_dir)))"
|
207 | 206 | ],
|
208 |
| - "execution_count": 0, |
| 207 | + "execution_count": null, |
209 | 208 | "outputs": []
|
210 | 209 | },
|
211 | 210 | {
|
|
238 | 237 | "# Index for iterating over images\n",
|
239 | 238 | "pic_index = 0"
|
240 | 239 | ],
|
241 |
| - "execution_count": 0, |
| 240 | + "execution_count": null, |
242 | 241 | "outputs": []
|
243 | 242 | },
|
244 | 243 | {
|
|
279 | 278 | "\n",
|
280 | 279 | "plt.show()\n"
|
281 | 280 | ],
|
282 |
| - "execution_count": 0, |
| 281 | + "execution_count": null, |
283 | 282 | "outputs": []
|
284 | 283 | },
|
285 | 284 | {
|
|
310 | 309 | "except Exception:\n",
|
311 | 310 | " pass"
|
312 | 311 | ],
|
313 |
| - "execution_count": 0, |
| 312 | + "execution_count": null, |
314 | 313 | "outputs": []
|
315 | 314 | },
|
316 | 315 | {
|
|
324 | 323 | "import tensorflow as tf\n",
|
325 | 324 | "print(tf.__version__)"
|
326 | 325 | ],
|
327 |
| - "execution_count": 0, |
| 326 | + "execution_count": null, |
328 | 327 | "outputs": []
|
329 | 328 | },
|
330 | 329 | {
|
|
370 | 369 | " tf.keras.layers.Dense(1, activation='sigmoid')\n",
|
371 | 370 | "])\n"
|
372 | 371 | ],
|
373 |
| - "execution_count": 0, |
| 372 | + "execution_count": null, |
374 | 373 | "outputs": []
|
375 | 374 | },
|
376 | 375 | {
|
|
393 | 392 | "source": [
|
394 | 393 | "model.summary()"
|
395 | 394 | ],
|
396 |
| - "execution_count": 0, |
| 395 | + "execution_count": null, |
397 | 396 | "outputs": []
|
398 | 397 | },
|
399 | 398 | {
|
|
432 | 431 | " optimizer=RMSprop(lr=0.001),\n",
|
433 | 432 | " metrics=['accuracy'])"
|
434 | 433 | ],
|
435 |
| - "execution_count": 0, |
| 434 | + "execution_count": null, |
436 | 435 | "outputs": []
|
437 | 436 | },
|
438 | 437 | {
|
|
482 | 481 | " # Since we use binary_crossentropy loss, we need binary labels\n",
|
483 | 482 | " class_mode='binary')\n"
|
484 | 483 | ],
|
485 |
| - "execution_count": 0, |
| 484 | + "execution_count": null, |
486 | 485 | "outputs": []
|
487 | 486 | },
|
488 | 487 | {
|
|
516 | 515 | " validation_steps=8,\n",
|
517 | 516 | " verbose=1)"
|
518 | 517 | ],
|
519 |
| - "execution_count": 0, |
| 518 | + "execution_count": null, |
520 | 519 | "outputs": []
|
521 | 520 | },
|
522 | 521 | {
|
|
572 | 571 | " print(fn + \" is a horse\")\n",
|
573 | 572 | " "
|
574 | 573 | ],
|
575 |
| - "execution_count": 0, |
| 574 | + "execution_count": null, |
576 | 575 | "outputs": []
|
577 | 576 | },
|
578 | 577 | {
|
|
639 | 638 | " # Postprocess the feature to make it visually palatable\n",
|
640 | 639 | " x = feature_map[0, :, :, i]\n",
|
641 | 640 | " x -= x.mean()\n",
|
642 |
| - " x /= x.std()\n", |
| 641 | + " if x>0:\n", |
| 642 | + " x /= x.std()\n", |
643 | 643 | " x *= 64\n",
|
644 | 644 | " x += 128\n",
|
645 | 645 | " x = np.clip(x, 0, 255).astype('uint8')\n",
|
|
652 | 652 | " plt.grid(False)\n",
|
653 | 653 | " plt.imshow(display_grid, aspect='auto', cmap='viridis')"
|
654 | 654 | ],
|
655 |
| - "execution_count": 0, |
| 655 | + "execution_count": null, |
656 | 656 | "outputs": []
|
657 | 657 | },
|
658 | 658 | {
|
|
691 | 691 | "import os, signal\n",
|
692 | 692 | "os.kill(os.getpid(), signal.SIGKILL)"
|
693 | 693 | ],
|
694 |
| - "execution_count": 0, |
| 694 | + "execution_count": null, |
695 | 695 | "outputs": []
|
696 | 696 | }
|
697 | 697 | ]
|
|
0 commit comments