Skip to content

Commit bf5a5aa

Browse files
committed
review suggestions added
1 parent 4eb4773 commit bf5a5aa

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

guide/14-deep-learning/how_AutoDL_works.ipynb

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@
5252
"cell_type": "markdown",
5353
"metadata": {},
5454
"source": [
55-
"This guide explains the steps for training and evaluating multiple network performance supported by `arcgis.learn` API.\n",
56-
"The `arcgis.learn` API currently supports more than 30 deep learning networks to solve different problems, more specifically for object detetcion task only API provides 4 deep learning networks along with MMDetection class that in turn supports more than twenty object detection networks. Similarly for pixel classification task API provides support for 11 deep learning networks in which MMSegmentation class supports more than twenty pixel classification networks.\n",
55+
"This guide explains the steps for training and evaluation of multiple network architectures supported by `arcgis.learn` API.\n",
56+
"The `arcgis.learn` API currently supports more than 30 deep learning networks to solve different problems, more specifically for object detetcion task only, API provides 4 deep learning networks along with MMDetection class that in turn supports more than twenty object detection networks. Similarly for pixel classification task API provides support for 11 deep learning networks in which MMSegmentation class supports more than twenty pixel classification networks.\n",
5757
"\n",
58-
"To train a deep learning network using the `arcgis.learn` API one must follow the complete pipeline that involves data preprocessing, network selection, hyper parameter tuning and network selection/evaluation based on the performance of the network. This can sometime become a difficult task for a user to iteratively run all the networks to compare the performance and selecting which network works best with the given data. \n",
58+
"To train a deep learning network using the `arcgis.learn` API, one must follow the complete pipeline that involves data preprocessing, network selection, hyper parameter tuning and network selection/evaluation based on the performance of the network. This can sometime become a difficult task for a user to iteratively run all the networks to compare the performance and selecting which network works best with the given data. \n",
5959
"\n",
60-
"AutoDL class automatically trains all the supported network with the given data and within the provided time limit and comes up with a performance tally of all the networks which will provide a fair idea of the best performing network, the AutoDL class also saves all the networks during the training process which can be used later for fine tuning to enhance the network performance.\n"
60+
"AutoDL class automatically trains all the supported network with the given data within the provided time limit and comes up with a performance tally of all the networks which will provide a fair idea of the best performing network, the AutoDL class also saves all the networks during the training process which can be used later for fine tuning to enhance the network performance.\n"
6161
]
6262
},
6363
{
@@ -140,7 +140,7 @@
140140
"cell_type": "markdown",
141141
"metadata": {},
142142
"source": [
143-
"Prepare databunch for AutoDL class using prepare_data() in `arcgis.learn`"
143+
"Prepare data for AutoDL class using prepare_data() in `arcgis.learn`"
144144
]
145145
},
146146
{
@@ -169,13 +169,13 @@
169169
"- `data` (Required Paramter): Returned data object from `prepare_data` function in the previous step.\n",
170170
" \n",
171171
"- `total_time_limit` (Optional parameter):\n",
172-
" The total time limit in hours for AutoDL to train the networks. This parameter becomes important when time is the main constraint to the user. The AutoDL class calculates the number of chips that can be processed in the given time from the prepared databunch.\n",
172+
" The total time limit in hours for AutoDL to train and evaluate the networks. This parameter becomes important when time is the main constraint to the user. The AutoDL class calculates the number of chips that can be processed in the given time from the prepared databunch.\n",
173173
" \n",
174174
" \n",
175-
"- `mode` (Optional Parameter): Can be \"basic\" or \"perform\".\n",
175+
"- `mode` (Optional Parameter): Can be \"basic\" or \"advanced\".\n",
176176
"\n",
177177
" - _basic_ : To to be used when the user wants to train all selected networks.\n",
178-
" - _perform_ : To be used when the user wants to tune hyper parameters of two best performing models from basic mode.\n",
178+
" - _advanced_ : To be used when the user additionally wants to tune hyper parameters of two best performing models from basic mode.\n",
179179
" \n",
180180
"\n",
181181
"- `networks` (Optional Parameter):\n",
@@ -207,8 +207,8 @@
207207
" - In this mode we iterate through all the supported networks exactly once with the default backbone, train it with the passed data and calculate the network performance. At the end of each iteration the function will save the model to the disk. Maximum number of epochs to train each network is 20, however if the remaining time left to process the network is less than than the expected time, the program will automatically calculate the maximum number of epochs to train the network.\n",
208208
" \n",
209209
" \n",
210-
"- **Perform**\n",
211-
" - To be used when the user wants to tune hyper parameters of two best performing networks from basic mode.This mode will divide the total time into two halfs. In the first half it works as basic mode where it will iterate through all the supported networks exactly once. In the second half it checks for two best performing networks. The program then trains the selected networks with different supported backbones. At the end of each iteration the function will save the model to the disk. Maximum number of epochs to train each network is 20, however if the remaining time left to process the network is less than than the expected time, the program will automatically calculate the maximum number of epochs to train the network.\n",
210+
"- **Advanced**\n",
211+
" - To be used when the user wants to tune hyper parameters of two best performing networks from basic mode.This mode will divide the total time into two halfs. In the first half it works as basic mode where it will iterate through all the supported networks exactly once. In the second half it checks for two best performing networks. The program then trains the selected networks with different supported backbones. At the end of each iteration the function will save the model to the disk. Maximum number of epochs to train each network is 20, however if the remaining time left to process the network is less than the expected time(minimum time required to train the network) , the program will automatically calculate the number of epochs to train the network.\n",
212212
" "
213213
]
214214
},
@@ -218,14 +218,14 @@
218218
"metadata": {},
219219
"outputs": [],
220220
"source": [
221-
"dl = AutoDL(data, total_time_limit=5,verbose=True, mode=\"perform\")"
221+
"dl = AutoDL(data, total_time_limit=5,verbose=True, mode=\"advanced\")"
222222
]
223223
},
224224
{
225225
"cell_type": "markdown",
226226
"metadata": {},
227227
"source": [
228-
"When you initialize the AutoDL class it calculates the number of images that can be processed in the given time and the time required to process the entire data. The output of the cell above can be used to analyze and update the `total_time_limit` and `networks` parameters while initializing the class.\n",
228+
"When AutoDL class is initialized, it calculates the number of images that can be processed in the given time and the time required to process the entire data. The output of the cell above can be used to analyze and update the `total_time_limit` and `networks` parameters while initializing the class.\n",
229229
"\n",
230230
"**Here is an example of the output**\n",
231231
"\n",
@@ -424,7 +424,7 @@
424424
"cell_type": "markdown",
425425
"metadata": {},
426426
"source": [
427-
"Once the best performing network is identified it can be further fine tuned using the `ImageryModel` class, this class supports method that can be used to load, fine-tune and save the model for further use."
427+
"Once the best performing network is identified it can be further fine tuned using the `ImageryModel` class, this class supports methods that can be used to load, fine-tune and save the model for further use."
428428
]
429429
},
430430
{
@@ -534,6 +534,20 @@
534534
"im.save(\"path_to_save_model\")"
535535
]
536536
},
537+
{
538+
"cell_type": "markdown",
539+
"metadata": {},
540+
"source": [
541+
"## Conclusion "
542+
]
543+
},
544+
{
545+
"cell_type": "markdown",
546+
"metadata": {},
547+
"source": [
548+
"This guide explains how AutoDL class can be used to automate multiple deeplearning models supported by `arcgis.learn` API. For every step in the workflow, we define a function and talk about its usage. This guide can be a starting point for developers to train and evaluate multiple `arcgis.learn` supported model's performace."
549+
]
550+
},
537551
{
538552
"cell_type": "markdown",
539553
"metadata": {},
@@ -558,7 +572,7 @@
558572
"name": "python",
559573
"nbconvert_exporter": "python",
560574
"pygments_lexer": "ipython3",
561-
"version": "3.9.7"
575+
"version": "3.9.11"
562576
}
563577
},
564578
"nbformat": 4,

0 commit comments

Comments
 (0)