|
40 | 40 | "cell_type": "markdown",
|
41 | 41 | "metadata": {},
|
42 | 42 | "source": [
|
43 |
| - "When training robust deep learning models we usually require large amount of training data. The high volume of data can be diffcult to manage and process. To reduce time required to export training data and model training, we can distribute the workload to different processes or different machines altogether." |
| 43 | + "When training robust deep learning models, large amounts of training data is usually required. Unfortunately, the large volume of data can often be difficult to manage and process. To reduce the time required to export training data and train a model, we can distribute the workload to different processes, or even different machines altogether." |
44 | 44 | ]
|
45 | 45 | },
|
46 | 46 | {
|
|
51 | 51 | "\n",
|
52 | 52 | "- Exporting or downloading the training data.\n",
|
53 | 53 | "- Training the model.\n",
|
54 |
| - "- Deploy model and extract footprints." |
| 54 | + "- Deploying the model and extracting its footprints." |
55 | 55 | ]
|
56 | 56 | },
|
57 | 57 | {
|
58 | 58 | "cell_type": "markdown",
|
59 | 59 | "metadata": {},
|
60 | 60 | "source": [
|
61 |
| - "This workflow requires deep learning dependencies to be installed. Documentation is available [here](https://developers.arcgis.com/python/guide/install-and-set-up/) to install and setup environment." |
| 61 | + "This workflow requires deep learning dependencies to be installed. Documentation is available [here](https://developers.arcgis.com/python/guide/install-and-set-up/) for installing and setting up an appropriate environment." |
62 | 62 | ]
|
63 | 63 | },
|
64 | 64 | {
|
|
72 | 72 | "cell_type": "markdown",
|
73 | 73 | "metadata": {},
|
74 | 74 | "source": [
|
75 |
| - "We will be using the the 'Export Training Data for Deep Learning' tool to export training data." |
| 75 | + "We will be using the ['Export Training Data for Deep Learning'](https://pro.arcgis.com/en/pro-app/latest/tool-reference/spatial-analyst/export-training-data-for-deep-learning.htm) tool to export the training data." |
76 | 76 | ]
|
77 | 77 | },
|
78 | 78 | {
|
79 | 79 | "cell_type": "markdown",
|
80 | 80 | "metadata": {},
|
81 | 81 | "source": [
|
82 |
| - "Imagery and Data Sources\n", |
83 |
| - "- Imagery: NAIP Imagery downloaded from [here](https://nrcs.app.box.com/v/naip).\n", |
84 |
| - "- labels: The U.S. Wind Turbine Database has been downloaded from [here](https://eerscmap.usgs.gov/uswtdb/assets/data/uswtdbSHP.zip)." |
| 82 | + "Imagery and Data Sources:\n", |
| 83 | + "- Imagery: NAIP Imagery downloaded [here](https://nrcs.app.box.com/v/naip).\n", |
| 84 | + "- labels: The U.S. Wind Turbine Database downloaded [here](https://eerscmap.usgs.gov/uswtdb/assets/data/uswtdbSHP.zip)." |
85 | 85 | ]
|
86 | 86 | },
|
87 | 87 | {
|
88 | 88 | "cell_type": "markdown",
|
89 | 89 | "metadata": {},
|
90 | 90 | "source": [
|
91 |
| - "Here we have multiple rasters and a label file. We will prepare a list of arguments and map with `arcpy.ia.ExportTrainingDataForDeepLearning`. In this sample we are distributing processing per image. However, in case of large rasters we can further split the rasters to parts and distribute processing across various windows on raster. " |
| 91 | + "Here, we have multiple rasters and a label file. We will prepare a list of arguments and a map with `arcpy.ia.ExportTrainingDataForDeepLearning`. In this sample, we are distributing processing per image. However, in cases with larger rasters, we can further split the rasters to parts and distribute the processing across various windows on the raster." |
92 | 92 | ]
|
93 | 93 | },
|
94 | 94 | {
|
|
156 | 156 | "cell_type": "markdown",
|
157 | 157 | "metadata": {},
|
158 | 158 | "source": [
|
159 |
| - "This will create all the necessary files needed for the next step in the specified 'Output Folder'. These files serve as our training data." |
| 159 | + "This will create all of the files necessary for the next step in the 'Output Path'. These files will serve as our training data." |
160 | 160 | ]
|
161 | 161 | },
|
162 | 162 | {
|
163 | 163 | "cell_type": "markdown",
|
164 | 164 | "metadata": {},
|
165 | 165 | "source": [
|
166 |
| - "**You can create a python script with contents as above or download a sample using the ArcGIS Python API as shown below.**" |
| 166 | + "**You can either create a python script with the content above or download a sample using the ArcGIS Python API, as shown below.**" |
167 | 167 | ]
|
168 | 168 | },
|
169 | 169 | {
|
|
241 | 241 | "source": [
|
242 | 242 | "## Download sample training data (optional)\n",
|
243 | 243 | "\n",
|
244 |
| - "Alternatively, you can also directly get a sample of exported training data as shown below." |
| 244 | + "Alternatively, you can also directly get a sample of exported training data, as shown below." |
245 | 245 | ]
|
246 | 246 | },
|
247 | 247 | {
|
|
344 | 344 | "cell_type": "markdown",
|
345 | 345 | "metadata": {},
|
346 | 346 | "source": [
|
347 |
| - "When working with large volumes of training data. It is recommended to use distributed training, if multiple GPUs are available. This can be done using a python script, similar to as shown below." |
| 347 | + "When working with large volumes of training data, it is recommended that you use distributed training if multiple GPUs are available to you. This process can be done using a python script, as shown below." |
348 | 348 | ]
|
349 | 349 | },
|
350 | 350 | {
|
|
376 | 376 | "cell_type": "markdown",
|
377 | 377 | "metadata": {},
|
378 | 378 | "source": [
|
379 |
| - "**You can create a python script with contents as above or download a sample using the ArcGIS Python API as shown below.**" |
| 379 | + "**You can either create a python script with the content above or download a sample using the ArcGIS Python API, as shown below.**" |
380 | 380 | ]
|
381 | 381 | },
|
382 | 382 | {
|
|
469 | 469 | "cell_type": "markdown",
|
470 | 470 | "metadata": {},
|
471 | 471 | "source": [
|
472 |
| - " **Important!** Replace `<number-of-GPUs>` with an appropriate integer value.\n", |
| 472 | + " **Important!** Replace `<number-of-GPUs>` with an integer value representing the optimal number of GPU's you want to utilize.\n", |
473 | 473 | "\n",
|
474 |
| - "To find more information about the torch distributed launch module, you can follow the pytorch documentation [here](https://pytorch.org/docs/1.8.1/distributed.html#launch-utility)" |
| 474 | + "Learn more about the torch distributed launch module in the pytorch documentation [here](https://pytorch.org/docs/1.8.1/distributed.html#launch-utility)" |
475 | 475 | ]
|
476 | 476 | },
|
477 | 477 | {
|
|
487 | 487 | "source": [
|
488 | 488 | "While the model is training, we can monitor the performance of the model using tensorboard. \n",
|
489 | 489 | "\n",
|
490 |
| - "For starting tensorboard monitor we need to execute the related command printed by the model training script." |
| 490 | + "To start monitoring with tensorboard, we need to execute the related command printed by the model training script." |
491 | 491 | ]
|
492 | 492 | },
|
493 | 493 | {
|
|
528 | 528 | "cell_type": "markdown",
|
529 | 529 | "metadata": {},
|
530 | 530 | "source": [
|
531 |
| - "Once executed, we need to Launch the tensorboard monitor in a browser by visiting the printed URL. This is how the tensorboard monitor look like:" |
| 531 | + "Once executed, we need to Launch the tensorboard monitor in a browser by visiting the printed URL. The tensorboard monitor will look like the following image:" |
532 | 532 | ]
|
533 | 533 | },
|
534 | 534 | {
|
|
542 | 542 | "cell_type": "markdown",
|
543 | 543 | "metadata": {},
|
544 | 544 | "source": [
|
545 |
| - "For more infromation about tensorboard support in ArcGIS Python API you can follow [this guide](https://developers.arcgis.com/python/guide/monitor-model-training-with-tensorboard/)." |
| 545 | + "For more infromation about tensorboard support in ArcGIS Python API, you can follow [this guide](https://developers.arcgis.com/python/guide/monitor-model-training-with-tensorboard/)." |
546 | 546 | ]
|
547 | 547 | },
|
548 | 548 | {
|
|
556 | 556 | "cell_type": "markdown",
|
557 | 557 | "metadata": {},
|
558 | 558 | "source": [
|
559 |
| - "We will find the model saved in 'models' folder. The saved model can be used to detect wind turbines using the [Detect Objects Using Deep Learning](https://pro.arcgis.com/en/pro-app/latest/tool-reference/image-analyst/detect-objects-using-deep-learning.htm) tool available in ArcGIS Pro, or ArcGIS Enterprise." |
| 559 | + "We will find the model saved in the 'models' folder. The saved model can be used to detect wind turbines using the [Detect Objects Using Deep Learning](https://pro.arcgis.com/en/pro-app/latest/tool-reference/image-analyst/detect-objects-using-deep-learning.htm) tool, available in both ArcGIS Pro and ArcGIS Enterprise." |
560 | 560 | ]
|
561 | 561 | },
|
562 | 562 | {
|
|
608 | 608 | "cell_type": "markdown",
|
609 | 609 | "metadata": {},
|
610 | 610 | "source": [
|
611 |
| - "The output of this model is a layer of detected wind turbines as show below." |
| 611 | + "The output of this model is a layer of detected wind turbines, as show below." |
612 | 612 | ]
|
613 | 613 | },
|
614 | 614 | {
|
|
0 commit comments