diff --git a/translations/km/.co-op-translator.json b/translations/km/.co-op-translator.json
index f0819173..b5d5d800 100644
--- a/translations/km/.co-op-translator.json
+++ b/translations/km/.co-op-translator.json
@@ -5,6 +5,12 @@
"source_file": "AGENTS.md",
"language_code": "km"
},
+ "CONTRIBUTING.md": {
+ "original_hash": "c6fd7e781b67111a90abd166d0ce4aa0",
+ "translation_date": "2026-07-08T20:51:39+00:00",
+ "source_file": "CONTRIBUTING.md",
+ "language_code": "km"
+ },
"README.md": {
"original_hash": "12c8eb6bf0867d2f1c32daf613ac5b8b",
"translation_date": "2026-04-06T17:01:21+00:00",
@@ -17,6 +23,19 @@
"source_file": "SECURITY.md",
"language_code": "km"
},
+ "__translation_failures__": {
+ "lessons/sketchnotes/LICENSE.md": {
+ "original_hash": "45ab63a2cd8f5faef6c9b150618837a4",
+ "source_file": "lessons/sketchnotes/LICENSE.md",
+ "language_code": "km",
+ "failure_date": "2026-07-08T20:51:02+00:00",
+ "status": "failed",
+ "error_type": "TranslationIncompleteError",
+ "error_message": "Markdown translation remained incomplete for chunk 1.1.1 of 'LICENSE.md', and the chunk could not be split further.",
+ "translator_version": "0.20.0",
+ "failure_policy_version": 1
+ }
+ },
"etc/CODE_OF_CONDUCT.md": {
"original_hash": "c06b12caf3c901eb3156e3dd5b0aea56",
"translation_date": "2026-04-06T17:01:55+00:00",
@@ -60,8 +79,8 @@
"language_code": "km"
},
"examples/README.md": {
- "original_hash": "0d1babfdcbeb46525f2db3fbaaa54cd7",
- "translation_date": "2026-04-06T17:03:36+00:00",
+ "original_hash": "7883d52c2e2a221e0b07a7b112a149b9",
+ "translation_date": "2026-07-08T20:43:44+00:00",
"source_file": "examples/README.md",
"language_code": "km"
},
@@ -72,8 +91,8 @@
"language_code": "km"
},
"lessons/0-course-setup/how-to-run.md": {
- "original_hash": "a4717bd9103b9f6cd84d534b83534689",
- "translation_date": "2026-04-06T17:06:01+00:00",
+ "original_hash": "7ad8c7d8604c53649b3d4d1e2f3a6fa1",
+ "translation_date": "2026-07-08T20:44:16+00:00",
"source_file": "lessons/0-course-setup/how-to-run.md",
"language_code": "km"
},
@@ -306,8 +325,8 @@
"language_code": "km"
},
"lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb": {
- "original_hash": "c189abc107848f96051085cc30945129",
- "translation_date": "2026-04-06T17:57:58+00:00",
+ "original_hash": "99b816b6a4957ef4100cee4c4221dff9",
+ "translation_date": "2026-07-08T20:27:14+00:00",
"source_file": "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb",
"language_code": "km"
},
@@ -600,8 +619,8 @@
"language_code": "km"
},
"lessons/5-NLP/README.md": {
- "original_hash": "8ef02a9318257ea140ed3ed74442096d",
- "translation_date": "2026-04-06T17:12:27+00:00",
+ "original_hash": "038df6f1a73e49f6430740da083bfd6d",
+ "translation_date": "2026-07-08T20:44:59+00:00",
"source_file": "lessons/5-NLP/README.md",
"language_code": "km"
},
diff --git a/translations/km/CONTRIBUTING.md b/translations/km/CONTRIBUTING.md
new file mode 100644
index 00000000..4bc33d10
--- /dev/null
+++ b/translations/km/CONTRIBUTING.md
@@ -0,0 +1,29 @@
+# យកបំណែកចូលរួមក្នុង AI-For-Beginners
+
+សូមអរគុណចំពោះចំណាប់អារម្មណ៍របស់អ្នកក្នុងការយកបំណែកចូលរួមក្នុង AI-For-Beginners! យើងសូមស្វាគមន៍ការបកប្រែ ការកែលម្អមេរៀន និងការកែតម្រូវទ្រង់ទ្រាយ។
+
+## កិច្ចព្រមព្រៀងសិទ្ធិអ្នករួមចំណែក Microsoft (CLA)
+
+គម្រោងនេះសូមស្វាគមន៍ការយកបំណែក និងយោបល់។ ភាគច្រើននៃការយកបំណែកតម្រូវឲ្យអ្នកយល់ព្រមលើកិច្ចព្រមព្រៀងសិទ្ធិនៅពេលអ្នករួមចំណែក (CLA) ដែលបញ្ជាក់ថាអ្នកមានសិទ្ធិ ហើយពិតជា ផ្តល់សិទ្ធិឲ្យយើងប្រើប្រាស់ការយកបំណែករបស់អ្នក។ សម្រាប់ព័ត៌មានលម្អិត សូមចូលទៅកាន់ [https://cla.microsoft.com](https://cla.microsoft.com)។
+
+នៅពេលដែលអ្នកដាក់សំណើការទាញយក (pull request) CLA-bot នឹងកំណត់ដោយស្វ័យប្រវត្តិថាតើអ្នកត្រូវការផ្តល់ CLA និងតំណាង PR ដូចគ្នា (ឧ. ស្លាក, មតិយោបល់)។ សូមធ្វើតាមការណែនាំដែលបង្ហាញដោយ bot។ អ្នកត្រូវតែបំពេញការនេះតែម្តងតែក្នុងគ្រប់រ៉េបូស៊ីតូរីដែលប្រើ CLA របស់យើង។
+
+## របៀបយកបំណែកចូលរួម
+
+### 1. កែលម្អអក្សរខុស / កំហុសកូដ
+ប្រសិនបើអ្នករកឃើញឃ្លាខុស ឬកំហុសនៅក្នុង Jupyter notebook ឬឯកសារមេរៀន markdownណាមួយ:
+1. បង្កើត fork របស់ repository។
+2. កែសម្អាតឃ្លាខុស ឬភ្ជាប់ខូច។
+3. ដាក់សំណើ Pull Request ជាមួយពណ៌នាថ្មីនៃការកែលម្អ។
+
+### 2. ដាក់សំណើបកប្រែ
+យើងសូមស្វាគមន៍ការបកប្រែម៉េរៀនទៅជาทាសារផ្សេងទៀត! សូមដាក់បកប្រែនៅក្នុងថត `translations/` ដោយប្រើឈ្មោះថតដែលមានស្រាប់ (ឧ. `translations/es/`, `translations/pt-BR/`, `translations/zh-CN/`)។
+
+សម្រាប់ព័ត៌មានលម្អិត ចូលទៅកាន់ [etc/CONTRIBUTING.md](etc/CONTRIBUTING.md)។
+
+---
+
+
+**ការបដិសេធ**:
+ឯកសារនេះត្រូវបានបម្លែងភាសា ដោយប្រើសេវាបម្លែងភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខ្ញុំមានក្តីប្រាថ្នាឱ្យបានច្បាស់លាស់ តែសូមយល់ដឹងថាការបម្លែងដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាទីតាំងគួរត្រូវបានគេប្រើជាប្រភពច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើប្រាស់ការប្រែដោយមនុស្សជំនាញ។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបន្ទាប់ពីការប្រើប្រាស់ការបម្លែងនេះនោះទេ។
+
\ No newline at end of file
diff --git a/translations/km/examples/README.md b/translations/km/examples/README.md
index df23685f..d8e979cb 100644
--- a/translations/km/examples/README.md
+++ b/translations/km/examples/README.md
@@ -1,21 +1,21 @@
-# ឧទាហរណ៍ AI សមរម្យសម្រាប់អ្នកចាប់ផ្តើម
+# ឧទាហរណ៍ AI សម្រួលសម្រាប់អ្នកចាប់ផ្តើម
-ស្វាគមន៍! មូលដ្ឋានទិន្នន័យនេះរួមមានឧទាហរណ៍សាមញ្ញឯករាជ្យដើម្បីជួយអ្នកចាប់ផ្តើមជាមួយ AI និងការសិក្សាម៉ាស៊ីន។ ឧទាហរណ៍នីមួយៗត្រូវបានរចនាឡើងសម្រាប់អ្នកចាប់ផ្តើមជាមួយមតិលម្អិត និងការពន្យល់ជំរុញជជែកជំហាន-បន្ទាត់។
+សូមស្វាគមន៍! ថតនេះមានឧទាហរណ៍សាមញ្ញ ផ្តាច់មុខ ដើម្បីជួយអ្នកចាប់ផ្តើមជាមួយ AI និងការរៀនម៉ាស៊ីន។ ឧទាហរណ៍រៀងរាល់មួយត្រូវបានរចនាឡើងសម្រាប់អ្នកចាប់ផ្តើមដោយមានចំណាំលម្អិត និងការពន្យល់ជំហានៗ។
## 📚 ទិដ្ឋភាពទូទៅនៃឧទាហរណ៍
-| ឧទាហរណ៍ | ពិពណ៌នា | កម្រិតកម្អិត | ការត្រៀមការ |
+| ឧទាហរណ៍ | សេចក្តីបរិយាយ | កម្រិតការលំបាក | តម្រូវការមុនខ្លួន |
|---------|-------------|------------|---------------|
-| [Hello AI World](../../../examples/01-hello-ai-world.py) | កម្មវិធី AI ដំបូងរបស់អ្នក - ការទទួលស្គាល់ម៉ូតសាមញ្ញ | ⭐ សម្រាប់អ្នកចាប់ផ្តើម | មូលដ្ឋាន Python |
-| [Simple Neural Network](../../../examples/02-simple-neural-network.py) | បង្កើតបណ្ដាញសរសៃប្រសាទពីដើម | ⭐⭐ សម្រាប់អ្នកចាប់ផ្តើម+ | Python, គណិតវិទ្យាមូលដ្ឋាន |
-| [Image Classifier](./03-image-classifier.ipynb) | ចាត់ថ្នាក់រូបភាពជាមួយម៉ូដែលដែលបានបណ្តុះជាមុន | ⭐⭐ សម្រាប់អ្នកចាប់ផ្តើម+ | Python, numpy |
-| [Text Sentiment](../../../examples/04-text-sentiment.py) | វិភាគអារម្មណ៍អត្ថបទ (វិជ្ជមាន/អវិជ្ជមាន) | ⭐⭐ សម្រាប់អ្នកចាប់ផ្តើម+ | Python |
+| [Hello AI World](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/01-hello-ai-world.py) | កម្មវិធី AI ដំបូងរបស់អ្នក - ការទំនាក់ទំនងលំនាំសាមញ្ញ | ⭐ អ្នកចាប់ផ្តើម | មូលដ្ឋាន Python |
+| [Simple Neural Network](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/02-simple-neural-network.py) | សាងសង់បណ្តាញប៉ុស្តិ៍ប្រសាទពីដើម | ⭐⭐ អ្នកចាប់ផ្តើម+ | Python, គណិតវិទ្យាមូលដ្ឋាន |
+| [Image Classifier](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/03-image-classifier.ipynb) | ចាត់ថ្នាក់រូបភាពជាមួយម៉ូដែលដែលបានបណ្តុះមុន | ⭐⭐ អ្នកចាប់ផ្តើម+ | Python, numpy |
+| [Text Sentiment](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/04-text-sentiment.py) | វិភាគអារម្មណ៍អត្ថបទ (វិជ្ជមាន/អវិជ្ជមាន) | ⭐⭐ អ្នកចាប់ផ្តើម+ | Python |
-## 🚀 ការចាប់ផ្តើម
+## 🚀 ចាប់ផ្តើម
-### ការត្រៀមភាព
+### តម្រូវការមុនខ្លួន
-ធ្វើការតំឡើង Python (ប្រភេទ 3.8 ឬខ្ពស់ជាងនេះកាន់តែផ្ដល់អនុសាសន៍)។ តំឡើងកញ្ចប់ដែលត្រូវការ៖
+សូមប្រាកដថាអ្នកបានដំឡើង Python (3.8 ឬខ្ពស់ជាងនេះបានណែនាំ)។ ដំឡើងបណ្ណាល័យដែលត្រូវការ៖
```bash
# សម្រាប់ស្គ្រីប Python
@@ -25,63 +25,63 @@ pip install numpy
pip install jupyter numpy pillow tensorflow
```
-ឬប្រើបរិយាកាស conda ពីមេរៀនសិក្សាសំខាន់៖
+ឬប្រើបរិយាកាស conda ពីមេរៀនស្នូល៖
```bash
conda env create --name ai4beg --file ../environment.yml
conda activate ai4beg
```
-### ការប្រតិបត្តិឧទាហរណ៍
+### រត់ឧទាហរណ៍
**សម្រាប់ស្គ្រីប Python (.py files):**
```bash
python 01-hello-ai-world.py
```
-**សម្រាប់កំណត់ត្រា Jupyter (.ipynb files):**
+**សម្រាប់ក្រដាស់ Jupyter (.ipynb files):**
```bash
jupyter notebook 03-image-classifier.ipynb
```
-## 📖 ផ្លូវការសិក្សា
+## 📖 ផ្លូវកំណត់ការរៀន
-យើងសូមណែនាំឲ្យអនុវត្តឧទាហរណ៍តាមលំដាប់៖
+យើងផ្តល់អនុសាសន៍ឲ្យអនុវត្តឧទាហរណ៍តាមលំដាប់ៈ
-1. **ចាប់ផ្តើមជាមួយ "Hello AI World"** - រៀនមូលដ្ឋាននៃការទទួលស្គាល់ម៉ូត
-2. **បង្កើតបណ្ដាញសរសៃប្រសាទសាមញ្ញ** - យល់ដឹងពីរបៀបដែលបណ្ដាញប្រសាទដំណើរការ
-3. **សាកល្បងកម្មវិធីចាត់ថ្នាក់រូបភាព** - មើល AI ដំណើរការជាមួយរូបភាពពិត
-4. **វិភាគអារម្មណ៍អត្ថបទ** - សិក្សាអំពីការដំណើរការភាសាមនុស្សធម្មតា
+1. **ចាប់ផ្តើមជាមួយ "Hello AI World"** - រៀនមូលដ្ឋាននៃការទទួលស្គាល់លំនាំ
+2. **សាងសង់បណ្តាញប៉ុស្តិ៍ប្រសាទសាមញ្ញ** - យល់ដឹងពីរបៀបដែលបណ្តាញប្រសាទដំណើរការ
+3. **សាកល្បងអ្នកចាត់ថ្នាក់រូបភាព** - មើល AI ដំណើរការជាមួយរូបភាពពិត
+4. **វិភាគអារម្មណ៍អត្ថបទ** - ស្វែងយល់អំពីដំណើរការភាសាស្វ័យប្រវត្តិ
## 💡 គន្លឹះសម្រាប់អ្នកចាប់ផ្តើម
-- **អានមតិកូដយ៉ាងប្រុងប្រយ័ត្ន** - ពួកវាអធិប្បាយពីអ្វីដែលបន្ទាត់នីមួយៗធ្វើ
-- **សាកល្បង!** - ព្យាយាមបម្លែងតម្លៃ ហើយមើលថាតើអ្វីកើតឡើង
-- **កុំបារម្ភចំពោះការយល់ដឹងទាំងអស់** - ការសិក្សាដែលត្រូវការពេលវេលា
-- **សួរប្រធានបទ** - ប្រើ [ក្រុមសន្ទនា](https://github.com/microsoft/AI-For-Beginners/discussions)
+- **អានចំណាំក្នុងកូដយ៉ាងម៉ត់ចត់** - ពួកវាបកស្រាយអំពីអ្វីដែលបន្ទាត់នីមួយៗធ្វើ
+- **សាកល្បង!** - ព្យាយាមផ្លាស់ប្តូរតម្លៃហើយមើលអ្វីកើតឡើង
+- **កុំបារម្ភពីការយល់ដឹងទាំងមូល** - ការរៀនត្រូវការពេលវេលា
+- **សួរបញ្ហា** - ប្រើ [កន្លែងពិភាក្សា](https://github.com/microsoft/AI-For-Beginners/discussions)
-## 🔗 ជំហានបន្ទាប់
+## 🔗 ជំហ៊ានបន្ទាប់
-បន្ទាប់ពីបញ្ចប់ឧទាហរណ៍ទាំងនេះ ស្វែងយល់ពីមេរៀនពេញលេញ៖
-- [ការណែនាំ AI](../lessons/1-Intro/README.md)
-- [បណ្ដាញសរសៃប្រសាទ](../lessons/3-NeuralNetworks/README.md)
-- [ចក្ខុវិស័យកុំព្យូទ័រ](../lessons/4-ComputerVision/README.md)
-- [ការដំណើរការភាសាមនុស្សធម្មតា](../lessons/5-NLP/README.md)
+បន្ទាប់ពីបញ្ចប់ឧទាហរណ៍ទាំងនេះ សូមស្វែងយល់ពីមេរៀនពេញលេញ៖
+- [ការណែនាំអំពី AI](../lessons/1-Intro/README.md)
+- [បណ្តាញប្រសាទ](../lessons/3-NeuralNetworks/README.md)
+- [រូបភាពកុំព្យូទ័រ](../lessons/4-ComputerVision/README.md)
+- [ដំណើរការភាសាស្វ័យប្រវត្តិ](../lessons/5-NLP/README.md)
## 🤝 ការចូលរួម
-ឃើញឧទាហរណ៍ទាំងនេះមានប្រយោជន៍ទេ? ជួយយើងបង្កើនគុណភាពរបស់ពួកវា:
-- រាយការណ៍បញ្ហាឬសំណើរកែលម្អ
+រកឃើញឧទាហរណ៍ទាំងនេះជួយបាន? ជួយយើងបង្កើនគុណភាពរបស់វា៖
+- រាយការណ៍បញ្ហា ឬស្នើសុំការកែលម្អ
- បន្ថែមឧទាហរណ៍សម្រាប់អ្នកចាប់ផ្តើម
-- បង្កើនឯកសារនិងមតិកូដ
+- កែលម្អឯកសារនិងចំណាំ
---
-*ចងចាំ៖ អ្នកជំនាញគ្រប់រូបដែលផ្តើមពីអ្នកចាប់ផ្តើម។ សូមសំណាងល្អក្នុងការសិក្សា! 🎓*
+*ចងចាំ៖ អ្នកជំនាញរាល់នាក់ត្រូវបានជាក់លាក់ពីមុនជាអ្នកចាប់ផ្តើម។ សូមសំណាងល្អក្នុងការរៀន! 🎓*
---
-**ការបដិសេធ**៖
-ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំមានភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាតំបន់គឺជាចំណោមព័ត៌មានដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ គួរតែប្រើការបកប្រែដោយវិជ្ជាជីវៈមនុស្ស។ យើងពុំទទួលខុសត្រូវចំពោះការយល់ច្រឡំឬការបកស្រាយខុសៗចេញពីការប្រើប្រាស់ការបកប្រែនេះទេ។
+**ការបដិសេធ**:
+ឯកសារនេះត្រូវបានបម្លែងភាសា ដោយប្រើសេវាបម្លែងភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខ្ញុំមានក្តីប្រាថ្នាឱ្យបានច្បាស់លាស់ តែសូមយល់ដឹងថាការបម្លែងដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាទីតាំងគួរត្រូវបានគេប្រើជាប្រភពច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើប្រាស់ការប្រែដោយមនុស្សជំនាញ។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបន្ទាប់ពីការប្រើប្រាស់ការបម្លែងនេះនោះទេ។
\ No newline at end of file
diff --git a/translations/km/lessons/0-course-setup/how-to-run.md b/translations/km/lessons/0-course-setup/how-to-run.md
index dd394043..891c8cfd 100644
--- a/translations/km/lessons/0-course-setup/how-to-run.md
+++ b/translations/km/lessons/0-course-setup/how-to-run.md
@@ -1,12 +1,12 @@
-# របៀបដំណើរកូដ
+# របៀបដំណើរការ Code
-កម្មវិធីសិក្សានេះមានឧទាហរណ៍អាចអនុវត្ត និងប laboratorio ច្រើនដែលអ្នកត្រូវការដំណើរការ។ ដើម្បីធ្វើដូចនេះ អ្នកត្រូវការជំនាញក្នុងការអនុវត្តកូដ Python ក្នុង Jupyter Notebooks ដែលបានផ្ដល់ជាសមាសធាតុនៃកម្មវិធីសិក្សានេះ។ អ្នកមានជម្រើសជាច្រើនសម្រាប់ការប្រតិបត្តិកូដ៖
+មេរៀននេះមានឧទាហរណ៍ និងមន្ទីរបរិច្ឆេទដែលអាចដំណើរការច្រើន ដែលអ្នកចង់ដំណើរការ។ ដើម្បីធ្វើបានបែបនេះ អ្នកត្រូវការជំនាញក្នុងការបំពេញកូដ Python នៅក្នុង Jupyter Notebooks ដែលផ្តល់ជាផ្នែកមួយនៃមេរៀននេះ។ អ្នកមានជម្រើសជាច្រើនក្នុងការដំណើរការកូដ៖
-## ដំណើរការកូដក្នុងកុំព្យូទ័ររបស់អ្នក
+## ដំណើរការនៅលើកុំព្យូទ័រផ្ទាល់ខ្លួន
-ដើម្បីដំណើរការកូដក្នុងកុំព្យូទ័រផ្ទាល់ខ្លួន អ្នកត្រូវតែដំឡើង Python។ មួយក្នុងចំណោមការផ្ដល់អនុសាសន៍គឺដំឡើង **[miniconda](https://conda.io/en/latest/miniconda.html)** - វាជាការដំឡើងដែលស្រាលដែលគាំទ្រកម្មវិធីគ្រប់គ្រងកញ្ចប់ `conda` សម្រាប់ **បរិស្ថានកម្រិត Python លំដាប់ខុសគ្នា**។
+ដើម្បីដំណើរការកូដនៅលើកុំព្យូទ័រផ្ទាល់ខ្លួន អ្នកត្រូវការដំឡើង Python មួយ។ ការណែនាំមួយគឺទាញយក និងដំឡើង **[miniconda](https://conda.io/en/latest/miniconda.html)** - វាជាការដំឡើងមួយដែលស្រាលខ្លាំង ហើយគាំទ្រអ្នកគ្រប់គ្រងកញ្ចប់ `conda` សម្រាប់បរិស្ថាន Python **វីរុស្សី** ផ្សេងគ្នា។
-បន្ទាប់ពីអ្នកដំឡើង miniconda ចប់ សូមលីងគ្មានអ្នកទៅកាន់ឃ្លាំងហើយបង្កើតបរិស្ថានកម្រិតដែលនឹងប្រើសម្រាប់វគ្គនេះ៖
+បន្ទាប់ពីអ្នកដំឡើង miniconda រួច សូម clone ទុក repository ហើយបង្កើតបរិស្ថានវីរុស្សីសម្រាប់ប្រើប្រាស់នៅវិស័យមេរៀននេះ៖
```bash
git clone http://github.com/microsoft/ai-for-beginners
@@ -15,19 +15,19 @@ conda env create --name ai4beg --file .devcontainer/environment.yml
conda activate ai4beg
```
-### ការប្រើប្រាស់ Visual Studio Code ជាមួយផ្នែកបន្ថែម Python
+### ការប្រើប្រាស់ Visual Studio Code ជាមួយនឹង Python Extension
-កម្មវិធីសិក្សានេះប្រើប្រាស់បានល្អបំផុតនៅពេលបើកវាក្នុង [Visual Studio Code](http://code.visualstudio.com/?WT.mc_id=academic-77998-cacaste) ជាមួយផ្នែកបន្ថែម [Python Extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-77998-cacaste)។
+មេរៀននេះល្អបំផុតនៅពេលបើកវាជាមួយ [Visual Studio Code](http://code.visualstudio.com/?WT.mc_id=academic-77998-cacaste) មាន [Python Extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-77998-cacaste)។
-> **សម្គាល់**៖ មួយពេលអ្នកបានលីងគ្មានម្ដងហើយបើកថតក្នុង VS Code វានឹងស្វ័យប្រវត្តិផ្ដល់ការផ្ដល់អនុសាសន៍ដំឡើងផ្នែក Python ។ អ្នកក៏ត្រូវតែដំឡើង miniconda ដូចបានពិពណ៌នាលើកនៅខាងលើផងដែរ។
+> **សម្គាល់**៖ ម្តងណាដែលអ្នក clone ហើយបើកថតឯកសារនៅក្នុង VS Code វានឹងផ្ដល់យោបល់ឱ្យអ្នកដំឡើង Python extensions។ អ្នកក៏ត្រូវដំឡើង miniconda ដូចបានណែនាំខាងលើផងដែរ។
-> **សម្គាល់**៖ ប្រសិនបើ VS Code ផ្ដល់អនុសាសន៍ឲ្យអ្នកបើកឃ្លាំងឡើងវិញក្នុងផ្ទុក container អ្នកគួរត្រូវបដិសេធដើម្បីប្រើប្រាស់ Python ដំឡើងក្នុងកុំព្យូទ័រផ្ទាល់ខ្លួន។
+> **សម្គាល់**៖ បើ VS Code ផ្តល់យោបល់ឱ្យអ្នកបើក repository នៅក្នុង container ម្តងទៀត អ្នកគួរតែបដិសេធ ដើម្បីប្រើប្រាស់ Python ចំណុចបុរីពាក់កណ្តាលផ្ទាល់ខ្លួន។
-### ការប្រើប្រាស់ Jupyter ក្នុងកម្មវិធីជ្រើសរើស
+### ការប្រើប្រាស់ Jupyter ក្នុងកម្មវិធីបើកទៅកាន់ Browser
-អ្នកក៏អាចប្រើបរិស្ថាន Jupyter ពីកម្មវិធីជ្រើសរើសនៅលើកុំព្យូទ័ររបស់អ្នកផ្ទាល់។ Jupyter ពីផ្លូវចាស់ និង JupyterHub ផ្តល់បរិស្ថានអភិវឌ្ឍន៍ងាយស្រួលជាមួយការបំពេញឯកសារអូតូ ការពណ៌លើកូដ និង ផ្សេងៗទៀត។
+អ្នកអាចប្រើបរិស្ថាន Jupyter ពី browser នៅលើកុំព្យូទ័រផ្ទាល់ខ្លួនដែរ។ ចំណុចគោលនៃ Jupyter និង JupyterHub ផ្តល់បរិស្ថានអភិវឌ្ឍន៍មានភាពងាយស្រួលជាមួយអូតូបញ្ចូលកូដ ការចម្លងពណ៌កូដ លើកទីផ្សារ។
-ដើម្បីចាប់ផ្តើម Jupyter ក្នុងកុំព្យូទ័ររបស់អ្នក សូមទៅកាន់ថតនៃវគ្គនោះ ហើយដំណើរការ៖
+ដើម្បីចាប់ផ្តើម Jupyter នៅលើកុំព្យូទ័រផ្ទាល់ខ្លួន សូមទៅកាន់ថតដែលមានមេរៀន ហើយដំណើរការ៖
```bash
jupyter notebook
@@ -36,36 +36,36 @@ or
```bash
jupyterhub
```
-អ្នកអាចរុករកទៅឯកសារ `.ipynb` មួយណាមួយ បើកវា ហើយចាប់ផ្តើមធ្វើការងារ។
+អ្នកអាចទៅរកឯកសារ `.ipynb` មួយណាមួយ បើកវា ហើយចាប់ផ្តើមការងារ។
### ការដំណើរការនៅក្នុង container
-ជម្រើសមួយផ្សេងទៀតសម្រាប់ការដំឡើង Python គឺដំណើរការកូដក្នុង container។ ព្រោះឃ្លាំងរបស់យើងផ្ដល់ថត `.devcontainer` ពិសេសមួយ ដែលបញ្ជាក់ពីរបៀបសែត container សម្រាប់ repo នេះ VS Code ផ្តល់ឱកាសឲ្យបើកកូដឡើងវិញក្នុង container។ វាត្រូវការដំឡើង Docker ហើយក៏ស្មុគស្មាញជាងនេះ ដូច្នេះយើងផ្ដល់អនុសាសន៍ឲ្យអ្នកប្រើប្រាស់មានបទពិសោធន៍ជាង។
+ជម្រើសមួយផ្សេងទៀតសម្រាប់ការដំឡើង Python គឺដំណើរការកូដនៅក្នុង container។ ពីព្រោះ repository របស់យើងផ្តល់ថត `.devcontainer` ដែលបង្ហាញពីរបៀបបង្កើត container សម្រាប់ repo នេះ VS Code ផ្តល់ឱកាសបើកកូដនៅក្នុង container ម្តងទៀត។ វាតម្រូវអោយមានការដំឡើង Docker ហើយវាធ្វើឱ្យមានភាពស្មុគស្មាញខ្លាំងជាងមុន ដូច្នេះយើងណែនាំសម្រាប់អ្នកមានបទពិសោធន៍ខ្លះឬច្រើនជាងនេះ។
-## ដំណើរការនៅពាណិជ្ជកម្ម Cloud
+## ការដំណើរការនៅក្នុងពពក
-ប្រសិនបើអ្នកមិនចង់ដំឡើង Python ក្នុងកុំព្យូទ័រផ្ទាល់ខ្លួន និងមានចូលដំណើរការទៅធនធាន Cloud មួយចំនួន - ជម្រើសល្អមួយគឺដំណើរការកូដនៅពាណិជ្ជកម្ម Cloud។ មានវិធីជាច្រើនដែលអ្នកអាចធ្វើបានដូចខាងក្រោម៖
+ប្រសិនបើអ្នកមិនចង់ដំឡើង Python នៅលើកុំព្យូទ័រផ្ទាល់ខ្លួន និងមានចូលដំណើរការប្រព័ន្ធពពក មួយជម្រើសល្អគឺដំណើរការកូដនៅក្នុងពពក។ មានរបៀបច្រើនដែលអ្នកអាចធ្វើបាន៖
-* ប្រើប្រាស់ **[GitHub Codespaces](https://github.com/features/codespaces)** ដែលជាបរិស្ថានកម្រិតមានជីវិតបង្កើតឡើងសម្រាប់អ្នកលើ GitHub ដែលអាចចូលដំណើរការចេញតាម VS Code browser។ ប្រសិនបើអ្នកមានចូលដំណើរការទៅ Codespaces អ្នកអាចចុចប៊ូតុង **Code** នៅក្នុងឃ្លាំង ដំណើរកាត់ codespace ហើយចាប់ផ្តើមប្រើបានភ្លាមៗ។
-* ប្រើប្រាស់ **[Binder](https://mybinder.org/v2/gh/microsoft/ai-for-beginners/HEAD)**។ [Binder](https://mybinder.org) ផ្តល់ធនធានកុំព្យូទ័រដោយឥតគិតថ្លៃនៅពាណិជ្ជកម្ម Cloud សម្រាប់អ្នកដែលចង់សាកល្បងកូដលើ GitHub។ មានប៊ូតុងនៅមុខទំព័រដើម្បីបើកឃ្លាំងនៅក្នុង Binder - វាចំនាយពេលរហូតដល់ទៅបណ្ដាញ Binder ដែលនឹងសាងសង់ container មូលដ្ឋាន ហើយចាប់ផ្តើមផ្ទាំងវ៉ិប Jupyter សម្រាប់អ្នកបានយ៉ាងរលូន។
+* ប្រើប្រាស់ **[GitHub Codespaces](https://github.com/features/codespaces)**, វាជាបរិស្ថានវីរុស្សីដែលបានបង្កើតសម្រាប់អ្នកនៅលើ GitHub ដែលអាចចូលបានតាមរយៈផ្ទាំង VS Code នៅក្នុង browser។ ប្រសិនបើអ្នកមានចូលដំណើរការចំពោះ Codespaces អ្នកអាចចុចប៊ូតុង **Code** នៅក្នុង repo ចាប់ផ្តើម codespace ហើយអាចដំណើរការបានភ្លាមៗ។
+* ប្រើប្រាស់ **[Binder](https://mybinder.org/v2/gh/microsoft/ai-for-beginners/HEAD)**។ [Binder](https://mybinder.org) ផ្តល់អោយមានធនធានកុំព្យូទ័រដោយឥតគិតថ្លៃនៅលើពពកសម្រាប់មនុស្សគ្រប់រូបដូចអ្នកក្នុងការពិសោធន៍កូដនៅលើ GitHub។ មានប៊ូតុងនៅមុខទំព័រដើម្បីបើក repository នៅក្នុង Binder - នេះគួរតែដឹកនាំអ្នកទៅទំព័រ Binder ដោយមាន container បានបង្កើតឡើងដោយស្វ័យប្រវត្តិ ហើយចាប់ផ្តើមផ្ទាំងបង្ហាញ Jupyter ដោយរលូន។
-> **សម្គាល់**៖ ដើម្បីរារាំងការប្រើប្រាស់មិនត្រឹមត្រូវ Binder បានគ្របដណ្តប់ចូលដំណើរការទៅធនធានវ៉ិបមួយចំនួន។ វាអាចលើកឡើងបញ្ហាមួយចំនួនក្នុងកូដដែលយកម៉ូដែលនិង/ឬទិន្នន័យពីអ៊ិនធឺរណិតសាធារណៈ។ អ្នកអាចត្រូវការស្វែងរកវិធីជៀសវាងខ្លះ។ រួចទៀតធនធានកុំព្យូទ័រដែល Binder ផ្តល់គឺមូលដ្ឋានបំផុត ដូច្នេះការបណ្តុះបណ្តាលនឹងយឺតជាង ពិសេសនៅមេរៀនក្រោយៗ ដែលស្មុគស្មាញជាង។
+> **សម្គាល់**៖ ដើម្បីជៀសវាងការប្រើប្រាស់ខុស វេទិកា Binder ត្រូវបានហាមឃាត់ចូលដំណើរការទៅកាន់ធនធានបណ្តាញខ្លះៗ។ វាអាចធ្វើឲ្យកូដខ្លះមិនដំណើរការបាន ដែលទាញយកគំរូ និង/ឬ dataset ពីអ៊ីនធឺណិតសាធារណៈ។ អ្នកប្រហែលជាត្រូវការរកវិធីជំនួសខ្លះ។ ហើយធនធានគណនាដែលបានផ្តល់ឲ្យឯកដោយ Binder គឺមានកម្រិតសាមញ្ញ ដូច្នេះការបង្វឹកនឹងយឺត លើកឡើងជាពិសេសនៅមេរៀនបន្ទាប់ដែលមានស្មុគស្មាញជាងមុន។
-## ដំណើរការនៅពាណិជ្ជកម្ម Cloud ជាមួយ GPU
+## ការដំណើរការនៅក្នុងពពកជាមួយ GPU
-មេរៀនខាងក្រោយៗក្នុងកម្មវិធីសិក្សានេះនឹងទទួលផលប្រយោជន៍យ៉ាងខ្លាំងពីការគាំទ្រ GPU។ ការបណ្តុះបណ្តាលម៉ូដែល ដូចជាគំរូ អាចយឺតយ៉ាវបើគ្មាន GPU។ មានជម្រើសពីរបៀបដែលអ្នកអាចអនុវត្តបាន ជាពិសេស ប្រសិនបើអ្នកមានចូលដំណើរការទៅពាណិជ្ជកម្ម Cloud តាមរយៈ [Azure for Students](https://azure.microsoft.com/free/students/?WT.mc_id=academic-77998-cacaste) ឬតាមដំណើរការស្ថាប័នរបស់អ្នក៖
+មេរៀនខ្លះៗនៅពេលក្រោយក្នុងមេរៀននេះ អាចទទួលបានផលប្រយោជន៏យ៉ាងខ្លាំងពីការគាំទ្រ GPU។ ការបង្វឹកគំរូ ករណីឧទាហរណ៍ អាចយឺតខ្លាំងបើគ្មាន GPU។ មានជម្រើសប៉ុន្មានដែលអ្នកអាចធ្វើបាន ជាពិសេសប្រសិនបើអ្នកមានចូលដំណើរការទៅពពក តាមរយៈ [Azure for Students](https://azure.microsoft.com/free/students/?WT.mc_id=academic-77998-cacaste) ឬតាមរយៈស្ថាប័នរបស់អ្នក៖
-* បង្កើត [Data Science Virtual Machine](https://docs.microsoft.com/learn/modules/intro-to-azure-data-science-virtual-machine/?WT.mc_id=academic-77998-cacaste) ហើយភ្ជាប់តាមរយៈ Jupyter។ អ្នកអាចលីងគ្មាន repo ទៅម៉ាស៊ីននោះបានដោយផ្ទាល់ ហើយចាប់ផ្តើមរៀន។ ម៉ាស៊ីន NC-series មានការគាំទ្រ GPU។
+* បង្កើត [Data Science Virtual Machine](https://docs.microsoft.com/learn/modules/intro-to-azure-data-science-virtual-machine/?WT.mc_id=academic-77998-cacaste) ហើយភ្ជាប់ចូលតាម Jupyter។ អ្នកអាច clone repo បានផ្ទាល់លើម៉ាស៊ីន ហើយចាប់ផ្តើមរៀន។ VM គ្រប់គ្រង NC-series មានការគាំទ្រ GPU។
-> **សម្គាល់**៖ សេវាកម្មខ្លះៗ រួមទាំង Azure for Students មិនផ្តល់ជាការគាំទ្រ GPU ដើមទេ។ អ្នកអាចត្រូវស្នាក់រស្នើការកំណត់ GPU បន្ថែមជាមួយសំណើស្វាគមន៍បច្ចេកទេស។
+> **សម្គាល់**៖ ការជាវខ្លះៗ រួមមាន Azure for Students មិនផ្តល់អោយមានការគាំទ្រ GPU ទាំងស្រុង។ អ្នកប្រហែលជាត្រូវការរបាយការណ៍សកម្មភាពបច្ចេកទេស សម្រាប់ស្នើសុំចំនួន GPU បន្ថែម។
-* បង្កើត [Azure Machine Learning Workspace](https://azure.microsoft.com/services/machine-learning/?WT.mc_id=academic-77998-cacaste) ហើយប្រើលក្ខណៈពិសេស Notebook នៅទីនោះ។ [វីដេអូនេះ](https://azure-for-academics.github.io/quickstart/azureml-papers/) បង្ហាញពីរបៀបលីង repo ទៅក្នុង Azure ML notebook ហើយចាប់ផ្តើមប្រើប្រាស់។
+* បង្កើត [Azure Machine Learning Workspace](https://azure.microsoft.com/services/machine-learning/?WT.mc_id=academic-77998-cacaste) ហើយបន្ទាប់មកប្រើប្រាស់មុខងារ Notebook នៅទីនោះ។ [វីដេអូនេះ](https://azure-for-academics.github.io/quickstart/azureml-papers/) បង្ហាញពីរបៀប clone repository ចូលក្នុង Azure ML notebook ហើយចាប់ផ្តើមប្រើប្រាស់វា។
-អ្នកក៏អាចប្រើ Google Colab ដែលមានការគាំទ្រពី GPU ដោយឥតគិតថ្លៃ និងផ្ទុក Jupyter Notebooks ទៅទីនោះដើម្បីអនុវត្តមួយម៉ឺនុយម្ដង។
+អ្នកក៏អាចប្រើ Google Colab ដែលផ្តល់ការគាំទ្រ GPU ឥតគិតថ្លៃខ្លះៗ ហើយផ្ទុក Jupyter Notebooks ទៅនោះដើម្បីដំណើរការបានមួយតាមមួយ។
---
-**ការបដិសេធ**៖
-ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ បើទោះបីយើងខិតខំរកភាពត្រឹមត្រូវក្របខ័ណ្ឌក៏ដោយ សូមដឹងថាការបកប្រែដោយស្វ័យប្រវត្តអាចមានកំហុស ឬការមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមជាភាសាដើមគួរត្រូវបានគិតថាជា ប្រភពផ្លូវការបំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ អង្គការបកប្រែដោយមនុស្សជំនាញត្រូវបានផ្ដល់អនុសាសន៍។ យើងមិនមានការទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសប្រកបដោយការប្រើប្រាស់ការបកប្រែនេះឡើយ។
+**ការបដិសេធ**:
+ឯកសារនេះត្រូវបានបម្លែងភាសា ដោយប្រើសេវាបម្លែងភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខ្ញុំមានក្តីប្រាថ្នាឱ្យបានច្បាស់លាស់ តែសូមយល់ដឹងថាការបម្លែងដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាទីតាំងគួរត្រូវបានគេប្រើជាប្រភពច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើប្រាស់ការប្រែដោយមនុស្សជំនាញ។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបន្ទាប់ពីការប្រើប្រាស់ការបម្លែងនេះនោះទេ។
\ No newline at end of file
diff --git a/translations/km/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb b/translations/km/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
index 02583d39..2520dc21 100644
--- a/translations/km/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
+++ b/translations/km/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
@@ -4,11 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "# ម៉ូឌែលបានបណ្ដុះបណ្ដាលជាមុន និងការរៀនផ្ទេរ\n",
+ "# ម៉ូឌែលដែលបានបណ្តុះបណ្តាលជាមុន និងការរៀនផ្ទេរ\n",
"\n",
- "ការបណ្ដុះបណ្ដាល CNN អាចចំណាយពេលយូរ និងត្រូវការទិន្នន័យច្រើនសម្រាប់ភារកិច្ចនោះ។ ទោះយ៉ាងណាក្ដី ពេលភាគច្រើនត្រូវបានប្រើសម្រាប់រៀនបន្ទះតម្រៀបកម្រិតទាបដ៏ល្អបំផុតដែលបណ្តាញកំពុងប្រើសម្រាប់បំបែកលំរូពីរូបភាព។ សំណួរធម្មជាតិមួយកើតឡើង - តើយើងអាចប្រើបណ្តាញប្រសិត្រដែលបានបណ្ដុះបណ្ដាលមួយទៅលើទិន្នន័យមួយ ហើយបត់ប្រើវាសម្រាប់ចាត់ថ្នាក់រូបភាពផ្សេងគ្នាបាន ដោយគ្មានដំណើរការបណ្តុះបណ្ដាលពេញលេញទេមែន?\n",
+ "ការបណ្តុះបណ្តាល CNNs អាចចំណាយពេលវេលាច្រើន និងតម្រូវឱ្យមានទិន្នន័យច្រើនសម្រាប់ដំណើរការនោះ។ ទោះយ៉ាងណា ភាគច្រើននៃពេលវេលាត្រូវបានចំណាយដើម្បីរៀនតម្រៀបមូលដ្ឋានល្អបំផុតដែលបណ្តាញកំពុងប្រើដើម្បីដកយកលំនាំពីរូបភាព។ សំណួរតាមធម្មជាតិមួយកើតឡើង- តើយើងអាចប្រើបណ្តាញសួន្យដែលបានបណ្តុះបណ្តាលលើសំណុំទិន្នន័យមួយ និងទ្រង់ទ្រាយវាឡើងវិញសម្រាប់ចាត់ថ្នាក់រូបភាពផ្សេងទៀតដោយគ្មានដំណើរការបណ្តុះបណ្តាលពេញលេញទេ?\n",
"\n",
- "វិធាននេះហៅថា **ការរៀនផ្ទេរ** ព្រោះយើងផ្ទេរព័ត៌មានមួយចំនួនពីម៉ូឌែលបណ្តាញប្រសិត្រមួយទៅម៉ូឌែលផ្សេងទៀត។ នៅក្នុងការរៀនផ្ទេរ យើងធ្លាប់ចាប់ផ្តើមជាមួយម៉ូឌែលដែលបានបណ្ដុះបណ្ដាលជាមុន មួយដែលបានបណ្ដុះបណ្ដាលលើទិន្នន័យរូបភាពធំមួយ ដូចជា **ImageNet**។ ម៉ូឌែលទាំងនោះអាចធ្វើការល្អរួចហើយក្នុងការបំបែកលក្ខណៈផ្សេងៗពីរូបភាពទូទៅ ហើយក្នុងករណីជាច្រើន ការបង្កើតអ្នកចាត់ថ្នាក់ភ្ជាប់ទៅលើលក្ខណៈដែលបានប្រមូលនោះអាចផ្ដល់លទ្ធផលល្អបាន។\n"
+ "វិធីសាស្រ្តនេះហៅថា **ការរៀនផ្ទេរ** ព្រោះយើងផ្ទេរយកចំណេះដឹងពីម៉ូឌែលបណ្តាញសួន្យមួយទៅម៉ូឌែលផ្សេងទៀត។ ក្នុងការរៀនផ្ទេរ យើងភ្លេចចាប់ផ្តើមជាមួយម៉ូឌែលដែលបានបណ្តុះបណ្តាលជាមុន ដែលបានបណ្តុះបណ្តាលលើសំណុំទិន្នន័យរូបភាពធំមួយ ដូចជា **ImageNet**។ ម៉ូឌែលទាំងនោះអាចធ្វើការដកយកលក្ខណៈបានល្អពីរូបភាពទូទៅ ហើយក្នុងជម្រើសជាច្រើន ការបង្កើតជាក្រុមចាត់ថ្នាក់នៅលើលក្ខណៈដែលបានដកយកនោះអាចផ្តល់លទ្ធផលល្អ។\n"
]
},
{
@@ -29,11 +29,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## ឯកសារពហុរូបភាពឆ្កែ និងឆ្មា\n",
+ "## ទិន្នន័យឆ្មា និងឆ្កែ\n",
"\n",
- "ក្នុងមេរៀននេះ យើងនឹងដោះស្រាយបញ្ហាជាក់ស្ដែងនៃការតែងសម្ព័ន្ធរូបភាពឆ្មា និងឆ្កែ។ ដូចនេះ យើងនឹងប្រើប្រាស់ [ឯកសារពហុរូបភាពឆ្មា និងឆ្កែ Kaggle](https://www.kaggle.com/c/dogs-vs-cats) ដែលអាចទាញយកបានជាមួយនឹង [Microsoft](https://www.microsoft.com/en-us/download/details.aspx?id=54765&WT.mc_id=academic-77998-cacaste) ផងដែរ។\n",
+ "នៅក្នុងឯកតានេះ យើងនឹងដោះស្រាយបញ្ហាជាក់ស្តែងមួយស្តីពីការផ្គូរផ្គងរូបភាពឆ្មានិងឆ្កែ។ ដែលសំរាប់ហេតុផលនេះ យើងនឹងប្រើ [Kaggle Cats vs. Dogs Dataset](https://www.kaggle.com/c/dogs-vs-cats) ដែលអាចទាញយកបានពី [Microsoft](https://www.microsoft.com/en-us/download/details.aspx?id=54765&WT.mc_id=academic-77998-cacaste) ផងដែរ។\n",
"\n",
- "យើងមកទាញយកឯកសារនេះហើយដោះស្រាយវាទៅក្នុងថត `data` (ដំណើរការនេះអាចយកពេលខ្លះ!):\n"
+ "ចូរយើងទាញយកទិន្នន័យនេះ ហើយដោះសោវាទៅក្នុងថត `data` (ដំណើរការនេះអាចចំណាយពេលខ្លះ!):\n"
]
},
{
@@ -64,7 +64,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "គ្រោះថ្នាក់ មានឯកសាររូបភាពខូចខាតមួយចំនួននៅក្នុងផ្នែកទិន្នន័យ។ យើងត្រូវធ្វើការសម្អាតលឿនដើម្បីពិនិត្យឯកសារខូចខាត។ ដើម្បីមិនបំផ្លាញមេរៀននេះ យើងបានផ្លាស់ទីកូដសម្រាប់ផ្ទៀងផ្ទាត់ផ្នែកទិន្នន័យទៅក្នុងម៉ូឌុលមួយ។\n"
+ "ព្រោះមានឯកសាររូបភាពខូចខាតមួយចំនួននៅក្នុងឃ្លាំងទិន្នន័យ។ យើងត្រូវតែធ្វើការសម្អាតបន្ទាន់ដើម្បីពិនិត្យឯកសារខូចខាត។ ដើម្បីមិនបំផ្លាញមេរៀននេះ យើងបានផ្លាស់ប្តូរកូដសម្រាប់ផ្ទៀងផ្ទាត់ឃ្លាំងទិន្នន័យទៅក្នុងម៉ូឌុលមួយ។ \n"
]
},
{
@@ -333,13 +333,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## កំពុងបញ្ជូលទិន្នន័យ\n",
+ "## ការវិលទិន្នន័យ\n",
"\n",
- "នៅក្នុងឧទាហរណ៍មុនៗ យើងបានកំពុងបញ្ជូលឃ្លាំងទិន្នន័យដែលបានបង្កើតរួចនៅក្នុង Keras។ ឥឡូវនេះ យើងត្រូវដោះស្រាយជាមួយឃ្លាំងទិន្នន័យរបស់យើង ដែលយើងត្រូវបញ្ជូលពីថតរូបភាពមួយ។\n",
+ "ក្នុងឧទាហរណ៍មុនៗ យើងគឺកំពុងវិលទិន្នន័យដែលបានបង្កើតឡើងក្នុង Keras។ ឥឡូវនេះយើងកំពុងតែធ្វើការជាមួយទិន្នន័យផ្ទាល់ខ្លួនរបស់យើង ដែលយើងត្រូវតែវិលពីថតរូបច្រើនៗ។\n",
"\n",
- "នៅក្នុងជីវិតពិត ទំហំឃ្លាំងទិន្នន័យរូបភាពអាចធំប៉ុន្មាន និងមិនអាចជឿថាទិន្នន័យទាំងអស់អាចផ្គូរផ្គងក្នុងកំរឹតចងចាំបានទេ។ ដូច្នេះ ឃ្លាំងទិន្នន័យជារឿយៗត្រូវបានតំណាងដោយ **ជ័របង្កើត** ដែលអាចត្រឡប់ទិន្នន័យជាមិនិប៉តមីតសម្រាប់បណ្តុះបណ្តាល។\n",
+ "ក្នុងជីវិតពិត ទំហំទិន្នន័យរូបភាពអាចធំធេងខ្លាំង ហើយមិនអាចទុកចិត្តថាទិន្នន័យទាំងអស់អាចដាក់ចូលក្នុងអង្គចងចាំបានទេ។ ដូចនេះ ទិន្នន័យជាញឹកញាប់ត្រូវបានតំណាងឲ្យជាអ្នកបង្កើត (**generators**) ដែលអាចបញ្ចូនទិន្នន័យជាមីនីបេតដែលសមរម្យសម្រាប់ការបណ្តុះបណ្តាល។\n",
"\n",
- "ដើម្បីដោះស្រាយការបែងចែករូបភាព Keras រួមបញ្ចូលមុខងារពិសេស `image_dataset_from_directory` ដែលអាចបញ្ចូលរូបភាពពីថតរូបភាពរងដែលសមរម្យនឹងថ្នាក់ផ្សេងៗគ្នា។ មុខងារនេះក៏ទទួលខុសត្រូវចំពោះការតម្រូវទំហំនៃរូបភាព និងវាក៏អាចបំបែកឃ្លាំងទិន្នន័យទៅជាសំណុំសម្រាប់បណ្តុះបណ្តាល និងសំណុំសម្រាប់សាកល្បងផងដែរ៖\n"
+ "ដើម្បីដោះស្រាយបញ្ហាការបែងចែករូបភាព Keras រួមបញ្ចូលមុខងារពិសេស `image_dataset_from_directory` ដែលអាចវិលរូបភាពពីថតរងដែលផ្តោតលើប្រភេទឡែកៗគ្នា។ មុខងារនេះក៏ថែទាំការប្រមាណទំហំនៃរូបភាព និងអាចបំបែកទិន្នន័យជាសំណុំបណ្ដុះបណ្ដាលនិងសំណុំតេស្តផងដែរ៖\n"
]
},
{
@@ -383,9 +383,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "វាសំខាន់ក្នុងការកំណត់តម្លៃ `seed` ដូចគ្នា សម្រាប់ការហៅទាំងពីរ ព្រោះវាដាក់ឥទ្ធិពលលើការបំបែករូបភាពរវាងទិន្នន័យហ្វឹកហាត់និងសាកល្បង។\n",
+ "វាមានសារៈសំខាន់ក្នុងការកំណត់តម្លៃ `seed` ដូចគ្នាសម្រាប់ការហៅពីរទាំងពីរ ពីព្រោះវាប៉ះពាល់ដល់ការបំបែករូបភាពរវាងទិន្នន័យបណ្តុះបណ្តាល និង តេស្ត។\n",
"\n",
- "តំបន់ទិន្នន័យនឹងយកឈ្មោះថ្នាក់ពីថតដោយស្វ័យប្រវត្តិ ហើយអ្នកអាចចូលប្រើពួកវាបាន ប្រសិនបើត្រូវការដោយហៅជា៖\n"
+ "Dataset ចាប់យកឈ្មោះថ្នាក់ពីថតដើមដោយស្វ័យប្រវត្តិ ហើយអ្នកអាចចូលប្រើទៅកាន់ពួកវាប្រសិនបើត្រូវការដោយហៅ៖\n"
]
},
{
@@ -412,7 +412,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "តំណាងទិន្នន័យដែលយើងបានទទួលអាចត្រូវបានផ្ទាល់បញ្ជូនទៅកាន់មុខងារ `fit` ដើម្បីបណ្តុះបណ្តាលម៉ូដែល។ ដំណើរការទាំងនេះមានរូបភាព និង ស្លាកដែលពាក់ព័ន្ធគ្នាទាំងពីរ និងអាចជារឿកបានតាមរយៈការរចនាដូចខាងក្រោម៖\n"
+ "សំណុំទិន្នន័យដែលយើងបានទទួលអាចផ្តល់ឲ្យមុខងារ `fit` ដើម្បីបណ្តុះម៉ូឌែលដោយផ្ទាល់។ វាមានរូបភាពនិងស្លាកនានាដែលគួរត្រូវបានពិនិត្យឡើងវិញសម្រាប់ឱកាសតាមរយៈរចនាសម្ព័ន្ធដូចខាងក្រោម៖\n"
]
},
{
@@ -453,16 +453,16 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "> **ចំណាំ**៖ រូបភាពទាំងអស់ក្នុងសំណុំទិន្នន័យត្រូវបានតំណាងជាតង់ស័រពិន្ទុលន់ចរន្តអចលន៍ដែលមានជម្លោះពី 0-255។ មុនពេលផ្ញើវាទៅបណ្តាញសរសៃប្រសាទ យើងត្រូវតែបំលែងតម្លៃទាំងនេះទៅជាជួរពី 0-1។ នៅពេលគូរស្រស់រូបភាព យើងត្រូវធ្វើដូចគ្នា ឬបំលែងតម្លៃទៅប្រភេទ `int` (ដែលយើងបានធ្វើក្នុងកូដខាងលើ) ដើម្បីបង្ហាញឲ្យ `matplotlib` ដឹងថាយើងចង់គូររូបភាពដើមដែលមិនបានបំលែង។\n"
+ "> **កំណត់សម្គាល់**៖ រូបភាពទាំងអស់នៅក្នុងឃ្លាំងទិន្នន័យ ត្រូវបានតំណាងជាទិន្នន័យ floatint point ដែលមានជួរពី 0 ទៅ 255។ មុនពេលបញ្ជូនវាទៅបណ្តាញប្រសាទ អ្នកត្រូវតែធ្វើការកាស់តម្លៃទាំងនោះឲ្យទៅក្នុងជួរ 0-1។ នៅពេលបង្ហាញរូបភាព យើងត្រូវធ្វើដូចគ្នា ឬបំលែងតម្លៃទៅប្រភេទ `int` (ដែលយើងបានធ្វើនៅកូដខាងលើ) ដើម្បីបង្ហាញឲ្យ `matplotlib` ដឹងថាយើងចង់បង្ហាញរូបភាពដើមមិនបានកាស់។\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "## ម៉ូដែលដែលបានបណ្តុះមុន\n",
+ "## ម៉ូដែលបានបណ្ដុះបណ្ដាលជាមុន\n",
"\n",
- "សម្រាប់ភារកិច្ចចាត់ថ្នាក់រូបភាពជាច្រើន អ្នកអាចរកម៉ូដែលបណ្តុះបណ្តាលបណ្តាញណឺរ៉ុងដែលបានបណ្តុះមុន។ ម៉ូដែលជាច្រើនក្នុងចំណោមវាទាំងនោះអាចរកបាននៅក្នុងណឺមស្ពេស `keras.applications` ហើយមានម៉ូដែលកាន់តែច្រើនទៀតអាចរកបាននៅលើអ៊ីនធឺណិត។ យើងមកមើលវិធីដែលម៉ូដែល VGG-16 ផ្នែកសាមញ្ញបំផុតអាចត្រូវបានផ្ទុក និងប្រើប្រាស់៖\n"
+ "សម្រាប់កិច្ចការចាត់ថ្នាក់រូបភាពជាច្រើន អ្នកអាចស្វែងរកម៉ូដែលបណ្ដុះបណ្ដាលបណ្តាញប្រសាទបានជាមុន។ ម៉ូដែលជាច្រើនក្នុងចំណោមទាំងនេះមាននៅក្នុងឈ្មោះកន្លែង `keras.applications` ហើយម៉ូដែលបន្ថែមទៀតអាចរកបានលើអ៊ិនធឺរណែត។ យើងចង់មើលថា ម៉ូដែល VGG-16 ដែលសាមញ្ញបំផុតអាចត្រូវបានផ្ទុក និងប្រើប្រាស់យ៉ាងដូចម្តេច៖\n"
]
},
{
@@ -497,7 +497,17 @@
}
],
"source": [
- "vgg = keras.applications.VGG16()\n",
+ "# SHA-256 of VGG16 weights (with top)\n",
+ "VGG16_WEIGHTS_SHA256 = '64373286793e3c8b2b4e3219cbf3544bce2f55ab4682710a29f5e7af8f5e4f61'\n",
+ "\n",
+ "_weights_path = keras.utils.get_file(\n",
+ " 'vgg16_weights_tf_dim_ordering_tf_kernels.h5',\n",
+ " 'https://storage.googleapis.com/tensorflow/keras-applications/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels.h5',\n",
+ " file_hash=VGG16_WEIGHTS_SHA256,\n",
+ " hash_algorithm='sha256',\n",
+ ")\n",
+ "\n",
+ "vgg = keras.applications.VGG16(weights=_weights_path)\n",
"inp = keras.applications.vgg16.preprocess_input(x_sample[:1])\n",
"\n",
"res = vgg(inp)\n",
@@ -511,16 +521,16 @@
"metadata": {},
"source": [
"មានរឿងសំខាន់ពីរបីនៅទីនេះ៖\n",
- "* មុននឹងបញ្ជូនការបញ្ចូលទៅកាន់បណ្ដាញដែលបានបណ្តុះបណ្តាលមុន គឺត្រូវតែបម្រុងទុកជាមុនដោយវិធីមួយជាក់លាក់។ វាត្រូវបានធ្វើឡើងដោយការហៅមុខងារ `preprocess_input` ដែលទទួលបានបាត់នៃរូបភាព ហើយត្រឡប់ឲ្យមានទ្រង់ទ្រាយដែលបានដំណើរការ។ នៅក្នុងករណី VGG-16 រូបភាពត្រូវបានធម្មតាទ្រង់ទ្រាយ និងតម្លៃមធ្យមដែលបានកំណត់សម្រាប់បញ្ជាប់មួយៗត្រូវបានដក។ នេះមានមូលហេតុថា VGG-16 ត្រូវបានបណ្តុះបណ្តាលដោយវិធី pre-processing នេះដើមជាមុន។\n",
- "* បណ្ដាញប្រសាទត្រូវបានអនុវត្តទៅលើបាត់បញ្ចូល ហើយយើងទទួលបានជាលទ្ធផលបាត់ tensor ១០០០-ធាតុ ដែលបង្ហាញអំពីប្រហែលនៃថ្នាក់នីមួយៗ។ យើងអាចស្វែងរកលេខថ្នាក់ដែលមានប្រហែលខ្ពស់បំផុតដោយហៅ `argmax` លើ tensor នេះ។\n",
- "* លទ្ធផលដែលបានទទួលគឺជា [លេខនៃថ្នាក់ `ImageNet`](https://gist.github.com/yrevar/942d3a0ac09ec9e5eb3a)។ ដើម្បីយល់ន័យលទ្ធផលនេះ យើងអាចប្រើមុខងារ `decode_predictions` ដែលត្រឡប់ថ្នាក់ខ្ពស់ n សមាជកជាមួយនឹងឈ្មោះរបស់ពួកវា។\n"
+ "* មុនពេលផ្ទេរបញ្ចូលទៅកាន់បណ្ដាញដែលបានហ្វឹកហាត់រួចហើយណាមួយ វាត្រូវបានដំណើរការដំបូងមួយរបៀបជាក់លាក់ទេ។ នេះត្រូវបានធ្វើដោយការហៅមុខងារ `preprocess_input` ដែលទទួលបានច្រកបញ្ចូលនៃរូបភាព ហើយត្រឡប់រូបភាពដែលបានដំណើរការឡើងវិញ។ សម្រាប់ VGG-16 រូបភាពត្រូវបានផ្ទៀងផ្ទាត់ស្ដង់ដារ ហើយតម្លៃមធ្យមមួយដែលបានកំណត់ជាមុនសម្រាប់ប៉ារ៉ាម៉ែត្រនីមួយៗត្រូវបានដកចេញ។ នេះគឺដោយសារតែ VGG-16 ត្រូវបានហ្វឹកហាត់ដើមជាមួយនឹងការដំណើរការដូចនេះ។\n",
+ "* បណ្ដាញនឺរូនត្រូវបានអនុវត្តទៅលើច្រកបញ្ចូល ហើយយើងទទួលបានជាលទ្ធផលជាច្រកបញ្ចូលដែលមានទិន្នន័យ 1000 ធាតុបង្ហាញឱកាសរបស់ថ្នាក់នីមួយៗ។ យើងអាចស្វែងរកលេខថ្នាក់ដែលមានឱកាសខ្ពស់ជាងគេ ដោយហៅ `argmax` លើទិន្នន័យនេះ។\n",
+ "* លទ្ធផលដែលបានទទួលគឺជាអង្គលេខមួយនៃថ្នាក់ `ImageNet`។ ដើម្បីយល់អំពីលទ្ធផលនេះ អ្នកអាចប្រើមុខងារ `decode_predictions` ដែលចេញថ្នាក់កំពូល n រួមជាមួយឈ្មោះរបស់ពួកគេ។\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "មកមើលសំណង់វិស្វកម្មនៃបណ្តាញ VGG-16 ផង:\n"
+ "មកមើលរចនាសម្ព័ន្ធនៃបណ្ដាញ VGG-16 ផងដែរ៖\n"
]
},
{
@@ -599,7 +609,7 @@
"source": [
"## ការគណនា GPU\n",
"\n",
- "បណ្ដាញប្រឡាយស្មារតីជ្រៅដូចជា VGG-16 និងស្ថាបត្យកម្មសម័យទំនើបផ្សេងទៀត ត្រូវការថាមពលគណនាថ្មីខ្លាំងដើម្បីដំណើរការ។ វាមានភាពយោជន៍ក្នុងការប្រើប្រាស់កំណត់ពេល GPU ប្រសិនបើវាអាចរកបាន។ សំណាងល្អ Keras ធ្វើឲ្យការគណនាល្បឿនលឿនឡើងដោយស្វ័យប្រវត្តិនៅលើ GPU ប្រសិនបើវាអាចប្រើបាន។ យើងអាចពិនិត្យថាតើ Tensorflow អាចប្រើ GPU ដោយប្រើកូដខាងក្រោម៖\n"
+ "បណ្តាញសរសៃប្រសាទជ្រៅ ដូចជា VGG-16 និងសំណុំរចនាសម្ព័ន្ធសម័យថ្មីផ្សេងទៀត តម្រូវឲ្យមានកម្លាំងគណនាខ្លាំងខ្លាំងក្នុងការប្រតិបត្តិ។ វាសមរម្យក្នុងការប្រើប្រាស់ការ៉ាដូចជា GPU ប្រសិនបើវាមានស្រាប់។ ចង់សំណាងល្អ Keras ទៅយ៉ាងស្វ័យប្រវត្តិបំប៉នល្បឿនការគណនាលើ GPU ប្រសិនបើវាអាចប្រើបាន។ យើងអាចពិនិត្យមើលថា Tensorflow អាចប្រើ GPU ដោយប្រើកូដដូចខាងក្រោម៖\n"
]
},
{
@@ -626,9 +636,10 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## ការដកមុខងារ VGG\n",
"\n",
- "បើយើងចង់ប្រើ VGG-16 ដើម្បីដកមុខងារពីរូបភាពរបស់យើង យើងត្រូវការម៉ូដែលដែលមិនមានស្រទាប់ចុងក្រោយសម្រាប់ចំណាត់ថ្នាក់។ យើងអាចបង្កើតម៉ូដែល VGG-16 ដោយគ្មានស្រទាប់លើកំពូលដោយប្រើកូដនេះ៖\n"
+ "## ការដកស្រង់លក្ខណៈ VGG\n",
+ "\n",
+ "ប្រសិនបើយើងចង់ប្រើ VGG-16 ដើម្បីដកស្រង់លក្ខណៈពីរូបភាពរបស់យើង តើយើងត្រូវការម៉ូដែលដោយគ្មានស្រទាប់ចុងក្រោយនៃការបែងចែក. យើងអាចបង្កើតម៉ូដែល VGG-16 ដោយគ្មានស្រទាប់ខាងលើដោយប្រើកូដនេះ៖\n"
]
},
{
@@ -680,9 +691,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "វិមាត្រនៃតង់ស័រលក្ខណៈគឺ 7x7x512 ប៉ុន្តែដើម្បីដាក់បង្ហាញវាយើងត្រូវបានបង្រួមវាទៅជារូបរាង 2D ។\n",
+ "ទំហំដែនលក្ខណៈ (feature tensor) គឺ 7x7x512 ប៉ុន្តៃរដើម្បីមើលឃើញវាយើងត្រូវបម្លែងវាទៅរូបរាង 2D។\n",
"\n",
- "ឥឡូវនេះសូមព្យាយាមមើលថាលក្ខណៈទាំងនោះអាចត្រូវបានប្រើដើម្បីចាត់ថ្នាក់រូបភាពដែរឬទេ។ យើងសូមជ្រើសរើសផ្នែកមួយនៃរូបភាព (50 មីនីបាច) ដោយដៃ ហើយគណនាមុនវិចិត្រលក្ខណៈរបស់ពួកវា។ យើងអាចប្រើ API **dataset** របស់ Tensorflow ដើម្បីធ្វើពួកវា។ មុខងារ `map` ទទួលបាន dataset ហើយអនុវត្តលំដាប់ឡំបដ្ឋានមួយដើម្បីបម្លែងវា។ យើងប្រើយន្តការនេះដើម្បីបង្កើត dataset ថ្មី `ds_features_train` និង `ds_features_test` ដែលរួមមានលក្ខណៈដែលបានយកចេញពី VGG ជំនួសរូបភាពដើម។\n"
+ "ឥឡូវនេះ យើងរៀនពីមើលវាថា លក្ខណៈទាំងនេះអាចប្រើបានសម្រាប់ចាត់ថ្នាក់រូបភាពឬទេ។ យើងត្រូវចាប់ផ្ដើមយកផ្នែកមួយសម្រាប់រូបភាពមួយចំនួន (50 minibatches, នៅសំណុំរបស់យើង) ហើយគណនាលទ្ធភាពប្រេសាស់របស់វាមុន។ យើងអាចប្រើកម្មវិធី API **dataset** នៃ Tensorflow សម្រាប់ធ្វើវា។ មុខងារ `map` ទទួល dataset មួយ ហើយអនុវត្តឲ្យមុខងារ lambda ដែលផ្ដល់សម្រាប់បម្លែងវា។ យើងប្រើគន្លងនេះដើម្បីបង្កើត dataset ថ្មីបានជា `ds_features_train` និង `ds_features_test` ដែលមានលក្ខណៈដកស្រង់ពី VGG ជំនួសរូបភាពដើម។\n"
]
},
{
@@ -712,9 +723,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "យើងបានប្រើសំណល់ `.take(50)` ដើម្បីដាក់កំណត់ទំហំឃ្លាំងទិន្នន័យ ដើម្បីលឿនការបង្ហាញរបស់យើង។ អ្នកអាចព្យាយាមការប្រតិបត្តិនេះលើឃ្លាំងទិន្នន័យទាំងមូលបានច្បាស់ជាក់។\n",
+ "យើងបានប្រើកូដ `.take(50)` ដើម្បីកំណត់ទំហំឃ្លាំងទិន្នន័យ ដើម្បីបំណ‘sើរឲ្យការបង្ហាញរបស់យើងរហ័សឡើង។ ប្រសិនបើអ្នកចង់ អ្នកអាចធ្វើតេស្តនេះលើឃ្លាំងទិន្នន័យគ្រប់លំដាប់។\n",
"\n",
- "ឥឡូវនេះដែលយើងមានឃ្លាំងទិន្នន័យដែលបានបញ្ចេញលក្ខណៈពិសេស យើងអាចបណ្តុះបណ្តាលម៉ាស៊ីនចំណាត់ថ្នាក់ដេនស៍សាមញ្ញមួយ ដើម្បីបំរើការបំបែកជារវាងឆ្មា និងឆ្កែ។ បណ្តាញនេះនឹងទទួលយកវ៉ិចទ័រលក្ខណៈជារូបរាង (7,7,512) ហើយផលិតចេញមួយចេញដែលស្របទៅនឹងឆ្កែឬឆ្មា។ ដោយសារវាជាការចំណាត់ថ្នាក់ពីរជម្រើស យើងប្រើមុខងារប្រសូតប្រសប់ `sigmoid` និងការបាត់បង់ `binary_crossentropy`។\n"
+ "ពេលឥឡូវនេះ យើងមានឃ្លាំងទិន្នន័យដែលបានដកលក្ខណៈមកហើយ យើងអាចបណ្តុះមួយម៉ាស៊ីនចាត់ថ្នាក់សាមញ្ញដែលមានកាំរស្មីកំណត់ដើម្បីបំបែកចន្លោះឆ្មា និងឆ្កែ។ បណ្តាញនេះនឹងទទួលបន្ទាត់លក្ខណៈទ្រង់ទ្រាយ (7,7,512) ហើយបង្កើតលទ្ធផលមួយដែលផ្គូផ្គងទៅឆ្កែឬឆ្មា។ ពីព្រោះវាជាការផ្នែកចំណាត់ថ្នាក់ពីរប្រភេទ យើងប្រើមុខងារបើក `sigmoid` និងបាត់បង់ `binary_crossentropy`។\n"
]
},
{
@@ -743,13 +754,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ផលលទ្ធផលល្អណាស់ យើងអាចប្រែតម្កើងរវាងឆ្មា និងឆ្កែបានជិត ៩៥% នៃប្រហែល! ទោះជាយ៉ាងណា យើងបានសាកល្បងវិធីនេះត្រឹមតែចំណែកមួយនៃរូបភាពទាំងអស់ប៉ុណ្ណោះ ពីព្រោះការដកស្រង់លក្ខណៈដោយដៃមើលទៅហាក់ដូចជាចំណាយពេលវេលាប៉ុន្មានច្រើន។ \n",
+ "លទ្ធផលគឺអស្ចារ្យ យើងអាចចែកចាយរវាងឆ្មា និងឆ្កែបានជិតនឹង ៩៥% នៃករណី! ទោះយ៉ាងណាក៏ដោយ យើងបានសាកល្បងវិធីនេះតែចំនួនរូបភាពមួយផ្នែកប៉ុណ្ណោះ ព្រោះការដកពួកលក្ខណៈដោយដៃដូចជា ចំណាយពេលច្រើន។\n",
"\n",
- "## ការដំឡើងបង្រៀនប្តូរវិញដោយប្រើបណ្តាញ VGG មួយ \n",
+ "## ការរៀនផ្ទេរប្រើបណ្តាញ VGG មួយ\n",
"\n",
- "យើងក៏អាចជៀសវាងការគណនាលក្ខណៈជាមនុស្សជាមុនដោយប្រើបណ្តាញ VGG-16 ដើមនៅកំឡុងពេលបង្រៀន ដោយបញ្ចូល ឧបករណ៍ដកស្រង់លក្ខណៈទៅក្នុងបណ្តាញរបស់យើងជាស្រទាប់ដំបូង។ \n",
+ "យើងអាចជៀសវាងការគណនាលក្ខណៈជាមុនដោយដៃ ដោយប្រើបណ្តាញ VGG-16 ដើមទាំងមូលក្នុងការបណ្តុះបណ្តាល ដោយបន្ថែមឧបករណ៍ដកលក្ខណៈទៅបណ្តាញយើងជាត្រង់ស្រទាប់ដំបូង។\n",
"\n",
- "សោភណៈភាពនៃសំណុំរចនាសម្ព័ន្ធ Keras គឺម៉ូឌែល VGG-16 ដែលយើងបានកំណត់ខាងលើ អាចត្រូវបានប្រើជាស្រទាប់នៅក្នុងបណ្តាញប្រសាសន៍បញ្ញាផ្សេងទៀតបានផងដែរ! យើងត្រូវតែបង្សុកបណ្តាញជាមួយឧបករណ៍ចាត់ថ្នាក់ដង់ស៍នៅលើវា បន្ទាប់មកបង្រៀនបណ្តាញទាំងមូលដោយប្រើវិធីបឋមវិលត្រឡប់។\n"
+ "សោភណ្ឌភាពនៃរចនាសម្ព័ន្ធ Keras គឺ ម៉ូដែល VGG-16 ដែលយើងបានកំណត់ខាងលើ អាចប្រើជាស្រទាប់មួយក្នុងបណ្តាញប្រព័ន្ធប្រសាព្រាលមួយផ្សេងទៀតទៀតបានម្នាក់! យើងត្រូវតែបង្កើតបណ្តាញមួយដែលមានកម្មវិធីចាត់ថ្នាក់ធ្ងន់ខាប់នៅលើវា ហើយបន្ទាប់មកបណ្តុះបណ្តាលបណ្តាញទាំងមូលដោយប្រើបច្ចេកវិទ្យាបញ្ចូនត្រឡប់ក្រោយ។\n"
]
},
{
@@ -793,13 +804,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ម៉ូដែលនេះមានរូបរាងដូចជាបណ្តាញចំណាត់ថ្នាក់ពីចុងដល់ចុង ដែលទទួលរូបភាព និងបង្រ្កាបថ្នាក់មួយ។ ទោះជាយ៉ាងណា ពីរឿងពិបាកគឺយើងចង់ឲ្យ VGG16 ដំណើរការជាអ្នកដកលក្ខណៈ (feature extractor) ហើយមិនត្រូវបានបណ្ដុះបណ្ដាលឡើងវិញឡើយ។ ដូចនេះ យើងត្រូវតែ **កសWeightនៃអ្នកដកលក្ខណៈ convolutional**។ យើងអាចចូលដល់ស្រទាប់ដំបូងនៃបណ្តាញដោយហៅ `model.layers[0]` ហើយតែតម្រូវឲ្យកំណត់អថេរជាតិ `trainable` ទៅជា `False`។\n",
+ "ម៉ូដែលនេះដូចជាបណ្ដាញចាត់ថ្នាក់ចាប់ពីដំបូងដល់បញ្ចប់ ដែលទទួលរូបភាពមួយ និងត្រឡប់ថ្នាក់។ ទោះជាយ៉ាងណា រឿងដែលគួរឱ្យច្របូកច្របល់គឺ យើងចង់ឲ្យ VGG16 ធ្វើតួជាអ្នកបញ្ចេញលក្ខណៈពិសេស ហើយមិនត្រូវបានបណ្តុះបណ្តាលឡើងវិញទេ។ ដូច្នេះ យើងត្រូវតែ **ផ្អាកទម្ងន់នៃអ្នកបញ្ចេញលក្ខណៈពិសេស convolutional**។ យើងអាចចូលទៅកាន់ស្រទាប់ដំបូងនៃបណ្ដាញដោយហៅ `model.layers[0]` ហើយយើងត្រូវតែបញ្ចេញគុណលក្ខណៈ `trainable` ទៅជា `False`។\n",
"\n",
- "> **ចំណាំ**: ការកសWeight នៃអ្នកដកលក្ខណៈត្រូវបានតម្រូវប្រើ ព្រោះប្រសិនបើមិនដូច្នោះ ស្រទាប់ក្លាស៊ីហ្វាយដែលមិនបានបណ្ដុះបណ្ដាលអាចបំផ្លាញWeight ពីដើមដែលត្រូវបានបណ្ដុះបណ្ដាលរួចរបស់អ្នកដកលក្ខណៈ convolutional។\n",
+ "> **ចំណាំ**: ការផ្អាកទម្ងន់នៃអ្នកបញ្ចេញលក្ខណៈពិសេសគឺចាំបាច់ ព្រោះបើមិនដូច្នោះស្រទាប់ចាត់ថ្នាក់ដែលមិនបានបណ្តុះអាចបំផ្លាញទម្ងន់ដើមដែលបានបណ្តុះរួចរបស់អ្នកបញ្ចេញ convolutional។\n",
"\n",
- "អ្នកអាចសង្កេតបានថា ខណៈដែលចំនួនប៉ារ៉ាម៉ែត្រសរុបក្នុងបណ្តាញរបស់យើងប្រហែល 15 លាន យើងកំពុងបណ្ដុះបណ្ដាលតែប៉ារ៉ាម៉ែត្រ 25k ប៉ុណ្ណោះ។ ប៉ារ៉ាម៉ែត្រដទៃទៀតនៃរន្ធរន្ធ convolutional កម្រិតលើកំពុងត្រូវបានបណ្ដុះបណ្ដាលរួច។ នេះគឺល្អ ព្រោះយើងអាចបញ្ច្រាស់បណ្ដុះបណ្ដាលលើចំនួនប៉ារ៉ាម៉ែត្រតិចជាមួយនឹងគំរូតិច។\n",
+ "អ្នកអាចសង្កេតឃើញថា ខណៈដែលចំនួនប៉ារ៉ាម៉ែត្រសរុបក្នុងបណ្ដាញរបស់យើងប្រហែល 15 លានយូវ ប៉ុន្តែយើងកំពុងបណ្តុះបណ្តាលតែ 25 ពាន់ប៉ារ៉ាម៉ែត្រ màtnទេ។ ប៉ារ៉ាម៉ែត្រផ្សេងទៀតទាំងអស់នៃឧបករណ៍បំលែង convolutional កំពូលត្រូវបានបណ្តុះរួចហើយ។ នេះល្អ ព្រោះយើងអាចត្រួតពិនិត្យបូកបញ្ចូលប៉ារ៉ាម៉ែត្រ ចំនួនតិចជាមួយនឹងឧទាហរណ៍ចំនួនតិច។\n",
"\n",
- "ឥឡូវនេះ យើងនឹងបណ្ដុះបណ្ដាលបណ្តាញរបស់យើង ហើយមើលថាតើយើងអាចទទួលបានលទ្ធផលល្អប៉ុណ្ណាដែរ។ សូមរំពឹងថាវានឹងរត់យូរពេលប៉ុន្មាន ហើយកុំបាច់កង្វល់ ប្រសិនបើការប្រតិបត្តិដំណើរការហាក់ដូចជាបិទត្រជាក់ពេលខ្លះ។\n"
+ "ឥឡូវនេះយើងនឹងបណ្តុះបណ្ដាញរបស់យើងហើយមើលថាតើយើងអាចបានលទ្ធផលល្អប៉ុណ្ណា។ សូមរំពឹងថាអាចមានពេលវេលារត់យូរ ហើយកុំបារម្ភរឿងថាប្រតិបត្តិការ ដូចជាច្រើនរយៈពេលត្រូវបានបង្ហាញថាឈប់ស្ងួត។\n"
]
},
{
@@ -824,11 +835,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "វាដូចជា យើងបានទទួលបានម៉ាស៊ីនចាត់ថ្នាក់ឆ្មារប្រឆាំងនឹងឆ្កែ ដែលមានភាពត្រឹមត្រូវគ្រប់គ្រាន់!\n",
+ "វាហាក់ដូចជាយើងបានទទួលបានក្រុមចំណាត់ថ្នាក់ឆ្មា និងឆ្កែដែលមានភាពត្រឹមត្រូវសមរម្យ! \n",
"\n",
- "## ការរក្សាទុក និងផ្ទុកម៉ូដែលឡើងវិញ\n",
+ "## ការរក្សាទុក និងផ្ទុកម៉ូដែល\n",
"\n",
- "នៅពេលដែលយើងហ្វឹកហាត់ម៉ូដែលរួចហើយ យើងអាចរក្សាទុករចនាសម្ព័ន្ធម៉ូដែល និងទំងន់ដែលបានហ្វឹកហាត់ទៅឯកសារមួយសម្រាប់ការប្រើប្រាស់ក្រោយ៖\n"
+ "ពេលដែលយើងបានបណ្តុះបណ្តាលម៉ូដែលរួច យើងអាចរក្សាទុករចនាសម្ព័ន្ធម៉ូដែល និងទំងន់ដែលបានបណ្តុះបណ្តាលទៅឯកសារមួយសម្រាប់ប្រើប្រាស់នៅពេលក្រោយៈ\n"
]
},
{
@@ -852,7 +863,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "យើងត្រូវអាចផ្ទុកម៉ូដែលពីឯកសារបានគ្រប់ពេលណាមួយ។ អ្នកអាចរកឃើញវាអាចប្រយោជន៍បើករណីការប្រមាញ់បន្ទាប់បញ្ជាក់ទប់ម៉ូដែល—អ្នកនឹងមិនចាំបាច់ចាប់ផ្តើមឡើងវិញទេ។\n"
+ "យើងអាចផ្ទុកម៉ូដែលពីឯកសារនៅពេលណាមួយ។ អ្នកអាចយល់ថាវាមានប្រយោជន៍បើសិនជាសាកល្បងបន្ទាប់បំផ្លាញម៉ូដែល - អ្នកមិនចាំបាច់ចាប់ផ្ដើមឡើងវិញពីដើមឡើយ។\n"
]
},
{
@@ -868,15 +879,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## ការធ្វើ Fine-tuning លើការផ្ទេរសិក្សា\n",
+ "## ការបញ្ចេញបន្ទាន់សម្រាប់ការរៀនផ្ទេរ\n",
"\n",
- "នៅក្នុងផ្នែកមុន យើងបានបណ្តុះបណ្តាលស្រទាប់ក្រុមចុងក្រោយដើម្បីចាត់ថ្នាក់រូបភាពក្នុងឌាតាបេសផ្ទាល់ខ្លួនរបស់យើង។ ទោះយ៉ាងណា យើងមិនបានបណ្តុះបណ្តាលឡើងវិញឧបករណ៍ដោះស្រាយលក្ខណៈទេ ហើយម៉ូដែលរបស់យើងពឹងផ្អែកលើលក្ខណៈដែលម៉ូដែលបានរៀនពីទិន្នន័យ ImageNet។ ប្រសិនបើវត្ថុរបស់អ្នកមានរូបរាងខុសពីរូបភាព ImageNet ទូទៅ ការប្រមាញ់លក្ខណៈនេះអាចមិនដំណើរការល្អបំផុតទេទេ។ ដូច្នេះការចាប់ផ្តើមបណ្តុះបណ្តាលស្រទាប់កុងវូលូស្យុងក៏មានអត្ថន័យ។\n",
+ "នៅក្នុងផ្នែកមុន យើងបានបណ្តុះបណ្តាលស្រទាប់ក្រុមចុងក្រោយដើម្បីចាត់ថ្នាក់រូបភាពក្នុងផ្ទាំងទិន្នន័យរបស់យើង។ ទោះយ៉ាងណា យើងមិនបានបណ្តុះបណ្តាលឡើងវិញឧបករណ៍ចាប់អត្ថបទនោះឡើយ ហើយម៉ូដែលរបស់យើងពឹងផ្អែកលើលក្ខណៈដែលម៉ូដែលបានរៀនលើទិន្នន័យ ImageNet។ ប្រសិនបើវត្ថុរបស់អ្នកមានរាងមិនដូចរូបភាព ImageNet ទូទៅ ការរួមបញ្ចូលលក្ខណៈនេះអាចមិនដំណើរការល្អបំផុតទេ។ ដូច្នេះ វាមានហេតុផលក្នុងការចាប់ផ្តើមបណ្តុះបណ្តាលស្រទាប់ convolutional ផងដែរ។\n",
"\n",
- "ដើម្បីធ្វើវា យើងអាចដោះសោរព៉ារ៉ាម៉ែត្រ ក្នុងតំណកុងវូលូស្យុងដែលយើងបានចុះត្រជាក់មុននេះ។\n",
+ "ដើម្បីធ្វើវា យើងអាចដោះបិទប៉ារ៉ាម៉ែត្រពិន្ទុចម្រាស់ convolutional ដែលយើងបានបិទរួចហើយបាន។\n",
"\n",
- "> **សម្គាល់៖** គឺសំខាន់ដែលអ្នកត្រូវតែបោះត្រជាក់ព៉ារ៉ាម៉ែត្រជាមុនសិន និងធ្វើបណ្តុះបណ្តាលពីរបីសិទ្ឋិ ដើម្បីស្ថេរភាពទំងន់ក្នុងស្រទាប់ចាត់ថ្នាក់។ ប្រសិនបើអ្នកចាប់ផ្តើមបណ្តុះបណ្តាលបណ្ដាញពីដើមដល់ចុងពីរព៉ារ៉ាម៉ែត្រដែលមិនត្រជាក់ ទំហំពំហួសធំៗអាចបំផ្លាញទំងន់ដែលបានបណ្តុះបណ្តាលមុននៅស្រទាប់កុងវូលូស្យុង។\n",
+ "> **សំគាល់៖** វាសំខាន់ដែលអ្នកត្រូវបិទប៉ារ៉ាម៉ែត្រមុន និងអនុវត្តការបង្រៀនជាអគ្គិសនីច្រើនដើម្បីស្ថាបនាភាពថាមពលនៅក្នុងស្រទាប់ចាត់ថ្នាក់។ ប្រសិនបើអ្នកចាប់ផ្តើមបណ្តុះបណ្តាលបណ្តាញពីចុងដល់ចុងភ្លាមដោយប៉ារ៉ាម៉ែត្រដែលមិនបានបិទ អំពើខុសខាតធំបំផុតនឹងបំផ្លាញទម្ងន់ដែលបានបណ្តុះបណ្តាលជាមុននៅក្នុងស្រទាប់ convolutional។\n",
"\n",
- "ម៉ូដែល VGG-16 កុងវូលូស្យុងរបស់យើងស្ថិតនៅខាងក្នុងស្រទាប់ទីមួយ ហើយវាផ្ទុកស្រទាប់ជាច្រើនផ្ទាល់ខ្លួន។ យើងអាចមើលទៅលើរចនាសម្ព័ន្ធរបស់វា៖ \n"
+ "ម៉ូដែល convolutional VGG-16 របស់យើងស្ថិតនៅខាងក្នុងស្រទាប់ដំបូង ហើយវាមានស្រទាប់ជាច្រើនផ្ទាល់ខ្លួន។ យើងអាចមើលទៅលើរចនាសម្ព័ន្ធរបស់វាពីព្រោះ៖ \n"
]
},
{
@@ -945,7 +956,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "យើងអាចដោះសោរ (unfreeze) ស្រទាប់ទាំងអស់របស់មូលដ្ឋានកំណត់ចំណុច convolutional:\n"
+ "យើងអាចរំលាយស្រស់រាល់ស្រទាប់នៃមូលដ្ឋានកុងវ៉ុលយ៉ូស្យុងទាំងអស់៖\n"
]
},
{
@@ -961,7 +972,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "យ៉ាងไรก็ตาม ការដោះជម្រះបញ្ជាក់ទាំងអស់ផ្តូរជាមួយគ្នាតែម្តងមិនមែនជាគំនិតល្អបំផុតទេ។ យើងអាចដោះជម្រះតែស្រទាប់ចុងក្រោយជាប់ការបង្រួមខ្លះៗដំបូងបាន ព្រោះវាមានគំរូថ្នាក់ខ្ពស់ជាង ដែលមានសារៈសំខាន់សម្រាប់រូបភាពរបស់យើង។ ឧទាហរណ៍ ចាប់ផ្តើម យើងអាចចាក់សំណាញ់ស្រទាប់ទាំងអស់លើកលែងតែ ៤ ស្រទាប់ចុងក្រោយបាន៖\n"
+ "ទោះយ៉ាងណាក៏ដោយ ការដោះពុះពេញលេញគ្រប់វា ពុំមែនជាគំនិតល្អបំផុតទេ។ យើងអាចដោះពុះស្រង់គ្រាន់តែស្រទាប់បន្ទប់ចុងក្រោយមួយចំនួន ព្រោះវាមានលំនាំកម្រិតខ្ពស់ដែលពាក់ព័ន្ធទៅនឹងរូបភាពរបស់យើង។ ឧទាហរណ៍ ដើម្បីចាប់ផ្តើម យើងអាចចាំដាក់ស្រទាប់ទាំងអស់ក្រៅតែកុំចុង ៤ ស្រទាប់ចុងក្រោយ៖\n"
]
},
{
@@ -1000,11 +1011,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ប្រសេទថាចំនួនប៉ារ៉ាម៉ែត្រដែលអាចបណ្តុះបណ្តាលបានបានបន្តកើនឡើងយ៉ាងច្រើន ក៏ប៉ុន្តែវានៅតែប្រហែល ៥០% នៃប៉ារ៉ាម៉ែត្រទាំងអស់។\n",
+ "សូមសង្កេតឃើញថាចំនួនប៉ារ៉ាម៉ែត្រដែលអាចបណ្តុះបណ្តាលបានបានបង្កើនយ៉ាងខ្លាំង ប៉ុន្តែវានៅតែប្រហែលជាពាក់កណ្តាលនៃប៉ារ៉ាម៉ែត្រទាំងអស់។\n",
"\n",
- "បន្ទាប់ពីបញ្ចេញការចាក់ត្រួត, យើងអាចបន្តបណ្តុះបណ្តាលបន្ថែមបានប៉ុន្មានវគ្គទៀត (ក្នុងគំរូរបស់យើង យើងនឹងធ្វើតែម្ដងនេះប៉ុណ្ណោះ)។ អ្នកក៏អាចជ្រើសរើសអត្រាចំណេះដឹងទាប ដើម្បីកាត់បន្ថយឥទ្ធិពលលើទម្ងន់ដែលបានបណ្តុះមុន។ ទោះយ៉ាងណា ទោះបីមានអត្រាចំណេះដឹងទាបក៏ដោយ អ្នកគួរតែរួចរាល់ជាមួយការចុះថយនៃភាពត្រឹមត្រូវនៅចំណុចដើមនៃការបណ្តុះបណ្តាល ដល់ពេលវាចូលដល់កម្រិតខ្ពស់ជាងបន្តិច សម្រាប់ករណីទម្ងន់ដែលមិនផ្លាស់ប្តូរ។\n",
+ "បន្ទាប់ពីដោះសោរ យើងអាចធ្វើការបណ្តុះបណ្តាលបន្ថែមមួយចំនួនទៀត (ក្នុងឧទាហរណ៍របស់យើង យើងនឹងធ្វើតែ១ដងប៉ុណ្ណោះ)។ អ្នកក៏អាចជ្រើសរើសអត្រាការរៀនទាបជាងនេះ លើកលែងសម្រាប់កាត់បន្ថយប៉ះពាល់លើទម្ងន់ដែលបានបណ្តុះបណ្តាលរួចមក។ ទោះជាអត្រាការរៀនទាបក៏ដោយ អ្នកអាចរំពឹងបានថាការពិតប្រាកដនឹងធ្លាក់ចុះនៅដើមនៃការបណ្តុះបណ្តាល រហូតដល់ចុងក្រោយឈានដល់កម្រិតខ្ពស់ជាងបន្តិចជាងករណីទម្ងន់ថេរ។\n",
"\n",
- "> **កំណត់សម្គាល់៖** ការបណ្តុះបណ្តាលនេះធ្វើឡើងយឺតជាងមុន ព្រោះយើងត្រូវបញ្ជូនតម្លាភាពត្រឡប់តាមក្រោមតាមជាន់ៗជាច្រើនក្នុងបណ្តាញ!\n"
+ "> **ចំណាំ៖** ការបណ្តុះបណ្តាលនេះកើតឡើងយឺតជាងមុន ចំពោះព្រោះយើងត្រូវដំណើរការវិលត្រឡប់ក្រោយ gradient តាមជាន់ជាច្រើននៃបណ្តាញ!\n"
]
},
{
@@ -1028,18 +1039,18 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "យើងមានទំនោរត្រូវទទួលបានភាពត្រឹមត្រូវក្នុងការបណ្តុះបណ្តាលខ្ពស់ជាងមុន ពីព្រោះយើងកំពុងប្រើបណ្តាញមានអំណាចខ្លាំងជាមួយប៉ារាម៉ែត្រច្រើនជាងមុន ប៉ុន្តែភាពត្រឹមត្រូវក្នុងការត្រួតពិនិត្យគុណភាពនឹងមិនកើនឡើងច្រើនទេ។\n",
+ "យើងមានសក្តានុពលធ្វើបានជោគជ័យស្ថានភាពប្រកួតប្រជែងបណ្តុះបណ្តាលខ្ពស់ជាងមុន ពីព្រោះយើងកំពុងប្រើប្រាស់បណ្តាញដែលមានឥទ្ធិពលខ្លាំងជាងមុនជាមួយផារ៉ាម៉ែត្រច្រើនជាង ម្យ៉ាងទៀត ការត្រួតពិនិត្យប្រកួតប្រជែងនឹងកើនឡើងមិនបានច្រើនសោះទេ។\n",
"\n",
- "សូមកុំស្ទាក់ស្ទើរនៅក្នុងការដោះសោតស្រទាប់បន្ថែមពីរបណ្តាញ និងបណ្តុះបណ្តាលបន្ថែម ដើម្បីមើលថាតើអ្នកអាចទទួលបានភាពត្រឹមត្រូវខ្ពស់ជាងមុនទេ!\n"
+ "សូមកុំស្ទាក់ស្ទើរក្នុងការចេញពីស្រទាប់បណ្តងទៀតនៃបណ្តាញ ហើយបណ្តុះបណ្តាលបន្ថែម ដើម្បីមើលថាតើអ្នកអាចសម្រេចបានភាពត្រឹមត្រូវខ្ពស់ជាងមុនទេ!\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "## ម៉ូដែលទស្សនវិជ្ជាគណនាផ្សេងទៀត\n",
+ "## មូដែលមើលឃើញកុំព្យូទ័រផ្សេងទៀត\n",
"\n",
- "VGG-16 គឺជាស្ថាបត្យកម្មទស្សនវិជ្ជាគណនាពីសាមញ្ញបំផុតមួយ។ Keras ផ្តល់ជូនបណ្តាញដែលត្រូវបានបណ្តុះបណ្តាលជាច្រើនទៀត។ ពួកដែលត្រូវបានប្រើប្រាស់ជាញឹកញាប់បំផុតក្នុងចំណោមពួកវាគឺស្ថាបត្យកម្ម **ResNet** ដែលបានបង្កើតដោយ Microsoft និង **Inception** ដែលបានបង្កើតដោយ Google។ ឧទាហរណ៍ យើងមកស្វែងយល់អំពីស្ថាបត្យកម្មនៅក្នុងម៉ូដែល ResNet-50 ដែលសាមញ្ញបំផុត (ResNet គឺជាគ្រួសារម៉ូដែលមួយដែលមានជំម្រៅខុសៗគ្នា អ្នកអាចសាកល្បងជាមួយ ResNet-152 ប្រសិនបើអ្នកចង់មើលម៉ូដែលជ្រៅបំផុតមួយមានរូបរាងដូចម្តេច):\n"
+ "VGG-16 គឺជាសំណង់មើលឃើញកុំព្យូទ័រដ៏សាមញ្ញបំផុតមួយ។ Keras ផ្តល់ជូនបណ្តាបណ្តាញដែលបានបណ្តុះបណ្តាលជាមុនជាច្រើនទៀត។ អ្វីដែលត្រូវប្រើប្រាស់ជាញឹកញាប់បំផុតក្នុងចំណោមពួកនេះគឺសំណង់ **ResNet** ដែលបានបង្កើតដោយ Microsoft និង **Inception** ដោយ Google។ ឧទាហរណ៍ មកជួយស្វែងយល់អំពីសំណង់នៃម៉ូដែល ResNet-50 ដែលសាមញ្ញបំផុត (ResNet គឺជាគ្រួសារម៉ូដែលមួយមានជម្រៅខុសគ្នា អ្នកអាចសាកល្បងជាមួយ ResNet-152 ប្រសិនបើអ្នកចង់មើលម៉ូដែលជម្រៅពិតមើលទៅដូចម្តេច):\n"
]
},
{
@@ -1441,29 +1452,29 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ដូចដែលអ្នកអាចមើលឃើញ ម៉ូឌែលមានបន្ទះកំណត់ដូចគ្នា ដែលស្គាល់ថា៖ ស្រទាប់ convolutional, ស្រទាប់ pooling និងខ្នាតឡើងវិញ dense classifier ចុងក្រោយ។ យើងអាចប្រើម៉ូឌែលនេះបានដូចដដែលដូចពេលដែលយើងបានប្រើ VGG-16 សម្រាប់ការសិក្សាផ្ទេរ។ អ្នកអាចសាកល្បងជាមួយកូដខាងលើ ដោយប្រើម៉ូឌែល ResNet ផ្សេងៗជាមូលដ្ឋាន ហើយមើលថានិរន្តភាពបំលាស់ប្តូរដូចម្តេច។\n",
+ "ដូចដែលអ្នកអាចឃើញ ម៉ូដែលមានគ្រាប់បង្កើតដែលស្គាល់សុំពីមុនដូចគ្នា៖ ស្រទាប់កុងវូលូស្យូនល បង្រួមស្រទាប់ និងក្រុមចុងក្រោយគឺក្រុមចំណាត់ថ្នាក់ធាតុច្រើន។ យើងអាចប្រើម៉ូដែលនេះដោយបែបដដែលជាមួយដែលយើងបានប្រើ VGG-16 សម្រាប់ការរៀនប្ដូរ។ អ្នកអាចសាកល្បងហូបចូលក្នុងកូដខាងលើ ដោយប្រើម៉ូដែល ResNet ផ្សេងៗជាមូលដ្ឋាន ហើយមើលថាតើភាពត្រឹមត្រូវផ្លាស់ប្តូរយ៉ាងដូចម្តេច។\n",
"\n",
- "## ការធម្មតាប្រមូលផ្ទុកជាក្រុម\n",
+ "## ការធម្មតាបាឡ៍នៃបន្ទះ\n",
"\n",
- "បណ្ដាញនេះមានស្រទាប់ប្រភេទផ្សេងទៀតមួយទៀត៖ **ការធម្មតាប្រមូលផ្ទុកជាក្រុម។** គំនិតនៃការធម្មតាប្រមូលផ្ទុកជាក្រុម គឺដើម្បីយកតម្លៃដែលចរន្តតាមរយៈបណ្ដាញប្រសាទឲ្យទៅក្នុងចន្លោះត្រឹមត្រូវ។ ជាទូទៅ បណ្ដាញប្រសាទដំណើរការល្អបំផុតនៅពេលតម្លៃទាំងអស់នៅក្នុងចន្លោះ [-1,1] ឬ [0,1] ហើយនេះជាមូលហេតុដែលយើងធ្វើការលាយបញ្ចូល/ធម្មតាបទទិន្នន័យដាក់ចូលរបស់យើងឲ្យស្របតាម។ ទោះជាយ៉ាងណា កំឡុងពេលហ្វឹកហាត់បណ្ដាញស្រទាប់ជ្រៅ អាចមានករណីដែលតម្លៃចេញពីចន្លោះនេះយ៉ាងខ្លាំង ដែលធ្វើឲ្យការហ្វឹកហាត់មានបញ្ហា។ ស្រទាប់ការធម្មតាប្រមូលផ្ទុកជាក្រុម គណនាមធ្យមភាគ និងការរីកចម្រើនស្តង់ដារសម្រាប់តម្លៃទាំងអស់នៃ minibatch បច្ចុប្បន្ន ហើយប្រើវាដើម្បីធម្មតាសញ្ញា មុននឹងបញ្ជូនតាមស្រទាប់បណ្ដាញប្រសាទ។ វាបង្កើនស្ថិរភាពនៃបណ្ដាញជ្រៅយ៉ាងសំខាន់។\n"
+ "បណ្តាញនេះមានស្រទាប់មួយប្រភេទទៀត៖ **ការធម្មតាបាឡ៍នៃបន្ទះ**។ គំនិតនៃការធម្មតាបាឡ៍នៃបន្ទះគឺនាំឱ្យតម្លៃដែលហូរចូលតាមបណ្តាញបង្ហាញទៅក្នុងចន្លោះត្រឹមត្រូវ។ ជាធម្មតា បណ្តាញបង្ហាញដំណើរការល្អបំផុតពេលដែលតម្លៃទាំងអស់ស្ថិតនៅក្នុងជួរពី [-1,1] ឬ [0,1] ហើយហេតុផលនេះបានបង្ខំឱ្យយើងវាស់/ធម្មតាគ្រប់ទិន្នន័យបញ្ចូលរបស់យើងយ៉ាងសមរម្យ។ ទោះជាយ៉ាងណា កំឡុងពេលមួយនៅពេលបណ្ដាញជ្រៅកំពុងបណ្តុះ បញ្ហាអាចកើតឡើងថាតម្លៃចេញពីជួរនេះយ៉ាងខ្លាំង ដែលបង្កើតការលំបាកក្នុងការបណ្តុះ។ ស្រទាប់ធម្មតាបាឡ៍នៃបន្ទះគណនាមធ្យម និងស្តង់ដារ ផុតការញែកគ្រប់តម្លៃនៅក្នុងក្រុមប្រមាណបច្ចុប្បន្ន ហើយប្រើវាទៅធម្មតាសញ្ញាមុនផ្តល់ឱ្យស្រទាប់បណ្តាញបង្ហាញ។ នេះធ្វើឱ្យស្ថាបត្យកម្មនៃបណ្តាញជ្រៅមានស្ថេរភាពខ្លាំង។ \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "## សេចក្តីសន្និដ្ឋាន\n",
+ "## សេចក្ដីសន្និដ្ឋាន\n",
"\n",
- "ដោយប្រើការរៀនផ្ទេរ យើងបានអាចរៀបចំថ្នាក់ចាត់ថ្នាក់មួយសម្រាប់ភារកិច្ចចាត់ថ្នាក់អ αντικណ្ឌារបស់យើងបានយ៉ាងលឿន ហើយទទួលបានភាពត្រឹមត្រូវខ្ពស់។ ទោះយ៉ាងណា ឧទាហរណ៍នេះមិនមែនជាការសមរម្យទាំងស្រុងទេ ព្រោះបណ្ដាញ VGG-16ដើមត្រូវបានបណ្តុះបណ្តាលជាមុនដើម្បីស្គាល់ឆ្មា និងឆ្កែ ហើយដូច្នេះយើងបានប្រើឡើងវិញសំណុំបែបបទភាគច្រើនដែលមានរួចហើយនៅក្នុងបណ្ដាញ។ អ្នកអាចរំពឹងបានថាភាពត្រឹមត្រូវខ្ពស់តិចជាងនេះនៅលើវត្ថុឯកទេសជ្រៅជាងនេះ ដូចជារបស់លម្អិតលើបន្ទាត់ផលិតនៅរោងចក្រ ឬស្លឹកដើមឈើខុសគ្នា។\n",
+ "ដោយប្រើការរៀនផ្ទេរ យើងអាចបង្កើតម៉ាស៊ីនចាត់ថ្នាក់សម្រាប់កិច្ចការចាត់ថ្នាក់វត្ថុផ្ទាល់ខ្លួនបានយ៉ាងរហ័ស និងទទួលបានភាពត្រឹមត្រូវខ្ពស់។ ទោះយ៉ាងណា ឧទាហរណ៍នេះមិនមែនជាផ្ទាំងតុល្យភាពទាំងស្រុងទេ ពីព្រោះបណ្តាញ VGG-16 ដើមត្រូវបានហ្វឹកហាត់ដើម្បីធ្វើការទទួលស្គាល់ឆ្មា និងឆ្កែ ហើយដូច្នេះយើងគ្រាន់តែនำលំនាំភាគច្រើនដែលមានរួចហើយនៅក្នុងបណ្តាញមកប្រើវិញ។ អ្នកអាចរំពឹងថានឹងមានភាពត្រឹមត្រូវទាបជាងនេះលើវត្ថុដែលមានដែនកំណត់ពិសេសជាងនេះ ដូចជាព័ត៌មានលម្អិតលើខ្សែកន្ត្រ៍ផលិតនៅរោងចក្រ ឬស្លឹកឈើផ្សេងទៀត។\n",
"\n",
- "អ្នកអាចឃើញថា ភារកិច្ចស្មុគស្មាញជាងនេះដែលយើងកំពុងដោះស្រាយឥឡូវនេះ តម្រូវឱ្យមានថាមពលគណនា ខ្ពស់ជាង ហើយមិនអាចដោះស្រាយបានយ៉ាងងាយលើ CPUទេ។ នៅឯកត្តាក្រោយ យើងនឹងព្យាយាមប្រើកំណែប疆តូចជាងមុនសម្រាប់បណ្តុះបណ្តាលម៉ូឌែលដូចគ្នា ដោយប្រើធនធានគណនាបន្ថយ ដែលធ្វើឲ្យមានភាពត្រឹមត្រូវតិចប៉ុន្ដែបន្តចុងភ្លើង។\n"
+ "អ្នកអាចមើលឃើញថា កិច្ចការរឹតបន្តឹងច្រើនដែលយើងកំពុងដោះស្រាយឥឡូវនេះត្រូវការពហុសមត្ថភាពគណនា ខណៈដែលមិនអាចដោះស្រាយបានយ៉ាងងាយស្រួលលើ CPU ទេ។ ក្នុងផ្នែកបន្ទាប់ យើងនឹងព្យាយាមប្រើការអនុវត្តស្រាលជាងនេះ ដើម្បីហ្វឹកហាត់ម៉ូដែលដូចគ្នាមួយដោយប្រើធនធានគណនាបានទាបជាង ដែលនាំឲ្យមានភាពត្រឹមត្រូវតិចតួចតែប៉ុណ្ណោះ។\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "---\n\n\n**ការបដិសេទ**៖ \nឯកសារនេះបានបំលែងដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ បើទោះបីយើងខិតខំដល់ភាពត្រឹមត្រូវក៏ដោយ សូមយកចិត្តទុកដាក់ថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះៗ។ ឯកសារដើមជាភាសាដើមគួរត្រូវបានគេរាប់ថាជា ប្រភពអាជ្ញាធរដ៏ត្រឹមត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អាទិភាពការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n"
+ "---\n\n\n**ការបដិសេធ**:\nឯកសារនេះត្រូវបានបម្លែងភាសា ដោយប្រើសេវាបម្លែងភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខ្ញុំមានក្តីប្រាថ្នាឱ្យបានច្បាស់លាស់ តែសូមយល់ដឹងថាការបម្លែងដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាទីតាំងគួរត្រូវបានគេប្រើជាប្រភពច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើប្រាស់ការប្រែដោយមនុស្សជំនាញ។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបន្ទាប់ពីការប្រើប្រាស់ការបម្លែងនេះនោះទេ។\n\n"
]
}
],
diff --git a/translations/km/lessons/5-NLP/README.md b/translations/km/lessons/5-NLP/README.md
index 134caced..7882b1c6 100644
--- a/translations/km/lessons/5-NLP/README.md
+++ b/translations/km/lessons/5-NLP/README.md
@@ -1,34 +1,34 @@
-# ការគ្រប់គ្រងភាសាប្រពៃណី
+# ការកែចេញភាសាធម្មជាតិ
-
+
-នៅក្នុងផ្នែកនេះ យើងនឹងផ្តោតលើការប្រើប្រាស់បណ្តាញប្រព័ន្ធប្រសាទដើម្បីដោះស្រាយភារកិច្ចដែលទាក់ទងនឹង **ការគ្រប់គ្រងភាសាប្រពៃណី (NLP)**។ មានបញ្ហា NLP ជាច្រើនដែលយើងចង់ឲ្យកុំព្យូទ័រអាចដោះស្រាយបាន៖
+នៅក្នុងផ្នែកនេះ យើងនឹងផ្តោតលើការប្រើប្រាស់បណ្ដាញប្រព័ន្ធប្រតិបត្តិការជាសរសៃប្រព័ន្ធដើម្បីដោះស្រាយភារកិច្ចទាក់ទងនឹង **ការកែចេញភាសាធម្មជាតិ (NLP)**។ មានបញ្ហា NLP ជាច្រើនដែលយើងចង់ឲ្យកុំព្យូទ័រអាចដោះស្រាយបាន៖
-* **ចាត់ថ្នាក់អត្ថបទ** គឺជាបញ្ហាចាត់ថ្នាក់ទូទៅដែលសាក់សន្ធិស្នាអត្ថបទ។ ឧទាហរណ៍រួមមានការចាត់ថ្នាក់សារអ៊ីម៉ែលថាជាអ៊ីមែលជាតសំរាម ឬមិនជាតសំរាម ឬចាត់ថ្នាក់អត្ថបទជាប្រភេទកីឡា អាជីវកម្ម នយោបាយ ល។ ក៏ដូចជាករណីបង្កើតជាមួយបច្ចេកវិទ្យាច្រើនរបស់ប៊ូតជាការយល់ដឹងអំពីអ្វីដែលអ្នកប្រើប្រាស់ចង់និយាយ -- ក្នុងករណីនេះ យើងកំពុងដោះស្រាយបញ្ហា **ចាត់ថ្នាក់ចេតនា**។ ជាញឹកញាប់ ក្នុងចំណាត់ថ្នាក់ចេតនា យើងត្រូវដោះស្រាយជាមួយកថាខណ្ឌជាច្រើន។
-* **វាយតម្លៃអារម្មណ៍** គឺជាបញ្ហាកំណត់តម្លៃលើតម្លៃតំបន់ដែលយើងត្រូវផ្តល់លេខមួយ (អារម្មណ៍) ដែលបញ្ជាក់ពីភាពវិជ្ជមាន/អវិជ្ជមានន័យនៃឃ្លា។ ជំនាន់ដែលមានកម្រិតខ្ពស់ជាងនៃវាយតម្លៃអារម្មណ៍គឺ **វាយតម្លៃអារម្មណ៍ផ្អែកលើកត្តា** (ABSA) ដែលយើងផ្តល់អារម្មណ៍នៅចំពោះមុខមិនមែនជាទ្វារសំណួរទាំងមូលទេ តែក្នុងផ្នែកផ្សេងៗរបស់វា (កត្តា) ឧ. *នៅភោជនីយដ្ឋាននេះ ខ្ញុំចូលចិត្តម្ហូបបាយ ប៉ុន្តែការតុបតែងបរិយាកាសគឺអាក្រក់*។
-* **ការទទួលស្គាល់អត្តសញ្ញាណឈ្មោះ** (NER) មានន័យពីបញ្ហាការដករកសូមកន្សោមណាមួយចេញពីអត្ថបទ។ ឧទាហរណ៍ ជាថ្មី យើងអាចត្រូវយល់ថាក្នុងឃ្លា *ខ្ញុំត្រូវការហោះហើរទៅទីក្រុងប៉ារីសថ្ងៃស្អែក* ពាក្យ *ថ្ងៃស្អែក* មានន័យថាជា DATE ហើយ *ប៉ារីស* គឺ LOCATION។
-* **ការដកស្រង់ពាក្យគន្លឹះ** ស្រដៀងទៅនឹង NER ប៉ុន្តែយើងត្រូវដកពាក្យដែលមានសារៈសំខាន់ទៅន័យនៃឃ្លាដោយស្វ័យប្រវត្តិ ដោយមិនមានការបណ្តុះបណ្តាលជាមុនសម្រាប់ប្រភេទអត្តសញ្ញាណជាក់លាក់។
-* **ការបែងចែកអត្ថបទជាក្រុម** អាចមានប្រយោជន៍នៅពេលដែលយើងចង់ក្រុមឃ្លាស្រដៀងគ្នាក្នុងការស្នើសុំជាក់លាក់នៅក្នុងការពិភាក្សាជំនួយបច្ចេកទេស។
-* **ការឆ្លើយសំណួរ** មានន័យថាគំរូអាចឆ្លើយសំណួរជាក់លាក់មួយបាន។ គំរូទទួលបានអត្ថបទមួយនិងសំណួរជាអ៊ីនភ៊ុត ហើយវាត្រូវផ្តល់កន្លែងក្នុងអត្ថបទដែលមានចម្លើយសំណួរនោះ (ឬក្នុងករណីខ្លះ បង្កើតអត្ថបទចម្លើយ)។
-* **ការបង្កើតអត្ថបទ** គឺជាការអនុញ្ញាតឲ្យគំរូបង្កើតអត្ថបទថ្មី។ វាអាចត្រូវបានពិចារណាជាការចាត់ថ្នាក់ដែលទាយលទ្ធផលអក្ខរក្រម/ពាក្យបន្ទាប់ដោយផ្អែកលើ *សំណួរអត្ថបទ*។ គំរូបង្កើតអត្ថបទកម្រិតខ្ពស់ ដូចជា GPT-3 អាចដោះស្រាយភារកិច្ច NLP ផ្សេងទៀតដូចជាចាត់ថ្នាក់ទៅលើបច្ចេកទេសដែលហៅថា [ការសរសេរបញ្ជា](https://towardsdatascience.com/software-3-0-how-prompting-will-change-the-rules-of-the-game-a982fbfe1e0) ឬ [វិស្វកម្មសរសេរបញ្ចូល](https://medium.com/swlh/openai-gpt-3-and-prompt-engineering-dcdc2c5fcd29)។
-* **ការសង្ខេបអត្ថបទ** គឺជាបច្ចេកទេសនៅពេលដែលយើងចង់ឲ្យកុំព្យូទ័រប្រាប់ "អាន" អត្ថបទវែង និងសង្ខេបវាក្នុងឃ្លាចំនួនតិច។
-* **ការបកប្រែម៉ាស៊ីន** អាចមើលថាជាការរួមបញ្ចូលរវាងការយល់ដឹងអត្ថបទក្នុងភាសាមួយ និងការបង្កើតអត្ថបទក្នុងភាសាមួយផ្សេងទៀត។
+* **កំណាត់ចំណាត់ថ្នាក់អត្ថបទ** ជាបញ្ហាកំណាត់ចំណាត់ថ្នាក់ជារឿយៗទាក់ទងទៅនឹងលំដាប់អត្ថបទ។ ឧទាហរណ៍ មានការចាត់ថ្នាក់សារអ៊ីម៉ែលជាសារស្ពាម ឬមិនមែនស្ពាម ឬចាត់ថ្នាក់អត្ថបទជា កីឡា អាជីវកម្ម នយោបាយ និងផ្សេងទៀត។ ក៏ដូចជាក្នុងការអភិវឌ្ឍប័តបច្ចេកវិទ្យាចម្លែកយើងតែងត្រូវការយល់ពីអ្វីដែលអ្នកប្រើប្រាស់ចង់និយាយ — ក្នុងករណីនេះយើងកំពុងដោះស្រាយ **ចំណាត់ថ្នាក់បំណង**។ ជាញឹកញាប់ នៅក្នុងការចាត់ថ្នាក់ទៅលើបំណងយើងត្រូវដោះស្រាយជាច្រើនប្រភេទ។
+* **វិភាគអារម្មណ៍** ជាបញ្ហាឧបសម្ព័ន្ធដែលយើងត្រូវផ្ដល់លេខមួយ (មតិយោបល់) ដែលសមមូលទៅនឹងដែលមានន័យជាកំណត់ចំពោះការសំដែងអារម្មណ៍ស្របតាមចំណុចវិជ្ជមាន ឬអវិជ្ជមាននៃប្រយោគ។ កំណែប្រសើរជាងវិភាគអារម្មណ៍គឺ **វិភាគអារម្មណ៍ផ្អែកលើមុខងារ** (ABSA) ដែលយើងផ្ដល់អារម្មណ៍មិនមែនទៅវិញទៅមកសម្រាប់ប្រយោគទាំងមូលទេ ប៉ុន្ដែទៅសម្រាប់ផ្នែកផ្សេងៗរបស់វា (មុខងារ) លើករណីឧទាហរណ៍ *នៅភោជនីយដ្ឋាននេះ ខ្ញុំចូលចិត្តម្ហូប ប៉ុន្តែបរិយាកាសគឺអាក្រក់។*
+* **ការទទួលសម្គាល់គុណសម្បត្តិបុគ្គល** (NER) យោងទៅលើយុទ្ធសាស្រ្តសម្រាប់ដកស្រង់អត្ថបទចេញពីអត្ថបទ។ ឧទាហរណ៍ យើងត្រូវយល់ថា ក្នុងពាក្យ *ខ្ញុំត្រូវទៅបើកយន្តហោះទៅទីក្រុងប៉ារីសថ្ងៃស្អែក* ពាក្យ *ថ្ងៃស្អែក* សំដៅទៅលើកាលបរិច្ឆេទ និង *ប៉ារីស* គឺជាទីកន្លែង។
+* **ការដកស្រង់គន្លឹះ** ស្រដៀងនឹង NER ប៉ុន្តែយើងត្រូវដកពាក្យដែលសំខាន់ចំពោះន័យនៃប្រយោគដោយស្វ័យប្រវត្តិ ដោយមិនចាំបាច់ត្រូវបណ្តុះបណ្តាលជាបុព្វហេតុនៅលើប្រភេទអត្ថសម្បត្តិជាក់លាក់។
+* **ក្រុមអត្ថបទ** អាចមានប្រយោជន៍នៅពេលយើងចង់ក្រុមឲ្យភាសាស្រដៀងគ្នា ដូចជាការស្នើសុំព្រមក្នុងការឆ្លើយតបបច្ចេកទេស។
+* **ការឆ្លើយសំណួរ** សំដៅទៅលើសមត្ថភាពនៃគំរូក្នុងការឆ្លើយតបសំណួរមួយជាក់លាក់។ គំរូទទួលបានខែក និងសំណួរជាបញ្ចូល ហើយត្រូវផ្ដល់ទីតាំងនៅក្នុងអត្ថបទដែលមានចម្លើយសំណួរ (ឬក្នុងករណីខ្លះ បង្កើតអត្ថបទចម្លើយ)។
+* **ការបង្កើតអត្ថបទ** ជាសមត្ថភាពនៃគំរូក្នុងការផលិតអត្ថបទថ្មី។ វាអាចត្រូវបានគិតថាជាភារកិច្ចចាត់ថ្នាក់ដែលប៉ាន់ស្មានអក្សរឬពាក្យបន្ទាប់ដោយផ្អែកលើ *ការជំរុញអត្ថបទ* មួយ។ គំរូបង្កើតអត្ថបទកម្រិតខ្ពស់ ដូចជា GPT-3 អាចដោះស្រាយភារកិច្ច NLP ផ្សេងទៀតដូចជា ការចាត់ថ្នាក់ ដោយប្រើបច្ចេកទេសហៅថា [កម្មវិធីជំរុញ](https://towardsdatascience.com/software-3-0-how-prompting-will-change-the-rules-of-the-game-a982fbfe1e0) ឬ [វិស្វកម្មជំរុញ](https://medium.com/swlh/openai-gpt-3-and-prompt-engineering-dcdc2c5fcd29)
+* **ការសង្ខេបអត្ថបទ** ជាបច្ចេកទេសដែលយើងចង់ឲ្យកុំព្យូទ័រ "អាន" អត្ថបទវែងហើយសង្ខេបវាជាចំណុចខ្លះៗ។
+* **ការបកប្រែម៉ាស៊ីន** អាចមើលឃើញជាការរួមបញ្ចូលនៃការយល់ដឹងអត្ថបទភាសាដែលមួយ និងការបង្កើតអត្ថបទភាសាមួយទៀត។
-ដើមគេភារកិច្ច NLP ច្រើនត្រូវបានដោះស្រាយប្រើវិធីប្រពៃណីដូចជា វិញ្ញាសាកាត់តាមវេយ្យាករណ៍។ ឧទាហរណ៍ ក្នុងការបកប្រែមួយ គេបានប្រើវេយ្យាករណ៍ដើម្បីបម្លែងឃ្លាដើមទៅជារឹមសៀវភៅវេយ្យាករណ៍ បន្ទាប់មកទាញយករចនាសម្ព័ន្ធសំណួរល្អជាង ដើម្បីបង្ហាញន័យនៃឃ្លា ហើយតាមបណ្តាដើម្បីន័យនិងវេយ្យាករណ៍ភាសាគោលលទ្ធផលត្រូវបានបង្កើត។ ឥឡូវនេះ ភារកិច្ច NLP ជាច្រើនត្រូវបានដោះស្រាយមានប្រសិទ្ធភាពច្រើនជាមួយបណ្តាញប្រព័ន្ធប្រសាទ។
+ម៉ោងដើម ភារកិច្ច NLP ជាទូទៅ ត្រូវបានដោះស្រាយដោយវិធីសាស្រ្តប្រពៃណីដូចជាក្រាមម៉ាតិច។ ឧទាហរណ៍ នៅការបកប្រែម៉ាស៊ីន គេបានប្រើការជ្រើសរើសការវិភាគនៃប្រយោគដั้งដើមទៅក្នុងតម្រែសំណុំសញ្ញាវិធីសាស្រ្តវេយ្យាករណ៍ រួចបញ្ចេញរចនាសម្ព័ន្ធសេម៉ង់ខ្ពស់ធ្វើជាតំណាងន័យនៃប្រយោគ និងផ្អែកលើន័យនិងក្រាមម៉ាតិចភាសាគោលផ្លាស់ប្តូរបានលទ្ធផល។ សព្វថ្ងៃ ភារកិច្ច NLP ច្រើនត្រូវបានដោះស្រាយប្រសើរជាមួយបណ្តាញសរសៃប្រព័ន្ធ។
-> វិធី NLP ចាស់ៗជាច្រើនត្រូវបានអនុវត្តក្នុងបណ្ណាល័យ Python [Natural Language Processing Toolkit (NLTK)](https://www.nltk.org)។ មានសៀវភៅ [NLTK Book](https://www.nltk.org/book/) ដែលមាននៅលើគេហទំព័រអនឡាញផងដែរ ដែលធ្វើអោយយើងយល់ពីភារកិច្ច NLP ផ្សេងៗដដែលអាចដោះស្រាយបានដោយប្រើ NLTK។
+> វិធីសាស្រ្ត NLP ដั้งដើមជាច្រើនត្រូវបានអនុវត្តក្នុងបណ្ណាល័យ Python [Natural Language Processing Toolkit (NLTK)](https://www.nltk.org)។ មានសៀវភៅ [NLTK Book](https://www.nltk.org/book/) សម្រាប់សិក្សាដោយប្រើបានអនឡាញ ដែលរៀបរាប់របៀបដោះស្រាយភារកិច្ច NLP ផ្សេងៗជាមួយ NLTK។
-ក្នុងវគ្គនេះ យើងនឹងផ្តោតចំណុចចម្បងទៅលើការប្រើបណ្តាញប្រព័ន្ធប្រសាទសម្រាប់ NLP ហើយយើងនឹងប្រើ NLTK នៅពេលដែលត្រូវការ។
+ក្នុងវគ្គនេះ យើងនឹងផ្តោតជាចម្បងលើការប្រើបណ្ដាញប្រព័ន្ធប្រតិបត្តិការសរសៃសម្រាប់ NLP ហើយយើងនឹងប្រើ NLTK នៅពេលចាំបាច់។
-យើងបានរៀនពីការប្រើបណ្តាញប្រព័ន្ធប្រសាទសម្រាប់ទិន្នន័យតារាង និងរូបភាពរួចហើយ។ ផ្សេងគ្នាចម្បងរវាងទិន្នន័យទាំងនេះនឹងអត្ថបទគឺអត្ថបទគឺជាខ្សែវែងប្រែប្រួល ខណៈពេលដែលកម្រាតបញ្ចូលក្នុងរូបភាពត្រូវបានដឹងជាមុន។ ទោះបីបណ្តាញបរាជ័យអាចយករៀបចំប្លង់ពីទិន្នន័យបញ្ចូល ប្លង់ក្នុងអត្ថបទមានភាពស្មុគស្មាញជាង។ ឧ. យើងអាចមានការបដិសេធចេញពីប្រធានបទជាច្រើនពាក្យបានដោយគ្រាន់តែជាការបដិសេធសម្រាប់ពាក្យជាច្រើន (ឧ. *ខ្ញុំមិនចូលចិត្តផ្លែទាំងអង់* ទៅវិញទៅមក *ខ្ញុំមិនចូលចិត្តផ្លែទាំងអាំងធំនិងពណ៌ស្រស់* ) ហើយនោះគួរតែត្រូវបានបកស្រាយថាជាប្លង់តែមួយ។ ដូច្នេះ ដើម្បីសម្របសម្រួលភាសាយើងត្រូវបញ្ចូលប្រភេទបណ្តាញប្រព័ន្ធប្រសាទថ្មីៗដូចជា *បណ្តាញត្រឡប់* និង *transfomers*។
+យើងបានរៀនរួចជាភាសាមាននៅលើការប្រើបណ្ដាញប្រព័ន្ធសម្រាប់ទិន្នន័យពុម្ព និងរូបភាព។ ខុសគ្នាចម្បងរវាងទិន្នន័យទាំងនោះនិងអត្ថបទគឺ អត្ថបទជាលំដាប់ដែលមានប្រវែងមិនទៀងទាត់ ខណៈដែលទំហំបញ្ចូលក្នុងករណីរូបភាពត្រូវបានគ្រប់គ្រងជាមុន។ ខណៈដែលបណ្ដាញអាចជ្រូកយកគំរូពីទិន្នន័យបញ្ចូល ការស្វែងរកគំរូនៅក្នុងអត្ថបទមានភាពស្មុគស្មាញជាង។ ឧទាហរណ៍ អាចមានប្រយោគបដិសេធដែលបែងចែកពីប្រធានបទដោយពាក្យជាច្រើន (ឧ. *ខ្ញុំមិនចូលចិត្តក្រូចទេ* ប្រៀបធៀបនឹង *ខ្ញុំមិនចូលចិត្តក្រូចធំៗពណ៌ស្អាតឆ្ងាញ់ទេ* ) ហើយវានឹងត្រូវបានពន្យល់ថាជាគំរូមួយ។ ដូច្នេះ ដើម្បីដោះស្រាយភាសា យើងត្រូវបានណែនាំប្រភេទបណ្ដាញប្រព័ន្ធប្រតិបត្តិការថ្មីៗ ដូចជា *បណ្ដាញជុំវិញ* និង *transformers*។
## ដំឡើងបណ្ណាល័យ
-បើអ្នកកំពុងប្រើការដំឡើង Python នៅលើកុំព្យូទ័រផ្ទាល់ខ្លួន ដើម្បីបើកអនុវត្តវគ្គនេះ អ្នកប្រហែលត្រូវតែដំឡើងបណ្ណាល័យទាំងអស់ដែលត្រូវការនៃ NLP ដោយប្រើពាក្យបញ្ជានិយមដូចខាងក្រោម៖
+ប្រសិនបើអ្នកកំពុងប្រើការតំឡើង Python មូលដ្ឋានដើម្បីរត់វគ្គនេះ អ្នកប្រហែលជាត្រូវតែដំឡើងបណ្ណាល័យទាំងអស់ដែលត្រូវការសម្រាប់ NLP ដោយប្រើពាក្យបញ្ជាទាំងនេះ៖
**សម្រាប់ PyTorch**
```bash
-pip install -r requirements-torch.txt
+pip install -r requirements-pytorch.txt
```
**សម្រាប់ TensorFlow**
```bash
@@ -37,15 +37,15 @@ pip install -r requirements-tf.txt
> អ្នកអាចសាកល្បង NLP ជាមួយ TensorFlow នៅលើ [Microsoft Learn](https://docs.microsoft.com/learn/modules/intro-natural-language-processing-tensorflow/?WT.mc_id=academic-77998-cacaste)
-## សេចក្ដីវិភាគ GPU
+## ការព្រមាន GPU
-នៅក្នុងផ្នែកនេះ នៅខ្លះខ្លះនៃឧទាហរណ៍យើងនឹងហាត់គំរូដែលមានទំហំធំជាងមុន។
-* **ប្រើកុំព្យូទ័រដែលមាន GPU**៖ ជាការណែនាំឲ្យបើកកំណត់ត្រារបស់អ្នកលើកុំព្យូទ័រដែលមាន GPU ដើម្បីកាត់បន្ថយពេលរង់ចាំពេលធ្វើការជាមួយគំរូទំហំធំ។
-* **កំណត់ជំហរចងចំណង GPU**៖ ការប្រើ GPU អាចនាំឲ្យមានស្ថានភាពដែលអង្គចងចំណង GPU គាត់ប្រេងដាច់ពេលហាត់គំរូធំៗ។
-* **ការប្រើប្រាស់អង្គចងចំណង GPU**៖ បរិមាណអង្គចងចំណង GPU ប្រើពេលហាត់គំរូអាស្រ័យលើប៉ារ៉ាម៉ែត្រ ផ្សេងៗ រួមមានទំហំជំពូកតូច (minibatch)។
-* **កាត់បន្ថយទំហំជំពូកតូច**៖ ប្រសិនបើអ្នកប្រឈមមុខបញ្ហាអង្គចងចំណង GPU អ្នកអាចពិចារណាកាត់បន្ថយទំហំជំពូកតូចនៅក្នុងកូដរបស់អ្នកជាជម្រើសមួយ។
-* **ការដោះស្រាយបញ្ហាអង្គចងចំណង GPU ក្នុង TensorFlow**៖ កំណែចាស់ៗនៃ TensorFlow អាចមិនបញ្ឈប់ការប្រើប្រាស់អង្គចងចំណង GPU យ៉ាងត្រឹមត្រូវ នៅពេលហាត់គំរូច្រើនក្នុងកឺណែល Python មួយ។ ដើម្បីគ្រប់គ្រងការប្រើប្រាស់អង្គចងចំណង GPU ជាដំណោះស្រាយ អ្នកអាចកំណត់ TensorFlow ឲ្យបន្ថែមអង្គចងចំណង GPU ពេញតែត្រូវការតែប៉ុណ្ណោះ។
-* **ការបញ្ចូលកូដ**៖ ដើម្បីកំណត់ឲ្យ TensorFlow កំណត់បន្ថែមអង្គចងចំណង GPU លើកដំបូងតែពេលគាំទ្រ អ្នកអាចបញ្ចូលកូដខាងក្រោមក្នុងកំណត់ត្រារបស់អ្នក៖
+នៅក្នុងផ្នែកនេះ នៅក្នុងឧទាហរណ៍ខ្លះៗ យើងនឹងបណ្តុះបណ្តាលគំរូដែលមានទំហំធំប៉ុន្មាន។
+* **ប្រើកុំព្យូទ័រមាន GPU**៖ គួរឱ្យរត់កំណត់ត្រារបស់អ្នកលើកុំព្យូទ័រដែលមាន GPU ដើម្បីកាត់បន្ថយពេលរងចាំពេលធ្វើការជាមួយគំរូធំៗ។
+* **កំហិតអង្គចងចាំ GPU**៖ ការរត់លើ GPU អាចនាំឲ្យមានករណីអ្នកប្រើអង្គចងចាំ GPU មិនគ្រប់គ្រាន់ ពិសេសពេលបណ្តុះគំរូធំ។
+* **ការប្រើប្រាស់អង្គចងចាំ GPU**៖ បរិមាណអង្គចងចាំ GPU ដែលបានប្រើពេលបណ្តុះគំរូអាស្រ័យលើកត្តាច្រើន រួមមានទំហំខ្មៅ។
+* **បន្ថយទំហំខ្មៅ**៖ ប្រសិនបើអ្នកប្រឈមមុខនឹងបញ្ហាអង្គចងចាំ GPU សូមពិចារណាកាត់បន្ថយទំហំខ្មៅក្នុងកូដរបស់អ្នកជាជម្រើស។
+* **ការចេញវិញអង្គចងចាំ GPU នៅ TensorFlow**៖ ភាពចាស់របស់ TensorFlow អាចមិនចេញអង្គចងចាំ GPU ត្រឹមត្រូវពេលបណ្តុះគំរូជាច្រើនក្នុងធុង Python តែមួយ។ ដើម្បីគ្រប់គ្រងការប្រើប្រាស់អង្គចងចាំ GPU បានប្រសើរជាងមុន អ្នកអាចកំណត់ TensorFlow ឲ្យបែងចែកអង្គចងចាំ GPU តាមត្រូវតែប្រើ។
+* **បញ្ចូលកូដ**៖ ដើម្បីកំណត់ TensorFlow ឲ្យបង្កើនការបែងចែកអង្គចងចាំ GPU តែពេលដែលត្រូវការ សូមបញ្ចូលកូដខាងក្រោមក្នុងកំណត់ត្រារបស់អ្នក៖
```python
physical_devices = tf.config.list_physical_devices('GPU')
@@ -53,21 +53,21 @@ if len(physical_devices)>0:
tf.config.experimental.set_memory_growth(physical_devices[0], True)
```
-បើអ្នកចាប់អារម្មណ៍ក្នុងការសិក្សា NLP ពីទស្សនវិជ្ជា ML ចាស់ៗ សូមចូលទៅរក [ជួរមេរៀននេះ](https://github.com/microsoft/ML-For-Beginners/tree/main/6-NLP)
+ប្រសិនបើអ្នកចាប់អារម្មណ៍ក្នុងការសិក្សាអំពី NLP ពីទស្សនៈ ML ដั้งដើម សូមចូលទៅកាន់ [ឈុតមេរៀននេះ](https://github.com/microsoft/ML-For-Beginners/tree/main/6-NLP)
## នៅក្នុងផ្នែកនេះ
-នៅក្នុងផ្នែកនេះ យើងនឹងរៀនអំពី៖
+នៅក្នុងផ្នែកនេះ យើងនឹងរៀនពី៖
-* [តំណាងអត្ថបទជាទិន្នន័យ tensor](13-TextRep/README.md)
-* [ការដាក់ពាក្យជាតំណ](14-Emdeddings/README.md)
-* [ម៉ូដែលភាសា](15-LanguageModeling/README.md)
-* [បណ្តាញប្រព័ន្ធប្រសាទត្រឡប់](16-RNN/README.md)
-* [បណ្តាញបង្កើត](17-GenerativeNetworks/README.md)
+* [កំណត់តំណាងអត្ថបទជាតង់ស័រ](13-TextRep/README.md)
+* [ការបញ្ចូលពាក្យ](14-Emdeddings/README.md)
+* [ការម៉ូដែលភាសា](15-LanguageModeling/README.md)
+* [បណ្ដាញអាចប្រើឡើងវិញ](16-RNN/README.md)
+* [បណ្ដាញបង្កើត](17-GenerativeNetworks/README.md)
* [Transformers](18-Transformers/README.md)
---
-**ការបដិសេធ**៖
-ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ រួមទាំងយើងខិតខំប្រឹងប្រែងដើម្បីភាពត្រឹមត្រូវ ក៏សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាដើមគួរត្រូវបានយកជាធនាគារដែលមានសិទ្ធិ។ សម្រាប់ព័ត៌មានសំខាន់ ការបកប្រែដោយអ្នកជំនាញជាថ្នាក់មនុស្សត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។
+**ការបដិសេធ**:
+ឯកសារនេះត្រូវបានបម្លែងភាសា ដោយប្រើសេវាបម្លែងភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខ្ញុំមានក្តីប្រាថ្នាឱ្យបានច្បាស់លាស់ តែសូមយល់ដឹងថាការបម្លែងដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាទីតាំងគួរត្រូវបានគេប្រើជាប្រភពច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើប្រាស់ការប្រែដោយមនុស្សជំនាញ។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបន្ទាប់ពីការប្រើប្រាស់ការបម្លែងនេះនោះទេ។
\ No newline at end of file
diff --git a/translations/kn/.co-op-translator.json b/translations/kn/.co-op-translator.json
index 0043256a..ac3354b3 100644
--- a/translations/kn/.co-op-translator.json
+++ b/translations/kn/.co-op-translator.json
@@ -5,6 +5,12 @@
"source_file": "AGENTS.md",
"language_code": "kn"
},
+ "CONTRIBUTING.md": {
+ "original_hash": "c6fd7e781b67111a90abd166d0ce4aa0",
+ "translation_date": "2026-07-08T20:51:23+00:00",
+ "source_file": "CONTRIBUTING.md",
+ "language_code": "kn"
+ },
"README.md": {
"original_hash": "12c8eb6bf0867d2f1c32daf613ac5b8b",
"translation_date": "2026-04-06T16:56:31+00:00",
@@ -17,6 +23,19 @@
"source_file": "SECURITY.md",
"language_code": "kn"
},
+ "__translation_failures__": {
+ "lessons/sketchnotes/LICENSE.md": {
+ "original_hash": "45ab63a2cd8f5faef6c9b150618837a4",
+ "source_file": "lessons/sketchnotes/LICENSE.md",
+ "language_code": "kn",
+ "failure_date": "2026-07-08T20:43:18+00:00",
+ "status": "failed",
+ "error_type": "TranslationIncompleteError",
+ "error_message": "Markdown translation remained incomplete for chunk 1.1.1 of 'LICENSE.md', and the chunk could not be split further.",
+ "translator_version": "0.20.0",
+ "failure_policy_version": 1
+ }
+ },
"etc/CODE_OF_CONDUCT.md": {
"original_hash": "c06b12caf3c901eb3156e3dd5b0aea56",
"translation_date": "2025-11-25T20:22:49+00:00",
@@ -54,8 +73,8 @@
"language_code": "kn"
},
"examples/README.md": {
- "original_hash": "0d1babfdcbeb46525f2db3fbaaa54cd7",
- "translation_date": "2025-11-25T20:35:16+00:00",
+ "original_hash": "7883d52c2e2a221e0b07a7b112a149b9",
+ "translation_date": "2026-07-08T20:34:31+00:00",
"source_file": "examples/README.md",
"language_code": "kn"
},
@@ -66,8 +85,8 @@
"language_code": "kn"
},
"lessons/0-course-setup/how-to-run.md": {
- "original_hash": "a4717bd9103b9f6cd84d534b83534689",
- "translation_date": "2026-01-17T02:19:30+00:00",
+ "original_hash": "7ad8c7d8604c53649b3d4d1e2f3a6fa1",
+ "translation_date": "2026-07-08T20:34:56+00:00",
"source_file": "lessons/0-course-setup/how-to-run.md",
"language_code": "kn"
},
@@ -191,6 +210,12 @@
"source_file": "lessons/4-ComputerVision/08-TransferLearning/TrainingTricks.md",
"language_code": "kn"
},
+ "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb": {
+ "original_hash": "99b816b6a4957ef4100cee4c4221dff9",
+ "translation_date": "2026-07-08T20:24:51+00:00",
+ "source_file": "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb",
+ "language_code": "kn"
+ },
"lessons/4-ComputerVision/08-TransferLearning/lab/README.md": {
"original_hash": "7765935c35fcee69b9fe2d0cfd6963e2",
"translation_date": "2025-11-25T22:44:23+00:00",
@@ -330,8 +355,8 @@
"language_code": "kn"
},
"lessons/5-NLP/README.md": {
- "original_hash": "8ef02a9318257ea140ed3ed74442096d",
- "translation_date": "2025-11-25T21:16:26+00:00",
+ "original_hash": "038df6f1a73e49f6430740da083bfd6d",
+ "translation_date": "2026-07-08T20:35:26+00:00",
"source_file": "lessons/5-NLP/README.md",
"language_code": "kn"
},
diff --git a/translations/kn/CONTRIBUTING.md b/translations/kn/CONTRIBUTING.md
new file mode 100644
index 00000000..fe791b8c
--- /dev/null
+++ b/translations/kn/CONTRIBUTING.md
@@ -0,0 +1,29 @@
+# AI-For-Beginners ಗೆ ಸಹಕಾರ ನೀಡುವುದು
+
+AI-For-Beginners ಗೆ ಸಹಕಾರ ನೀಡಲು ನಿಮ್ಮ ಆಸಕ್ತಿಗೆ ಧನ್ಯವಾದಗಳು! ನಾವು ಭಾಷಾಂತರಗಳು, ಪಾಠದ ದೋಷಗಳ ಸರಿಪಡಣೆಗಳು ಮತ್ತು ಸ್ವರೂಪಣಾ ಸರಿಪಡಣೆಗಳನ್ನು ಸ್ವಾಗತಿಸುತ್ತೇವೆ.
+
+## ಮೈಕ್ರೋಸಾಫ್ಟ್ ಸಹಾಯಕರ ಪರವಾನಗಿ ಒಪ್ಪಂದ (CLA)
+
+ಈ ಯೋಜನೆ ಸಹಕಾರಗಳು ಮತ್ತು ಶಿಫಾರಸುಗಳನ್ನು ಸ್ವಾಗತಿಸುತ್ತದೆ. ಬಹುಶಃ ಸಹಕಾರಗಳು Contributor License Agreement (CLA) ಗೆ ಒಪ್ಪಿಗೆಯಾಗಿರಬೇಕು, ಇದು ನೀವು ನಿಮ್ಮ ವಹಿವಾಟನ್ನು ಬಳಸಲು ಹಕ್ಕು ಹೊಂದಿದ್ದೀರಿ ಮತ್ತು ನಿಜವಾಗಿಯೂ ಹಕ್ಕುಗಳನ್ನು ನೀಡುತ್ತಿದ್ದೀರಂತೆ ಘೋಷಿಸುತ್ತದೆ. ವಿವರಗಳಿಗೆ, ಭೇಟಿ ನೀಡಿ [https://cla.microsoft.com](https://cla.microsoft.com).
+
+ನೀವು ಒಂದು ಪುಲ್ ವಿನಂತಿ ಸಲ್ಲಿಸುವಾಗ, CLA-ಬಾಟ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅದು ನಿಮಗೆ CLA ಒದಗಿಸುವ ಅಗತ್ಯವಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಿ ಪ್ರ(PR) ಯನ್ನು ತಕ್ಕ labels ಮತ್ತು ಟಿಪ್ಪಣಿಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ. ಬಾಟ್ ನೀಡುವ ಸೂಚನೆಗಳನ್ನು ಅನುಸರಿಸಿ. ನಮ್ಮ CLA ಬಳಸಿ ಎಲ್ಲ ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿ ನೀವು ಇದನ್ನು ಒಂದೇ ಬಾರಿ ಮಾಡಬೇಕಾಗುತ್ತದೆ.
+
+## ಸಹಕಾರ ಹೇಗೆ ನೀಡಬೇಕು
+
+### 1. ಟೈಪೋಗಳು / ಕೋಡ್ ದೋಷಗಳನ್ನು ಸರಿಪಡಿಸುವುದು
+ನೀವು ಯಾವುದೇ Jupyter ನೋಟ್ಬುಕ್ ಅಥವಾ ಪಾಠದ(markdown) ಕಡೆಯಲ್ಲಿ ಟೈಪೋ ಅಥವಾ ದೋಷ ಕಂಡುಹಿಡಿದರೆ:
+1. ರೆಪೊಸಿಟರಿ fork ಮಾಡಿ.
+2. ಟೈಪೋ ಅಥವಾ ದೋಷದ ಲಿಂಕ್ ಸರಿಪಡಿಸಿ.
+3. ಸ್ಪಷ್ಟ ವಿವರಣೆ ಹೊಂದಿದ ಪುಲ್ ವಿನಂತಿಯನ್ನು ಸಲ್ಲಿಸಿ.
+
+### 2. ಭಾಷಾಂತರಗಳನ್ನು ಸಲ್ಲಿಸುವುದು
+ನಾವು ಪಾಠಗಳನ್ನು ಬೇರೆ ಭಾಷೆಗಳಿಗೆ ಭಾಷಾಂತರಗಳನ್ನು ಸ್ವಾಗತಿಸುತ್ತೇವೆ! ದಯವಿಟ್ಟು ಭಾಷಾಂತರಗಳನ್ನು `translations/` ಡೈರೆಕ್ಟರಿಯಡಿಯಲ್ಲಿ ಇಡಿರಿ, ಅಲ್ಲಿ ಇದೆ ಇದ್ದ ಫೋಲ್ಡರ್ ಹೆಸರುಗಳನ್ನು ಬಳಸಿ (ಉದಾಹರಣೆಗೆ `translations/es/`, `translations/pt-BR/`, `translations/zh-CN/`).
+
+ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗೆ, ನೋಡಿ [etc/CONTRIBUTING.md](etc/CONTRIBUTING.md).
+
+---
+
+
+**ಅಸ್ವೀಕಾರ**:
+ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯನ್ನು ಸಾಧಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ದಯವಿಟ್ಟು ಗಮನಿಸಿ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸಡ್ಡೆಗಳು ಇರಬಹುದು. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜು ಪ್ರಾಮಾಣಿಕ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದವನ್ನು ಬಳಸುವ ಮೂಲಕ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಗಳ ಅಥವಾ ತಪ್ಪು ವ್ಯಾಖ್ಯಾನಗಳ ಬಗ್ಗೆ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ.
+
\ No newline at end of file
diff --git a/translations/kn/examples/README.md b/translations/kn/examples/README.md
index 37910139..9ee737a3 100644
--- a/translations/kn/examples/README.md
+++ b/translations/kn/examples/README.md
@@ -1,31 +1,31 @@
-# ಆರಂಭಿಕರಿಗಾಗಿ ಸುಲಭ AI ಉದಾಹರಣೆಗಳು
+# ಆರಂಭಿಕರ ಸ್ನೇಹಿ AI ಉದಾಹರಣೆಗಳು
-ಸ್ವಾಗತ! ಈ ಡೈರೆಕ್ಟರಿ ಸರಳ, ಸ್ವತಂತ್ರ ಉದಾಹರಣೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದು ನಿಮಗೆ AI ಮತ್ತು ಯಂತ್ರ ಅಧ್ಯಯನವನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಪ್ರತಿ ಉದಾಹರಣೆಯು ಆರಂಭಿಕರಿಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ವಿವರವಾದ ಕಾಮೆಂಟ್ಗಳು ಮತ್ತು ಹಂತ ಹಂತದ ವಿವರಣೆಗಳೊಂದಿಗೆ.
+ಸ್ವಾಗತ! ಈ ಡೈರಕ್ಟರಿ ಸರಳ, ಸ್ವತಂತ್ರ ಉದಾಹರಣೆಗಳನ್ನು ಹೊಂದಿದೆ, ಇದು ನಿಮ್ಮನ್ನು AI ಮತ್ತು ಯന്ത്ര ಅಧ್ಯಯನದ ಪ್ರಾರಂಭಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಪ್ರತೀ ಉದಾಹರಣೆ ಆರಂಭಿಕರಿಗಿಷ್ಟು ಸಹಜವಾಗಿದ್ದು, ವಿವರವಾದ ಟಿಪ್ಪಣಿಗಳು ಮತ್ತು ಹಂತ ಹಂತದ ವಿವರಣೆಗಳೊಂದಿಗೆ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.
## 📚 ಉದಾಹರಣೆಗಳ ಅವಲೋಕನ
-| ಉದಾಹರಣೆ | ವಿವರಣೆ | ಕಷ್ಟದ ಮಟ್ಟ | ಪೂರ್ವಾಪೇಕ್ಷಿತಗಳು |
+| ಉದಾಹರಣೆ | ವಿವರಣೆ | ಕಷ್ಟದ ಮಟ್ಟ | ಪೂರ್ವಾಪೇಕ್ಷೆಗಳು |
|---------|-------------|------------|---------------|
-| [Hello AI World](../../../examples/01-hello-ai-world.py) | ನಿಮ್ಮ ಮೊದಲ AI ಪ್ರೋಗ್ರಾಂ - ಸರಳ ಮಾದರಿ ಗುರುತಿಸುವಿಕೆ | ⭐ ಆರಂಭಿಕ | Python ಮೂಲಭೂತಗಳು |
-| [Simple Neural Network](../../../examples/02-simple-neural-network.py) | ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಶೂನ್ಯದಿಂದ ನಿರ್ಮಿಸಿ | ⭐⭐ ಆರಂಭಿಕ+ | Python, ಮೂಲ ಗಣಿತ |
-| [Image Classifier](./03-image-classifier.ipynb) | ಪೂರ್ವ-ತರಬೇತಿ ಪಡೆದ ಮಾದರಿಯೊಂದಿಗೆ ಚಿತ್ರಗಳನ್ನು ವರ್ಗೀಕರಿಸಿ | ⭐⭐ ಆರಂಭಿಕ+ | Python, numpy |
-| [Text Sentiment](../../../examples/04-text-sentiment.py) | ಪಠ್ಯದ ಭಾವನೆಯನ್ನು ವಿಶ್ಲೇಷಿಸಿ (ಧನಾತ್ಮಕ/ನಕಾರಾತ್ಮಕ) | ⭐⭐ ಆರಂಭಿಕ+ | Python |
+| [Hello AI World](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/01-hello-ai-world.py) | ನಿಮ್ಮ ಮೊದಲ AI ಪ್ರೋಗ್ರಾಂ - ಸರಳ ಪ್ಯಾಟರ್ನ್ ಗುರುತಿಕೆ | ⭐ ಆರಂಭಿಕ | Python ಮೂಲಗಳು |
+| [Simple Neural Network](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/02-simple-neural-network.py) | ನೂರಲ್ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಶೂನ್ಯದಿಂದ ನಿರ್ಮಿಸಿ | ⭐⭐ ಆರಂಭಿಕ+ | Python, ಮೂಲ ಗಣಿತ |
+| [Image Classifier](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/03-image-classifier.ipynb) | ಪೂರ್ವ-ಶಿಕ್ಷಿತ ಮಾದರಿಯಿಂದ ಚಿತ್ರಗಳನ್ನು ವರ್ಗೀಕರಿಸಿ | ⭐⭐ ಆರಂಭಿಕ+ | Python, numpy |
+| [Text Sentiment](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/04-text-sentiment.py) | ಪಠ್ಯದ ಭಾವನೆ ವಿಶ್ಲೇಷಣೆ (ಹಿತಕಾರಕ/ಹಾನಿಕಾರಕ) | ⭐⭐ ಆರಂಭಿಕ+ | Python |
-## 🚀 ಪ್ರಾರಂಭಿಸುವುದು
+## 🚀 ಪ್ರಾರಂಭಿಸೋಣ
-### ಪೂರ್ವಾಪೇಕ್ಷಿತಗಳು
+### ಪೂರ್ವಾಪೇಕ್ಷೆಗಳು
-ನೀವು Python ಅನ್ನು ಸ್ಥಾಪಿಸಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ (3.8 ಅಥವಾ ಹೆಚ್ಚಿನ ಆವೃತ್ತಿ ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ). ಅಗತ್ಯ ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ಸ್ಥಾಪಿಸಿ:
+Python ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿಕೊಂಡಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ (3.8 ಅಥವಾ ಹೆಚ್ಚು ಶಿಫಾರಸು). ಬೇಕಾಗುವ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ:
```bash
-# ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳಿಗೆ
+# ಪೈಥಾನ್ ಲಿಪಿಗಳಿಗೆ
pip install numpy
-# ಜುಪೈಟರ್ ನೋಟ್ಬುಕ್ಗಳಿಗೆ (ಚಿತ್ರ ವರ್ಗೀಕರಣೆ)
+# ಜುಪಿಟರ್ ನೋಟ್ಬುಕ್ಗಳಿಗೆ (ಚಿತ್ರ ವರ್ಗೀಕರಣೆ)
pip install jupyter numpy pillow tensorflow
```
-ಅಥವಾ ಮುಖ್ಯ ಪಠ್ಯಕ್ರಮದಿಂದ conda ಪರಿಸರವನ್ನು ಬಳಸಿ:
+ಅಥವಾ ಮುಖ್ಯ ಪಾಠಕ್ರಮದಿಂದ conda ಪರಿಸರವನ್ನು ಉಪಯೋಗಿಸಿ:
```bash
conda env create --name ai4beg --file ../environment.yml
@@ -34,54 +34,54 @@ conda activate ai4beg
### ಉದಾಹರಣೆಗಳನ್ನು ಚಾಲನೆ ಮಾಡುವುದು
-**Python ಸ್ಕ್ರಿಪ್ಟ್ಗಳಿಗಾಗಿ (.py ಫೈಲ್ಗಳು):**
+**Python ಸ್ಕ್ರಿಪ್ಟ್ಗಳಿಗೆ (.py ಫೈಲ್ಗಳು):**
```bash
python 01-hello-ai-world.py
```
-**Jupyter ನೋಟ್ಬುಕ್ಗಳಿಗಾಗಿ (.ipynb ಫೈಲ್ಗಳು):**
+**Jupyter ನೋಟ್ಬುಕ್ಗಳಿಗೆ (.ipynb ಫೈಲ್ಗಳು):**
```bash
jupyter notebook 03-image-classifier.ipynb
```
## 📖 ಕಲಿಕೆಯ ಮಾರ್ಗ
-ನಾವು ಈ ಉದಾಹರಣೆಗಳನ್ನು ಕ್ರಮವಾಗಿ ಅನುಸರಿಸಲು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ:
+ನಾವು ಕೆಳಗಿನ ಕ್ರಮದಲ್ಲಿ ಉದಾಹರಣೆಗಳನ್ನು ಅನುಸರಿಸುವ ಪರಿಕಲ್ಪನೆಯನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ:
-1. **"Hello AI World" ನಿಂದ ಪ್ರಾರಂಭಿಸಿ** - ಮಾದರಿ ಗುರುತಿಸುವಿಕೆಯ ಮೂಲಭೂತಗಳನ್ನು ಕಲಿಯಿರಿ
-2. **ಸರಳ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ನಿರ್ಮಿಸಿ** - ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ
-3. **ಚಿತ್ರ ವರ್ಗೀಕರಿಸುವುದನ್ನು ಪ್ರಯತ್ನಿಸಿ** - ನಿಜವಾದ ಚಿತ್ರಗಳೊಂದಿಗೆ AI ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನೋಡಿ
-4. **ಪಠ್ಯದ ಭಾವನೆಯನ್ನು ವಿಶ್ಲೇಷಿಸಿ** - ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಅನ್ವೇಷಿಸಿ
+1. **"Hello AI World" ನಿಂದ ಪ್ರಾರಂಭಿಸಿ** - ಪ್ಯಾಟರ್ನ್ ಗುರುತಿಕೆಯ ಮೂಲತತ್ವಗಳನ್ನು ಕಲಿಯಿರಿ
+2. **ಸರಳ ನೂರಲ್ ನೆಟ್ವರ್ಕ್ ನirmaಣ ಮಾಡಿ** - ನೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ
+3. **ಚಿತ್ರ ವರ್ಗೀಕರಣೆ ಪ್ರಯತ್ನಿಸಿ** - ನಿಜವಾದ ಚಿತ್ರಗಳೊಂದಿಗೆ AI ಅನ್ನು ನೋಡಿ
+4. **ಪಠ್ಯ ಭಾವನೆ ವಿಶ್ಲೇಷಿಸಿ** - ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಅನ್ವೇಷಿಸಿ
## 💡 ಆರಂಭಿಕರಿಗಾಗಿ ಸಲಹೆಗಳು
-- **ಕೋಡ್ ಕಾಮೆಂಟ್ಗಳನ್ನು ಗಮನದಿಂದ ಓದಿ** - ಪ್ರತಿಯೊಂದು ಸಾಲು ಏನು ಮಾಡುತ್ತದೆ ಎಂದು ವಿವರಿಸುತ್ತದೆ
-- **ಪ್ರಯೋಗ ಮಾಡಿ!** - ಮೌಲ್ಯಗಳನ್ನು ಬದಲಾಯಿಸಿ ಮತ್ತು ಪರಿಣಾಮವನ್ನು ನೋಡಿ
-- **ಎಲ್ಲವನ್ನೂ ತಕ್ಷಣ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಚಿಂತೆ ಮಾಡಬೇಡಿ** - ಕಲಿಕೆ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ
-- **ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಿ** - [ಚರ್ಚಾ ಫಲಕ](https://github.com/microsoft/AI-For-Beginners/discussions) ಬಳಸಿ
+- **ಕೋಡ್ ಟಿಪ್ಪಣಿಗಳನ್ನು ಮನಃಪೂರ್ವಕವಾಗಿ ಓದಿ** - ಪ್ರತಿಯೊಂದು ಸಾಲಿನಲ್ಲಿ ಏನು ಮಾಡುವುದೆಂದು ವಿವರಿಸಲಾಗಿದೆ
+- **ಪ್ರಯೋಗ ಮಾಡಿ!** - ಮೌಲ್ಯಗಳನ್ನು ಬದಲಿಸಿ ಮತ್ತು ಪರಿಣಾಮವನ್ನು ನೋಡಿ
+- **ಎಲ್ಲವನ್ನೂ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಒತ್ತಡಪಡಿಸಿಕೊಳ್ಳಬೇಡಿ** - ಕಲಿಕೆ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ
+- **ಪ್ರಶ್ನೆ ಕೇಳಿರಿ** - [ಚರ್ಚಾ ಫಲಕವನ್ನು](https://github.com/microsoft/AI-For-Beginners/discussions) ಬಳಸಿರಿ
-## 🔗 ಮುಂದಿನ ಹಂತಗಳು
+## 🔗 ಮುಂದಿನ ಹೆಜ್ಜೆಗಳು
-ಈ ಉದಾಹರಣೆಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ ನಂತರ, ಸಂಪೂರ್ಣ ಪಠ್ಯಕ್ರಮವನ್ನು ಅನ್ವೇಷಿಸಿ:
+ಈ ಉದಾಹರಣೆಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ ನಂತರ, ಸಂಪೂರ್ಣ ಪಾಠಕ್ರಮವನ್ನು ಅನ್ವೇಷಿಸಿ:
- [AI ಪರಿಚಯ](../lessons/1-Intro/README.md)
-- [ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು](../lessons/3-NeuralNetworks/README.md)
-- [ಕಂಪ್ಯೂಟರ್ ದೃಷ್ಟಿ](../lessons/4-ComputerVision/README.md)
+- [ನೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು](../lessons/3-NeuralNetworks/README.md)
+- [ಕಂಪ್ಯೂಟರ್ ವೀ젼್](../lessons/4-ComputerVision/README.md)
- [ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ](../lessons/5-NLP/README.md)
## 🤝 ಕೊಡುಗೆ ನೀಡುವುದು
-ಈ ಉದಾಹರಣೆಗಳು ನಿಮಗೆ ಸಹಾಯವಾಗಿದೆಯೇ? ಅವುಗಳನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಿ:
-- ಸಮಸ್ಯೆಗಳನ್ನು ವರದಿ ಮಾಡಿ ಅಥವಾ ಸುಧಾರಣೆಗಳನ್ನು ಸೂಚಿಸಿ
-- ಆರಂಭಿಕರಿಗಾಗಿ ಇನ್ನಷ್ಟು ಉದಾಹರಣೆಗಳನ್ನು ಸೇರಿಸಿ
-- ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಮತ್ತು ಕಾಮೆಂಟ್ಗಳನ್ನು ಸುಧಾರಿಸಿ
+ಈ ಉದಾಹರಣೆಗಳು ಸಹಾಯಕವೆಂದು ಕಂಡಿದ್ದೀರಾ? ಅವುಗಳನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯಮಾಡಿ:
+- ಸಮಸ್ಯೆಗಳ ವರದಿ ಮಾಡಿ ಅಥವಾ ಸುಧಾರಣೆಗಳನ್ನು ಸೂಚಿಸಿ
+- ಆರಂಭಿಕರಿಗಾಗಿ ಹೆಚ್ಚು ಉದಾಹರಣೆಗಳನ್ನು ಸೇರಿಸಿ
+- ದಾಖಲೆಗಳು ಮತ್ತು ಟಿಪ್ಪಣಿಗಳನ್ನು ಉತ್ತಮಗೊಳಿಸಿ
---
-*ಮರೆತುಬೇಡಿ: ಪ್ರತಿಯೊಬ್ಬ ಪರಿಣಿತರೂ ಮೊದಲು ಆರಂಭಿಕರಾಗಿದ್ದರು. ಶುಭ ಕಲಿಕೆ! 🎓*
+*ಗಮನಿಸಿ: ಪ್ರತಿಯೊಬ್ಬ ತಜ್ಞನೂ ಆರಂಭಿಕನಾಗಿದ್ದಾನೆ. ಸುಖಕರ ಕಲಿಕೆ! 🎓*
---
-**ಅಸ್ವೀಕರಣ**:
-ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
+**ಅಸ್ವೀಕಾರ**:
+ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯನ್ನು ಸಾಧಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ದಯವಿಟ್ಟು ಗಮನಿಸಿ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸಡ್ಡೆಗಳು ಇರಬಹುದು. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜು ಪ್ರಾಮಾಣಿಕ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದವನ್ನು ಬಳಸುವ ಮೂಲಕ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಗಳ ಅಥವಾ ತಪ್ಪು ವ್ಯಾಖ್ಯಾನಗಳ ಬಗ್ಗೆ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ.
\ No newline at end of file
diff --git a/translations/kn/lessons/0-course-setup/how-to-run.md b/translations/kn/lessons/0-course-setup/how-to-run.md
index 5a1abb3e..5a009832 100644
--- a/translations/kn/lessons/0-course-setup/how-to-run.md
+++ b/translations/kn/lessons/0-course-setup/how-to-run.md
@@ -1,12 +1,12 @@
-# ಕೋಡ್ ಅನ್ನು ಹೇಗೆ ಚಾಲನೆ ಮಾಡುವುದು
+# ಕೋಡ್ ಅನ್ನು ಹೇಗೆ ನಡೆಸುವುದು
-ಈ ಪಠ್ಯಕ್ರಮದಲ್ಲಿ ನೀವು ಚಲಾಯಿಸಬಹುದಾದ ಹಲವಾರು ಉದಾಹರಣೆಗಳು ಮತ್ತು ಪ್ರಯೋಗಾಲಯಗಳು ಇವೆ. ಇದನ್ನು ಮಾಡಲು, ಈ ಪಠ್ಯಕ್ರಮದ ಭಾಗವಾಗಿ ನೀಡಲಾದ Jupyter ನೋಟ್ಬುಕ್ಗಳಲ್ಲಿ Python ಕೋಡ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡುವ ಸಾಮರ್ಥ್ಯ ನಿಮಗೆ ಬೇಕಾಗುತ್ತದೆ. ಕೋಡ್ ಚಾಲನೆಗಾಗಿ ನಿಮ್ಮ ಬಳಿ ಹಲವು ಆಯ್ಕೆಗಳು ಲಭ್ಯವಿವೆ:
+ಈ ಪಠ್ಯಕ್ರಮದಲ್ಲಿ ನೀವು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಅನೇಕ ಉದಾಹರಣೆಗಳು ಮತ್ತು ಪ್ರಯೋಗಾಲಯಗಳಿವೆ, ಅವನ್ನು ನೀವು ನಡೆಸಲು ಇಚ್ಛಿಸುವಿರಾ. ಇದನ್ನು ಮಾಡಲು, ನೀವು ಈ ಪಠ್ಯಕ್ರಮದ ಭಾಗವಾಗಿ ಒದಗಿಸಲಾದ Jupyter ನೋಟ್ಬುಕ್ಗಳಲ್ಲಿ Python ಕೋಡ್ ಅನ್ನು ನಡಿಸುವ ಸಾಮರ್ಥ್ಯ ಹೊಂದಿರಬೇಕು. ಕೋಡ್ ನಡಿಸಲು ನಿಮ್ಮ ಬಳಿ ಹಲವು ಆಯ್ಕೆಗಳು ಇವೆ:
-## ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಸ್ಥಳೀಯವಾಗಿ ಚಾಲನೆ
+## ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಸ್ಥಳೀಯವಾಗಿ ನಡಿಸುವುದು
-ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿಅಸ್ಥಾಪಿಸಲು Python ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿಕೊಳ್ಳಬೇಕಾಗಿದೆ. ಒಂದು ಶಿಫಾರಸು ಆಗಿದ್ದು **[miniconda](https://conda.io/en/latest/miniconda.html)** ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿಕೊಳ್ಳುವುದು - ಇದು ತೂಕದಲ್ಲಿ ಸಣ್ಣದಾದ ಇನ್ಸ್ಟಾಲೇಶನ್ ಆಗಿದ್ದು, ವಿವಿಧ Python **ವರ್ಚುವಲ್ ಪರಿಸರಗಳನ್ನು** ಬೆಂಬಲಿಸುವ `conda` ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ.
+ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಕೋಡ್ ನಡಿಸಲು, Python ಸ್ಥಾಪನೆ ಅಗತ್ಯವಿದೆ. ಒಂದು ಶಿಫಾರಸು ವೇಂದರೆ **[miniconda](https://conda.io/en/latest/miniconda.html)** ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು — ಇದು ಭಾರಹೀನವಾದ ಸ್ಥಾಪನೆಯಾಗಿದ್ದು, ವಿವಿಧ Python **ವರ್ಚುವಲ್ ಪರಿಸರಗಳಿಗೆ** `conda` ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ.
-miniconda ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದ ನಂತರ, ಛಾಯೆನಕವನ್ನು ಕ್ಲೋನ್ ಮಾಡಿ ಮತ್ತು ಈ ಕೋರ್ಸ್ಗಾಗಿ ಬಳಸುವ ವರ್ಚುವಲ್ ಪರಿಸರವನ್ನು ರಚಿಸಿ:
+miniconda ಅನ್ನು ಸ್ಥಾಪಿಸಿದ ನಂತರ, ಥಳಿಯನ್ನು ಕ್ಲೋನ್ ಮಾಡಿ ಮತ್ತು ಈ ಕೋರ್ಸ್ಗೆ ಬಳಸುವಾಗ ವರ್ಚುವಲ್ ಪರಿಸರವನ್ನು ರಚಿಸಿ:
```bash
git clone http://github.com/microsoft/ai-for-beginners
@@ -15,57 +15,57 @@ conda env create --name ai4beg --file .devcontainer/environment.yml
conda activate ai4beg
```
-### Python ವಿಸ್ತರಣೆ ಇರುವ Visual Studio Code ಬಳಸಿ
+### Visual Studio Code ನೊಂದಿಗೆ Python ವಿಸ್ತರಣೆಯನ್ನು ಬಳಸುವುದು
-ಈ ಪಠ್ಯಕ್ರಮವನ್ನು [Visual Studio Code](http://code.visualstudio.com/?WT.mc_id=academic-77998-cacaste)ನಲ್ಲಿ [Python ವಿಸ್ತರಣೆ](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-77998-cacaste) ಜೊತೆ ತೆರೆಯುವುದರಿಂದ ಉತ್ತಮವಾಗಿ ಬಳಸಬಹುದಾಗುತ್ತದೆ.
+ಈ ಪಠ್ಯಕ್ರಮ ಉತ್ತಮವಾಗಿ ಉಪಯೋಗಿಸಲು, ನೀವು [Visual Studio Code](http://code.visualstudio.com/?WT.mc_id=academic-77998-cacaste) ಮತ್ತು [Python ವಿಸ್ತರಣೆ](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-77998-cacaste) ಬಳಸುವಾಗ ಹೊರತಾಗಿಯೇ ತೆರೆಯಿರಿ.
-> **ಸೂಚನೆ**: ನೀವು ಡೈರೆಕ್ಟರಿಯನ್ನ ಕ್ಲೋನ್ ಮಾಡಿ VS Code ನಲ್ಲಿ ತೆರೆಯುತ್ತಿದ್ದಾಗ, ಅದು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿಮಗೆ Python ವಿಸ್ತರಣೆಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬೇಕು ಎಂದು ಸೂಚಿಸುತ್ತದೆ. ಮೇಲ್ಕಂಡಂತೆ miniconda ಕೂಡ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬೇಕು.
+> **ಗಮನಿಸಿ**: ನೀವು ಥಳಿಯನ್ನು ಕ್ಲೋನ್ ಮಾಡಿ VS Code ನಲ್ಲಿ ಡೈರೆಕ್ಟರಿಯನ್ನು ತೆರೆಯುತ್ತಿದ್ದರೆ, ಅದು ಸ್ವಯಂಚಾಲಿತವಾಗಿ Python ವಿಸ್ತರಣೆಗಳನ್ನು ಸ್ಥಾಪಿಸಲು ಸೂಚಿಸುತ್ತದೆ. ಮೇಲಿನ ವಿವರಣೆ ಪ್ರಕಾರ, ನೀವು miniconda ಅನ್ನು ಕೂಡ ಸ್ಥಾಪಿಸಬೇಕಾಗುತ್ತದೆ.
-> **ಸೂಚನೆ**: VS Code ನೀವು ಡಿಪೊವನ್ನು ಕಂಟೇನರ್ನಲ್ಲಿ ಮರುತೆರೆಯಲು ಸೂಚಿಸಿದರೆ, ಸ್ಥಳೀಯ Python ಇನ್ಸ್ಟಾಲೇಶನ್ ಬಳಸಲು ಅದನ್ನು ನಿರಾಕರಿಸಬೇಕು.
+> **ಗಮನಿಸಿ**: VS Code ನಿಮಗೆ ಥಳಿಯನ್ನು ಕಂಟೇನರ್ನಲ್ಲಿ ಮರುತೆರೆಯಲು ಸೂಚಿಸಿದರೆ, ನೀವು ಸ್ಥಳೀಯ Python ಸ್ಥಾಪನೆಯನ್ನು ಬಳಸಲು ಇದನ್ನು ನಿರಾಕರಿಸಬೇಕು.
-### ಬ್ರೌಸರ್ನಲ್ಲಿ Jupyter ಬಳಸಿ
+### ಬ್ರೌಸರ್ನಲ್ಲಿ Jupyter ಬಳಸು
-ನಿಮ್ಮದೇ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಬ್ರೌಸರ್ ಮೂಲಕ Jupyter ಪರಿಸರವನ್ನು కూడా ಬಳಸಬಹುದು. ಕ್ಲಾಸಿಕಲ್ Jupyter ಮತ್ತು JupyterHub ಎರಡೂ ಸ್ವಯಂ-ಪೂರ್ಣಗೊಳಿಸುವಿಕೆ, ಕೋಡ್ ಹೈಲೈಟಿಂಗ್ ಮುಂತಾದ ವೈಶಿಷ್ಟ್ಯಗಳೊಂದಿಗೆ ಸುಲಭ ಅಭಿವೃದ್ಧಿ ಪರಿಸರವನ್ನು ಒದಗಿಸುತ್ತವೆ.
+ನೀವು ನಿಮ್ಮದೇ ಕಂಪ್ಯೂಟರ್ನ ಬ್ರೌಸರ್ನಲ್ಲಿ Jupyter ಪರಿಸರವನ್ನು ಸಹ ಬಳಸಬಹುದು. ಕ್ಲಾಸಿಕಲ್ Jupyter ಮತ್ತು JupyterHub ಎರಡೂ ಸ್ವಯಂಚಾಲಿತ ಪೂರ್ಣಗೊಂಡಿಕೆ, ಕೋಡ್ ಹೈಲೈಟಿಂಗ್ ಮತ್ತು ಇತರ ಸುಲಭತೆಗಳೊಂದಿಗೆ ಅನುಕೂಲಕರ ಅಭಿವೃದ್ಧಿ ಪರಿಸರವನ್ನು ಒದಗಿಸುತ್ತವೆ.
-ಸ್ಥಳೀಯವಾಗಿ Jupyter ಪ್ರಾರಂಭಿಸಲು, ಕೋರ್ಸ್ ಡೈರೆಕ್ಟರಿಗೆ ಹೋಗಿ, ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಚಾಲನೆಮಾಡಿ:
+Jupyter ಅನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಪ್ರಾರಂಭಿಸಲು, ಕೋರ್ಸ್ ಡೈರೆಕ್ಟರಿಗೆ ಹೋಗಿ ಮತ್ತು ನಡಿಸಿ:
```bash
jupyter notebook
```
-ಅಥವಾ
+ ಅಥವಾ
```bash
jupyterhub
```
-ನಂತರ ನೀವು ಯಾವುದೇ `.ipynb` ಫೈಲ್ಗಳಿಗೆ ಪರಿಗಣನೆ ಮಾಡಿ, ಅವುಗಳನ್ನು ತೆರೆಯಬಹುದು ಮತ್ತು ಕೆಲಸ ಪ್ರಾರಂಭಿಸಬಹುದು.
+ ನಂತರ ನೀವು ಯಾವುದೇ `.ipynb` ಫೈಲ್ಗಳಿಗೆ ತೆರಳಿ, ಅವುಗಳನ್ನು ತೆರೆಯಬಹುದು ಮತ್ತು ಕಾರ್ಯನಿರ್ವಹಣೆ ಪ್ರಾರಂಭಿಸಬಹುದು.
-### ಕಂಟೇನರ್ನಲ್ಲಿ ಚಾಲನೆ
+### ಕಂಟೇನರ್ನಲ್ಲಿ ನಡಿಸುವುದು
-Python ಇನ್ಸ್ಟಾಲೇಶನ್ಗೆ ಒಂದು ಪರ್ಯಾಯವಾಗಿ, ಕೋಡ್ ಅನ್ನು ಕಂಟೇನರ್ನಲ್ಲಿ ಚಾಲನೆ ಮಾಡಬಹುದು. ನಮ್ಮ ಡಿಪೊ ಒಂದು ವಿಶೇಷ `.devcontainer` ಫೋಲ್ಡರ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದರಲ್ಲಿ ಈ ರೆಪೊಗೆ ಕುರಿತ ಕಂಟೇನರ್ನ ನಿರ್ಮಾಣ ನಿರ್ದೇಶನವಿದೆ; VS Code ಕೋಡ್ ಅನ್ನು ಕಂಟೇನರ್ನಲ್ಲಿ ಮರುತೆರೆದುಕೊಳ್ಳುವ ಅವಕಾಶವನ್ನು ನೀಡುತ್ತದೆ. ಇದಕ್ಕೆ Docker ಇನ್ಸ್ಟಾಲೇಶನ್ ಅಗತ್ಯವಿದ್ದು, ಸ್ವಲ್ಪ ಗართულವಾಗಿರಬಹುದಾದ್ದರಿಂದ ಅನುಭವಿಸಿದ ಬಳಕೆದಾರರಿಗೆ ಇದನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ.
+Python ಸ್ಥಾಪನೆಯ ಪರ್ಯಾಯವಾಗಿ, ನೀವು ಕೋಡ್ ಅನ್ನು ಒಂದು ಕಂಟೇನರ್ನಲ್ಲಿ ನಡಿಸಬಹುದು. ನಮ್ಮ ಥಳಿ ಒಂದು ವಿಶೇಷ `.devcontainer` ಫೋಲ್ಡರ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದು ಈ ರೆಪೋಗೆ ಕಂಟೇನರ್ ಅನ್ನು ಹೇಗೆ ನಿರ್ಮಿಸುವುದು ಎಂಬುದನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಮತ್ತು VS Code ನಿಂದ ಕೋಡ್ ಅನ್ನು ಕಂಟೇನರ್ನಲ್ಲಿ ಮರುತೆರೆೆಯಲು ಅವಕಾಶವನ್ನು ನೀಡುತ್ತದೆ. ಇದಕ್ಕೆ Docker ಸ್ಥಾಪನೆ ಅಗತ್ಯವಿದ್ದು, ಮತ್ತಷ್ಟು ಸಂಕೀರ್ಣವಾಗಿರುತ್ತದೆ. ಆದ್ದರಿಂದ, ಇದರ ಬಳಕೆ ಅನುಭವ ಹೊಂದಿರುವ ಬಳಕೆದಾರರಿಗೆ ಮಾತ್ರ ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ.
-## ಮೇಘದಲ್ಲಿ (Cloud) ಚಾಲನೆ
+## ಕ್ಲೌಡ್ನಲ್ಲಿ ನಡಿಸುವುದು
-Python ಅನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿಕೊಳ್ಳಲು ಇಚ್ಛೆ ಇಲ್ಲದಿದ್ದರೆ ಮತ್ತು ನೀವು ಕೆಲವು ಮೇಘ ಸಂಪನ್ಮೂಲಗಳ ಪ್ರವೇಶ ಹೊಂದಿದ್ದರೆ, ಕೋಡ್ ಅನ್ನು ಮೇಘದಲ್ಲಿ ಚಾಲನೆ ಮಾಡುವುದು ಉತ್ತಮ ಪರ್ಯಾಯವಾಗಿದೆ. ನೀವು ಇದನ್ನು ಮಾಡುವ ಹಲವು ಮಾರ್ಗಗಳಿವೆ:
+ನೀವು Python ಅನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಸ್ಥಾಪಿಸಲು ಇಚ್ಛಿಸುವುದಿಲ್ಲವೆಯಾದರೂ ಮತ್ತು ಕೆಲವು ಕ್ಲೌಡ್ ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಪ್ರವೇಶ ಹೊಂದಿದ್ದರೆ — ಕ್ಲೌಡ್ನಲ್ಲಿ ಕೋಡ್ ನಡಿಸುವುದು ಉತ್ತಮ ಪರ್ಯಾಯವಾಗಿರಬಹುದು. ನೀವು ಇದನ್ನು ಮಾಡಬಹುದಾದ ಕೆಲವು ವಿಧಾನಗಳಿವೆಯೆಂದು:
-* **[GitHub Codespaces](https://github.com/features/codespaces)** ಬಳಸಿ, ಇದು GitHub ಮೇಲೆ ನಿಮಗಾಗಿ ಸೃಷ್ಟಿಸಲ್ಪಟ್ಟ ವರ್ಚುವಲ್ ಪರಿಸರ, VS Code ಬ್ರೌಸರ್ ಮುಖಾಂತರ ಪ್ರವೇಶ ಸಾಧ್ಯ. ನೀವು Codespaces ಪ್ರವೇಶ ಹೊಂದಿದ್ದರೆ, ಡಿಪೊದಲ್ಲಿ **Code** ಬಟನ್ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿ, ಕೋಡ್ಸ್ಪೇಸ್ ಪ್ರಾರಂಭಿಸಿ, ಬೇಗನೆ ಕಾರ್ಯಾರಂಭಿಸಬಹುದು.
-* **[Binder](https://mybinder.org/v2/gh/microsoft/ai-for-beginners/HEAD)** ಬಳಸಿ. [Binder](https://mybinder.org) GitHub上的代码免费云计算资源,供您测试。主页有个按钮可打开仓库到Binder——这会迅速带您到Binder站点,为您构建基础容器并无缝启动Jupyter Web接口。
+* **[GitHub Codespaces](https://github.com/features/codespaces)** ಬಳಸಿ, ಇದು GitHub ಮೇಲೆ ನಿಮ್ಮಿಗಾಗಿ ರಚಿಸಲಾಗುವ ವರ್ಚುವಲ್ ಪರಿಸರವಾಗಿದೆ, ಇದು VS Code ಬ್ರೌಸರ್ ಇಂಟರ್ಫೇಸಿನ ಮೂಲಕ ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯ. ನೀವು Codespaces ಗೆ ಪ್ರವೇಶ ಹೊಂದಿದ್ದರೆ, ನೀವು ರೆಪೋನಲ್ಲಿ **Code** ಬಟ್ಟನನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ, codespace ಪ್ರಾರಂಭಿಸಿ, ಮತ್ತು ಶೀಘ್ರದಲ್ಲೇ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಆರಂಭಿಸಬಹುದು.
+* **[Binder](https://mybinder.org/v2/gh/microsoft/ai-for-beginners/HEAD)** ಬಳಸಿ. [Binder](https://mybinder.org) GitHub ನಲ್ಲಿನ ಕೆಲವು ಕೋಡ್ ಪರೀಕ್ಷಿಸಲು ಮಂದಿಗೆ ಅರ್ಪಿಸುವ ಮುಕ್ತ ಕ್ಲೌಡ್ ಗಣನೆಯ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಮುಂಭಾಗದ ಪುಟದಲ್ಲಿ ರೆಪೊನ್ನು ಬಿಂಡರ್ನಲ್ಲಿ ತೆರೆಸಲು ಒಂದು ಬಟ್ಟನಿದೆ — ಇದು ನಿಮಗೆ ವೇಗವಾಗಿ ಬಿಂಡರ್ ಸೈಟ್ಕ್ಕೆ ತಂದು ಕೊಡುವುದು, ಅದು ಒಂದು ಕಂಟೇನರ್ ನಿರ್ಮಿಸಿ ಸ್ವಯಂಚಾಲಿತ Jupyter ವೆಬ್ ಇಂಟರ್ಫೇಸನ್ನು ಪ್ರಾರಂಭಿಸುವುದರಿಂದ.
-> **ಸೂಚನೆ**: ಅವ್ಯವಸ್ಥೆ ತಡೆಯಲು, Binder ಕೆಲವು ವೆಬ್ ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಬ್ಲಾಕ್ ಮಾಡುತ್ತದೆ. ಇದರಿಂದ ಸಾರ್ವಜನಿಕ ಇಂಟರ್ನೆಟ್ನಿಂದ ಮಾದರಿಗಳು ಅಥವಾ ಡೇಟಾಸೆಟ್ಗಳನ್ನು ಪಡೆಯುವ ಕೆಲ ಕೋಡ್ ಕಾರ್ಯನಿರ್ವಹಿಸದು. ನೀವು ಕೆಲವು ಪರ್ಯಾಯಗಳನ್ನು ಕಂಡುಹಿಡಿಯಬೇಕಾಗಬಹುದು. ಜೊತೆಗೆ, Binder ನೀಡುವ ಗಣನಾ ಸಂಪನ್ಮೂಲಗಳು ಸರಳವಾಗಿವೆ, ಆದ್ದರಿಂದ ತರಬೇತಿಗು ಪ್ರಕ್ರಿಯೆ ನಿಧಾನವಾಗಬಹುದು, ವಿಶೇಷವಾಗಿ ನಂತರದ ಸಂಕೀರ್ಣ ಪಾಠಗಳಲ್ಲಿ.
+> **ಗಮನಿಸಿ**: ದುರupyೋಗವನ್ನು ತಡೆಹಿಡಿಯಲು, ಬಿಂಡರ್ ಕೆಲವು ವೆಬ್ ಸಂಪನ್ಮೂಲಗಳನ್ನು ತಡೆಹಿಡಿದಿದೆ. ಇದು ಕೆಲವು ಕೋಡ್ಗಳು ಸಾರ್ವಜನಿಕ ಅಂತರ್ಜಾಲದಿಂದ ಮಾದರಿಗಳು ಮತ್ತು/ಅಥವಾ ಡೇಟಾಸೆಟ್ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ಕಾರ್ಯನಿರ್ವಹಿಸಿ ತಡೆಯಬಹುದು. ನೀವು ಕೆಲವು ಪರಿಹಾರಗಳನ್ನು ಕಂಡುಹಿಡಿಯಬೇಕಾಗಬಹುದು. ಜೊತೆಗೆ, ಬಿಂಡರ್ ಒದಗಿಸುವ ಗಣನೆಯ ಸಂಪನ್ಮೂಲಗಳು ಆಧುನಿಕ ಅಲ್ಲ, ಆದ್ದರಿಂದ ತರಬೇತಿ ನಿಧಾನವಾಗಿರುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ನಂತರದ ಸಂಕೀರ್ಣ ಪಾಠಗಳಲ್ಲಿ.
-## GPU ಜೊತೆ ಮೇಘದಲ್ಲಿ ಚಾಲನೆ
+## GPU ಹೊಂದಿರುವ ಕ್ಲೌಡ್ನಲ್ಲಿ ನಡಿಸುವುದು
-ಈ ಪಠ್ಯಕ್ರಮದ ನಂತರದ ಕೆಲವು ಪಾಠಗಳು GPU ಬೆಂಬಲದಿಂದ ಬಹುಮಾನ ಪಡೆಯುತ್ತವೆ. ಮಾದರಿ ತರಬೇತಿ, ಉದಾಹರಣೆಗೆ, ಇಲ್ಲದಿದ್ದರೆ ತುಂಬಾ ನಿಧಾನಗತಿಯಾಗಿದೆ. ನೀವು ಪಾಲಿಸಬಹುದಾದ ಕೆಲವು ಆಯ್ಕೆಗಳು ಇವೆ, ವಿಶೇಷವಾಗಿ ನೀವು [Azure for Students](https://azure.microsoft.com/free/students/?WT.mc_id=academic-77998-cacaste) ಮೂಲಕ ಅಥವಾ ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಮೂಲಕ ಮೇಘ ಪ್ರವೇಶ ಹೊಂದಿದ್ದರೆ:
+ಈ ಪಠ್ಯಕ್ರಮದ ಕೆಲವು ನಂತರದ ಪಾಠಗಳು GPU ಬೆಂಬಲದಿಂದ ಬಹುಮಾನ ಪಡೆಯುತ್ತವೆ. ಮಾದರಿ ತರಬೆತ್ಯನ್ನು, ಉದಾಹರಣೆಗೆ, ಬೇರೆ ವಿಧಾನಗಳಿಂದ ತೀವ್ರ ನಿಧಾನವಾಗಿರಬಹುದು. ನೀವು ಕೆಲ ಆಯ್ಕೆಗಳನ್ನು ಅನುಸರಿಸಬಹುದು, ವಿಶೇಷವಾಗಿ ನೀವು [Azure for Students](https://azure.microsoft.com/free/students/?WT.mc_id=academic-77998-cacaste) ಮೂಲಕ ಅಥವಾ ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಮೂಲಕ ಕ್ಲೌಡ್ ಪ್ರವೇಶ ಹೊಂದಿದ್ದಲ್ಲಿ:
-* [ಡೇಟಾ ಸಯನ್ಸ್ ವರ್ಚುವಲ್แมชชีน್ಸ್](https://docs.microsoft.com/learn/modules/intro-to-azure-data-science-virtual-machine/?WT.mc_id=academic-77998-cacaste) ರಚಿಸಿ ಮತ್ತು Jupyter ಮೂಲಕ ಅದಕ್ಕೆ ಸಂಪರ್ಕ ಮಾಡಿಕೊಳ್ಳಿ. ನೀವು ನಂತರ ರೆಪೊವನ್ನು ಯಂತದ ಮೇಲೆ ನೇರವಾಗಿ ಕ್ಲೋನ್ ಮಾಡಿ, ಕಲಿಯಲು ಪ್ರಾರಂಭಿಸಬಹುದು. NC ಸಿರಿಯಸ್ VM ಗಳು GPU ಬೆಂಬಲ ಹೊಂದಿವೆ.
+* [ಡೇಟಾ ಸೈನ್ಸ್ ವರ್ಚುವಲ್ ಮಷೀನ್](https://docs.microsoft.com/learn/modules/intro-to-azure-data-science-virtual-machine/?WT.mc_id=academic-77998-cacaste) ರಚಿಸಿ ಮತ್ತು Jupyter ಮೂಲಕ ಸಂಪರ್ಕಿಸಿ. ನಂತರ ನೀವು ಥಳಿಯನ್ನು ನೇರವಾಗಿ ಮಷೀನ್ಗೆ ಕ್ಲೋನ್ ಮಾಡಿ, ಕಲಿಕೆ ಪ್ರಾರಂಭಿಸಬಹುದು. NC-ಸಿರಿಯಸ್ VM ಗಳು GPU ಬೆಂಬಲ ಹೊಂದಿವೆ.
-> **ಸೂಚನೆ**: ಕೆಲವು ಚಂದಾದಾರಿಕೆಗಳು, Azure for Students ಅಹಿತಕರವಾಗಿದೆ, GPU ಬೆಂಬಲವನ್ನು ತಕ್ಷಣ ಒದಗಿಸುವುದಿಲ್ಲ. ನೀವು ತಾಂತ್ರಿಕ ಸಹಾಯ ವಿನಂತಿಯನ್ನು ಸಲ್ಲಿಸಿ ಹೆಚ್ಚುವರಿ GPU ಕೋರ್ಗಳನ್ನು ಕೇಳಬೇಕಾಗಬಹುದು.
+> **ಗಮನಿಸಿ**: ಕೆಲವು ಚಂದಾದಾರಿಕೆಗಳು, Azure for Students ಸೇರಿದಂತೆ, ಡಿಫಾಲ್ಟ್ ಸ್ಟೇಟಸ್ನಲ್ಲಿ GPU ಬೆಂಬಲವನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ. ನೀವು ತಾಂತ್ರಿಕ ಬೆಂಬಲ ವಿನಂತಿಯೊಂದಿಗೆ ಹೆಚ್ಚುವರಿ GPU ಕೋರುಗಳನ್ನು ವಿನಂತಿಸಬಹುದು.
-* [Azure Machine Learning ಕಾರ್ಯಕ್ಷೇತ್ರ](https://azure.microsoft.com/services/machine-learning/?WT.mc_id=academic-77998-cacaste) ರಚಿಸಿ, ನಂತರ ಅಲ್ಲಿ ನೋಟ್ಬುಕ್ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಿಕೊಳ್ಳಿ. [ಈ ವೀಡಿಯೋ](https://azure-for-academics.github.io/quickstart/azureml-papers/)ವು ರೆಪೊವನ್ನ Azure ML ನೋಟ್ಬುಕ್ಗೆ ಹೇಗೆ ಕ್ಲೋನ್ ಮಾಡಿ ಬಳಸುವುದನ್ನು ತೋರಿಸುತ್ತದೆ.
+* [Azure Machine Learning Workspace](https://azure.microsoft.com/services/machine-learning/?WT.mc_id=academic-77998-cacaste) ರಚಿಸಿ ಮತ್ತು ನಂತರ ಅಲ್ಲಿ ನೋಟ್ಬುಕ್ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಿ. [ಈ ವಿಡಿಯೋ](https://azure-for-academics.github.io/quickstart/azureml-papers/) ಒಂದು ರೆಪೋವನ್ನು Azure ML ನೋಟ್ಬುಕ್ಗೆ ಕ್ಲೋನ್ ಮಾಡುವುದು ಮತ್ತು ಅದನ್ನು ಬಳಸುವುದನ್ನು ತೋರಿಸುತ್ತದೆ.
-ನೀವು Google Colab ಕೂಡ ಬಳಸಬಹುದು, ಇದು ಕೆಲವು ಉಚಿತ GPU ಬೆಂಬಲ ಒದಗಿಸುತ್ತದೆ, ಮತ್ತು Jupyter ನೋಟ್ಬುಕ್ಗಳನ್ನು ಅಲ್ಲಿ ಅಪ್ಲೋಡ್ ಮಾಡಿ ಒಂದೊಂದಾಗಿ ನಿರ್ವಹಿಸಬಹುದು.
+ನೀವು Google Colab ಅನ್ನು ಸಹ ಬಳಸಬಹುದು, ಇದು ಕೆಲವು ಮುಕ್ತ GPU ಬೆಂಬಲವನ್ನು ಹೊಂದಿದೆ ಮತ್ತು ಅಲ್ಲಿಗೆ Jupyter ನೋಟ್ಬುಕ್ಗಳನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿ ಒಂದೊಂದಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು.
---
-**ತಗ್ಗಿಸುವುದು**:
-ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಗೆ ಪ್ರಯತ್ನಿಸಿದರೂ ಸಹ ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ತಪ್ಪಾದ ವಿವರಗಳು ಇದ್ದಿರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿರಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿನ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ ವೃತ್ತಿಪರ ಮನುಷ್ಯ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಿರಸ್ಕಾರಗಳು ಅಥವಾ ತಪ್ಪಾಗುವ ಅರ್ಥಗಳ ಬಗ್ಗೆ ನಾವು ಜವಾಬ್ದಾರಿಯಲ್ಲ.
+**ಅಸ್ವೀಕಾರ**:
+ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯನ್ನು ಸಾಧಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ದಯವಿಟ್ಟು ಗಮನಿಸಿ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸಡ್ಡೆಗಳು ಇರಬಹುದು. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜು ಪ್ರಾಮಾಣಿಕ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದವನ್ನು ಬಳಸುವ ಮೂಲಕ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಗಳ ಅಥವಾ ತಪ್ಪು ವ್ಯಾಖ್ಯಾನಗಳ ಬಗ್ಗೆ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ.
\ No newline at end of file
diff --git a/translations/kn/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb b/translations/kn/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
index 5d12000f..82999dcd 100644
--- a/translations/kn/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
+++ b/translations/kn/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
@@ -1,1497 +1,1502 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# ಪೂರ್ವ-ಪ್ರಶಿಕ್ಷಿತ ಮಾದರಿಗಳು ಮತ್ತು ವರ್ಗಾವಣೆ ಅಧ್ಯಯನ\n",
- "\n",
- "CNNಗಳನ್ನು ತರಬೇತಿಗೊಳಿಸಲು ಬಹಳ ಸಮಯ ಬೇಕಾಗುತ್ತದೆ ಮತ್ತು ಅದಕ್ಕಾಗಿ ಹೆಚ್ಚಿನ ಡೇಟಾ ಅಗತ್ಯವಿರುತ್ತದೆ. ಆದರೆ, ಹೆಚ್ಚಿನ ಸಮಯವು ಚಿತ್ರಗಳಿಂದ ಮಾದರಿಗಳನ್ನು ಹೊರತೆಗೆಯಲು ನೆಟ್ವರ್ಕ್ ಬಳಸುವ ಅತ್ಯುತ್ತಮ ಕಡಿಮೆ-ಮಟ್ಟದ ಫಿಲ್ಟರ್ಗಳನ್ನು ಕಲಿಯಲು ವ್ಯಯವಾಗುತ್ತದೆ. ಒಂದು ಸಹಜ ಪ್ರಶ್ನೆ ಉದ್ಭವಿಸುತ್ತದೆ - ನಾವು ಒಂದು ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ತರಬೇತಿಗೊಳಿಸಿದ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು, ಸಂಪೂರ್ಣ ತರಬೇತಿ ಪ್ರಕ್ರಿಯೆಯಿಲ್ಲದೆ ವಿಭಿನ್ನ ಚಿತ್ರಗಳನ್ನು ವರ್ಗೀಕರಿಸಲು ಅದನ್ನು ಹೊಂದಿಸಬಹುದೇ?\n",
- "\n",
- "ಈ ವಿಧಾನವನ್ನು **ವರ್ಗಾವಣೆ ಅಧ್ಯಯನ** ಎಂದು ಕರೆಯುತ್ತಾರೆ, ಏಕೆಂದರೆ ನಾವು ಒಂದು ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಮಾದರಿಯಿಂದ ಇನ್ನೊಂದು ಮಾದರಿಗೆ ಕೆಲವು ಜ್ಞಾನವನ್ನು ವರ್ಗಾಯಿಸುತ್ತೇವೆ. ವರ್ಗಾವಣೆ ಅಧ್ಯಯನದಲ್ಲಿ, ನಾವು ಸಾಮಾನ್ಯವಾಗಿ ಪೂರ್ವ-ಪ್ರಶಿಕ್ಷಿತ ಮಾದರಿಯಿಂದ ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ, ಅದು **ImageNet** ಮುಂತಾದ ದೊಡ್ಡ ಚಿತ್ರ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ತರಬೇತಿಗೊಳಿಸಲಾಗಿದೆ. ಆ ಮಾದರಿಗಳು ಸಾಮಾನ್ಯ ಚಿತ್ರಗಳಿಂದ ವಿಭಿನ್ನ ಲಕ್ಷಣಗಳನ್ನು ಹೊರತೆಗೆಯಲು ಈಗಾಗಲೇ ಉತ್ತಮ ಕೆಲಸ ಮಾಡಬಹುದು, ಮತ್ತು ಬಹುತೇಕ ಸಂದರ್ಭಗಳಲ್ಲಿ ಆ ಹೊರತೆಗೆಯಲಾದ ಲಕ್ಷಣಗಳ ಮೇಲೆ ಕ್ಲಾಸಿಫೈಯರ್ ನಿರ್ಮಿಸುವುದರಿಂದ ಉತ್ತಮ ಫಲಿತಾಂಶ ಸಿಗಬಹುದು.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [],
- "source": [
- "import tensorflow as tf\n",
- "from tensorflow import keras\n",
- "import matplotlib.pyplot as plt\n",
- "import numpy as np\n",
- "import os\n",
- "from tfcv import *"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## ಬೆಕ್ಕುಗಳು ಮತ್ತು ನಾಯಿಗಳು ಡೇಟಾಸೆಟ್\n",
- "\n",
- "ಈ ಘಟಕದಲ್ಲಿ, ನಾವು ಬೆಕ್ಕುಗಳು ಮತ್ತು ನಾಯಿಗಳ ಚಿತ್ರಗಳನ್ನು ವರ್ಗೀಕರಿಸುವ ನೈಜ ಜೀವನದ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುವೆವು. ಈ ಕಾರಣಕ್ಕಾಗಿ, ನಾವು [Kaggle Cats vs. Dogs Dataset](https://www.kaggle.com/c/dogs-vs-cats) ಅನ್ನು ಬಳಸಲಿದ್ದೇವೆ, ಇದನ್ನು [Microsoft ನಿಂದ](https://www.microsoft.com/en-us/download/details.aspx?id=54765&WT.mc_id=academic-77998-cacaste) ಕೂಡ ಡೌನ್ಲೋಡ್ ಮಾಡಬಹುದು.\n",
- "\n",
- "ಈ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ `data` ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಎಕ್ಸ್ಟ್ರ್ಯಾಕ್ಟ್ ಮಾಡೋಣ (ಈ ಪ್ರಕ್ರಿಯೆಗೆ ಸ್ವಲ್ಪ ಸಮಯ ಬೇಕಾಗಬಹುದು!):\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "if not os.path.exists('data/kagglecatsanddogs_5340.zip'):\n",
- " !wget -P data https://download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_5340.zip"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [],
- "source": [
- "import zipfile\n",
- "if not os.path.exists('data/PetImages'):\n",
- " with zipfile.ZipFile('data/kagglecatsanddogs_5340.zip', 'r') as zip_ref:\n",
- " zip_ref.extractall('data')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ದುರದೃಷ್ಟವಶಾತ್, ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಕೆಲವು ಹಾಳಾದ ಚಿತ್ರ ಫೈಲ್ಗಳಿವೆ. ಹಾಳಾದ ಫೈಲ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ನಾವು ತ್ವರಿತ ಶುದ್ಧೀಕರಣ ಮಾಡಬೇಕಾಗಿದೆ. ಈ ಟ್ಯುಟೋರಿಯಲ್ ಅನ್ನು ಹಾಳುಮಾಡದಂತೆ, ಡೇಟಾಸೆಟ್ ಪರಿಶೀಲಿಸುವ ಕೋಡ್ ಅನ್ನು ಒಂದು ಮೋಡ್ಯೂಲ್ಗೆ ಸ್ಥಳಾಂತರಿಸಿದ್ದೇವೆ.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Corrupt image or wrong format: data/PetImages/Cat/12235.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/2663.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4929.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8183.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11083.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6435.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6491.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7968.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6768.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11397.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8295.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4874.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/23.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11864.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3491.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11729.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3197.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/10874.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6376.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9361.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9328.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/910.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/2021.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/666.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3710.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9171.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6906.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11095.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/660.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8415.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3161.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/850.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7003.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1267.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7642.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8553.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6900.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4334.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/10404.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6980.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/936.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9619.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3300.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7647.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/2742.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9565.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1757.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11874.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1936.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/5077.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7845.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8832.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11935.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9208.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4322.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7978.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/10820.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/391.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/10073.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8958.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8470.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/445.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4821.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11565.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4351.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4833.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/140.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3153.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/5370.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/5819.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3649.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4293.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3967.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1937.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/10125.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1386.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4750.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6029.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/5614.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/2569.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9778.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6486.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11210.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7502.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/2189.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1151.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4629.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/12080.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/10501.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1914.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11086.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4000.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9100.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/5553.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/12269.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5243.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3288.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11912.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3320.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11166.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8194.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2353.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9026.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8557.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7969.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8693.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4367.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1900.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5730.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9961.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8126.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8521.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11560.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11233.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11675.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8889.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9414.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3588.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10353.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10733.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6238.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5618.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7743.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10747.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6503.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11410.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5955.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2915.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3136.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4086.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2905.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2494.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3546.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5547.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9851.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9188.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4203.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8715.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4640.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1866.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7718.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7514.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1017.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/12102.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/296.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6718.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11253.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10173.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11849.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10383.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10678.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5790.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6318.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1884.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4654.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9145.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2479.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/12289.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2688.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4134.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10637.jpg\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/anaconda/envs/py38_tensorflow/lib/python3.8/site-packages/PIL/TiffImagePlugin.py:793: UserWarning: Truncated File Read\n",
- " warnings.warn(str(msg))\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Corrupt image or wrong format: data/PetImages/Dog/543.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8730.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/12114.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/522.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10863.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10401.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7739.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/561.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1308.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9643.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3155.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5736.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4257.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11853.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6855.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1259.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7652.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/573.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11702.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/414.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4301.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9500.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10726.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9367.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2877.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10907.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10972.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7311.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10797.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2317.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7128.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6500.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11285.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6430.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6032.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10969.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8364.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11692.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3038.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5604.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/565.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9640.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7459.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6305.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6555.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11590.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6059.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3927.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10705.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2384.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3885.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/663.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9043.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8563.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9556.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9967.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10158.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5263.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8641.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7369.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4924.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10351.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6213.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5104.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1356.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7133.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7112.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1168.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/719.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/50.jpg\n"
- ]
- }
- ],
- "source": [
- "check_image_dir('data/PetImages/Cat/*.jpg')\n",
- "check_image_dir('data/PetImages/Dog/*.jpg')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## ಡೇಟಾಸೆಟ್ ಅನ್ನು ಲೋಡ್ ಮಾಡುವುದು\n",
- "\n",
- "ಹಿಂದಿನ ಉದಾಹರಣೆಗಳಲ್ಲಿ, ನಾವು Keras ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಡೇಟಾಸೆಟ್ಗಳನ್ನು ಲೋಡ್ ಮಾಡುತ್ತಿದ್ದೆವು. ಈಗ ನಾವು ನಮ್ಮ ಸ್ವಂತ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಹ್ಯಾಂಡಲ್ ಮಾಡಬೇಕಾಗಿದೆ, ಅದನ್ನು ಚಿತ್ರಗಳ ಡೈರೆಕ್ಟರಿಯಿಂದ ಲೋಡ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.\n",
- "\n",
- "ವಾಸ್ತವಿಕ ಜೀವನದಲ್ಲಿ, ಚಿತ್ರ ಡೇಟಾಸೆಟ್ಗಳ ಗಾತ್ರ ಬಹಳ ದೊಡ್ಡದಾಗಿರಬಹುದು, ಮತ್ತು ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಮೆಮೊರಿಯಲ್ಲಿ ಇರಿಸುವುದಕ್ಕೆ ನಂಬಿಕೆ ಇಡಲಾಗುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ಡೇಟಾಸೆಟ್ಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ತರಬೇತಿಗೆ ಸೂಕ್ತವಾದ ಸಣ್ಣ ಬ್ಯಾಚ್ಗಳಲ್ಲಿ ಡೇಟಾವನ್ನು ನೀಡುವ **ಜನರೇಟರ್ಗಳು** ಆಗಿ ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ.\n",
- "\n",
- "ಚಿತ್ರ ವರ್ಗೀಕರಣವನ್ನು ಹ್ಯಾಂಡಲ್ ಮಾಡಲು, Keras ವಿಶೇಷ ಫಂಕ್ಷನ್ `image_dataset_from_directory` ಅನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದು ವಿಭಿನ್ನ ವರ್ಗಗಳಿಗೆ ಹೊಂದಿಕೊಂಡ ಉಪಡೈರೆಕ್ಟರಿಗಳಿಂದ ಚಿತ್ರಗಳನ್ನು ಲೋಡ್ ಮಾಡಬಹುದು. ಈ ಫಂಕ್ಷನ್ ಚಿತ್ರಗಳನ್ನು ಸ್ಕೇಲ್ ಮಾಡುವುದನ್ನು ಕೂಡ ನೋಡಿಕೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಡೇಟಾಸೆಟ್ ಅನ್ನು ತರಬೇತಿ ಮತ್ತು ಪರೀಕ್ಷಾ ಉಪಸಮೂಹಗಳಾಗಿ ವಿಭಜಿಸುವುದನ್ನು ಸಹ ಮಾಡಬಹುದು:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Found 24769 files belonging to 2 classes.\n",
- "Using 19816 files for training.\n",
- "Found 24769 files belonging to 2 classes.\n",
- "Using 4953 files for validation.\n"
- ]
- }
- ],
- "source": [
- "data_dir = 'data/PetImages'\n",
- "batch_size = 64\n",
- "ds_train = keras.preprocessing.image_dataset_from_directory(\n",
- " data_dir,\n",
- " validation_split = 0.2,\n",
- " subset = 'training',\n",
- " seed = 13,\n",
- " image_size = (224,224),\n",
- " batch_size = batch_size\n",
- ")\n",
- "ds_test = keras.preprocessing.image_dataset_from_directory(\n",
- " data_dir,\n",
- " validation_split = 0.2,\n",
- " subset = 'validation',\n",
- " seed = 13,\n",
- " image_size = (224,224),\n",
- " batch_size = batch_size\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ಎರಡು ಕರೆಗಳಿಗೂ ಒಂದೇ `seed` ಮೌಲ್ಯವನ್ನು ಹೊಂದಿಸುವುದು ಮುಖ್ಯ, ಏಕೆಂದರೆ ಇದು ತರಬೇತಿ ಮತ್ತು ಪರೀಕ್ಷಾ ಡೇಟಾಸೆಟ್ಗಳ ನಡುವೆ ಚಿತ್ರಗಳ ವಿಭಜನೆಗೆ ಪ್ರಭಾವ ಬೀರುತ್ತದೆ.\n",
- "\n",
- "ಡೇಟಾಸೆಟ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಡೈರೆಕ್ಟರಿಗಳಿಂದ ವರ್ಗದ ಹೆಸರುಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಅವುಗಳನ್ನು ಬೇಕಾದರೆ ಈ ಕೆಳಗಿನಂತೆ ಕರೆಮಾಡಿ ಪ್ರವೇಶಿಸಬಹುದು:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['Cat', 'Dog']"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "ds_train.class_names"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ನಾವು ಪಡೆದ ಡೇಟಾಸೆಟ್ಗಳನ್ನು ನೇರವಾಗಿ `fit` ಫಂಕ್ಷನ್ಗೆ ಪಾಸ್ ಮಾಡಿ ಮಾದರಿಯನ್ನು ತರಬೇತಿಗೆ ಒಳಪಡಿಸಬಹುದು. ಅವುಗಳಲ್ಲಿ ಸಂಬಂಧಿಸಿದ ಚಿತ್ರಗಳು ಮತ್ತು ಲೇಬಲ್ಗಳು ಎರಡೂ ಇರುತ್ತವೆ, ಅವುಗಳನ್ನು ಕೆಳಗಿನ ರಚನೆಯ ಮೂಲಕ ಲೂಪ್ ಮಾಡಬಹುದು:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Training batch shape: features=(64, 224, 224, 3), labels=(64,)\n"
- ]
- },
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "for x,y in ds_train:\n",
- " print(f\"Training batch shape: features={x.shape}, labels={y.shape}\")\n",
- " x_sample, y_sample = x,y\n",
- " break\n",
- " \n",
- "display_dataset(x_sample.numpy().astype(np.int),np.expand_dims(y_sample,1),classes=ds_train.class_names)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "> **ಗಮನಿಸಿ**: ಡೇಟಾಸೆಟ್ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಚಿತ್ರಗಳು 0-255 ಶ್ರೇಣಿಯ ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಟೆನ್ಸರ್ಗಳಾಗಿ ಪ್ರತಿನಿಧಿಸಲಾಗಿವೆ. ಅವುಗಳನ್ನು ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗೆ ಪಾಸ್ ಮಾಡುವ ಮೊದಲು, ಆ ಮೌಲ್ಯಗಳನ್ನು 0-1 ಶ್ರೇಣಿಗೆ ಸ್ಕೇಲ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಚಿತ್ರಗಳನ್ನು ಪ್ಲಾಟ್ ಮಾಡುವಾಗ, ನಾವು ಅದೇ ಕೆಲಸ ಮಾಡಬೇಕಾಗುತ್ತದೆ ಅಥವಾ ಮೌಲ್ಯಗಳನ್ನು `int` ಪ್ರಕಾರಕ್ಕೆ ಪರಿವರ್ತಿಸಬೇಕು (ಮೇಲಿನ ಕೋಡ್ನಲ್ಲಿ ನಾವು ಮಾಡಿರುವಂತೆ), ಇದರಿಂದ `matplotlib`ಗೆ ನಾವು ಮೂಲ ಅಸ್ಕೇಲ್ಡ್ ಆಗದ ಚಿತ್ರವನ್ನು ಪ್ಲಾಟ್ ಮಾಡಲು ಬಯಸುತ್ತೇವೆ ಎಂದು ತೋರಿಸಬಹುದು.\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## ಪೂರ್ವ-ತರಬೇತಿ ಪಡೆದ ಮಾದರಿಗಳು\n",
- "\n",
- "ಬಹುತೆಕ ಚಿತ್ರ ವರ್ಗೀಕರಣ ಕಾರ್ಯಗಳಿಗೆ ಪೂರ್ವ-ತರಬೇತಿ ಪಡೆದ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಮಾದರಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯಬಹುದು. ಆ ಮಾದರಿಗಳಲ್ಲಿ ಬಹುತೇಕವು `keras.applications` ನಾಮಸ್ಥಳದಲ್ಲಿ ಲಭ್ಯವಿದ್ದು, ಇನ್ನಷ್ಟು ಮಾದರಿಗಳನ್ನು ಇಂಟರ್ನೆಟ್ನಲ್ಲಿ ಕೂಡ ಹುಡುಕಬಹುದು. ಸರಳವಾದ VGG-16 ಮಾದರಿಯನ್ನು ಹೇಗೆ ಲೋಡ್ ಮಾಡಿ ಬಳಸಬಹುದು ಎಂದು ನೋಡೋಣ:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels.h5\n",
- "553467904/553467096 [==============================] - 6s 0us/step\n",
- "Most probable class = [208]\n",
- "Downloading data from https://storage.googleapis.com/download.tensorflow.org/data/imagenet_class_index.json\n",
- "40960/35363 [==================================] - 0s 0us/step\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- "[[('n02099712', 'Labrador_retriever', 0.5340957),\n",
- " ('n02100236', 'German_short-haired_pointer', 0.0939442),\n",
- " ('n02092339', 'Weimaraner', 0.08160535),\n",
- " ('n02099849', 'Chesapeake_Bay_retriever', 0.057179328),\n",
- " ('n02109047', 'Great_Dane', 0.03733857)]]"
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "vgg = keras.applications.VGG16()\n",
- "inp = keras.applications.vgg16.preprocess_input(x_sample[:1])\n",
- "\n",
- "res = vgg(inp)\n",
- "print(f\"Most probable class = {tf.argmax(res,1)}\")\n",
- "\n",
- "keras.applications.vgg16.decode_predictions(res.numpy())"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ಇಲ್ಲಿ ಕೆಲವು ಪ್ರಮುಖ ವಿಷಯಗಳಿವೆ:\n",
- "* ಯಾವುದೇ ಪೂರ್ವ-ಪ್ರಶಿಕ್ಷಿತ ನೆಟ್ವರ್ಕ್ಗೆ ಇನ್ಪುಟ್ ನೀಡುವ ಮೊದಲು ಅದನ್ನು ನಿರ್ದಿಷ್ಟ ರೀತಿಯಲ್ಲಿ ಪೂರ್ವ-ಪ್ರಕ್ರಿಯೆ ಮಾಡಬೇಕು. ಇದನ್ನು ಸಂಬಂಧಿತ `preprocess_input` ಫಂಕ್ಷನ್ ಅನ್ನು ಕರೆಸುವ ಮೂಲಕ ಮಾಡಲಾಗುತ್ತದೆ, ಇದು ಚಿತ್ರಗಳ ಬ್ಯಾಚ್ ಅನ್ನು ಸ್ವೀಕರಿಸಿ, ಅವುಗಳ ಪ್ರಕ್ರಿಯೆಗೊಂಡ ರೂಪವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. VGG-16 ನ ಪ್ರಕರಣದಲ್ಲಿ, ಚಿತ್ರಗಳನ್ನು ಸಾಮಾನ್ಯೀಕರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ಚಾನೆಲ್ಗೆ ಪೂರ್ವನಿರ್ಧರಿತ ಸರಾಸರಿ ಮೌಲ್ಯವನ್ನು ಕಡಿತ ಮಾಡಲಾಗುತ್ತದೆ. ಇದಕ್ಕೆ ಕಾರಣ VGG-16 ಮೂಲತಃ ಈ ಪೂರ್ವ-ಪ್ರಕ್ರಿಯೆಯೊಂದಿಗೆ ತರಬೇತುಗೊಂಡಿದೆ.\n",
- "* ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಇನ್ಪುಟ್ ಬ್ಯಾಚ್ಗೆ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಫಲಿತಾಂಶವಾಗಿ ಪ್ರತಿ ವರ್ಗದ ಸಾಧ್ಯತೆಗಳನ್ನು ತೋರಿಸುವ 1000-ಘಟಕಗಳ ಟೆನ್ಸರ್ ಬ್ಯಾಚ್ ಅನ್ನು ಪಡೆಯುತ್ತೇವೆ. ಈ ಟೆನ್ಸರ್ ಮೇಲೆ `argmax` ಅನ್ನು ಕರೆಸಿ ಅತ್ಯಂತ ಸಾಧ್ಯತೆಯಿರುವ ವರ್ಗ ಸಂಖ್ಯೆಯನ್ನು ಕಂಡುಹಿಡಿಯಬಹುದು.\n",
- "* ಪಡೆದ ಫಲಿತಾಂಶವು [`ImageNet` ವರ್ಗದ ಸಂಖ್ಯೆ](https://gist.github.com/yrevar/942d3a0ac09ec9e5eb3a) ಆಗಿದೆ. ಈ ಫಲಿತಾಂಶವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು, ನಾವು `decode_predictions` ಫಂಕ್ಷನ್ ಅನ್ನು ಸಹ ಬಳಸಬಹುದು, ಇದು ಟಾಪ್ n ವರ್ಗಗಳನ್ನು ಅವುಗಳ ಹೆಸರಿನೊಂದಿಗೆ ಹಿಂತಿರುಗಿಸುತ್ತದೆ.\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ನಾವು VGG-16 ನೆಟ್ವರ್ಕ್ನ ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ಕೂಡ ನೋಡೋಣ:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Model: \"vgg16\"\n",
- "_________________________________________________________________\n",
- "Layer (type) Output Shape Param # \n",
- "=================================================================\n",
- "input_1 (InputLayer) [(None, 224, 224, 3)] 0 \n",
- "_________________________________________________________________\n",
- "block1_conv1 (Conv2D) (None, 224, 224, 64) 1792 \n",
- "_________________________________________________________________\n",
- "block1_conv2 (Conv2D) (None, 224, 224, 64) 36928 \n",
- "_________________________________________________________________\n",
- "block1_pool (MaxPooling2D) (None, 112, 112, 64) 0 \n",
- "_________________________________________________________________\n",
- "block2_conv1 (Conv2D) (None, 112, 112, 128) 73856 \n",
- "_________________________________________________________________\n",
- "block2_conv2 (Conv2D) (None, 112, 112, 128) 147584 \n",
- "_________________________________________________________________\n",
- "block2_pool (MaxPooling2D) (None, 56, 56, 128) 0 \n",
- "_________________________________________________________________\n",
- "block3_conv1 (Conv2D) (None, 56, 56, 256) 295168 \n",
- "_________________________________________________________________\n",
- "block3_conv2 (Conv2D) (None, 56, 56, 256) 590080 \n",
- "_________________________________________________________________\n",
- "block3_conv3 (Conv2D) (None, 56, 56, 256) 590080 \n",
- "_________________________________________________________________\n",
- "block3_pool (MaxPooling2D) (None, 28, 28, 256) 0 \n",
- "_________________________________________________________________\n",
- "block4_conv1 (Conv2D) (None, 28, 28, 512) 1180160 \n",
- "_________________________________________________________________\n",
- "block4_conv2 (Conv2D) (None, 28, 28, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block4_conv3 (Conv2D) (None, 28, 28, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block4_pool (MaxPooling2D) (None, 14, 14, 512) 0 \n",
- "_________________________________________________________________\n",
- "block5_conv1 (Conv2D) (None, 14, 14, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block5_conv2 (Conv2D) (None, 14, 14, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block5_conv3 (Conv2D) (None, 14, 14, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block5_pool (MaxPooling2D) (None, 7, 7, 512) 0 \n",
- "_________________________________________________________________\n",
- "flatten (Flatten) (None, 25088) 0 \n",
- "_________________________________________________________________\n",
- "fc1 (Dense) (None, 4096) 102764544 \n",
- "_________________________________________________________________\n",
- "fc2 (Dense) (None, 4096) 16781312 \n",
- "_________________________________________________________________\n",
- "predictions (Dense) (None, 1000) 4097000 \n",
- "=================================================================\n",
- "Total params: 138,357,544\n",
- "Trainable params: 138,357,544\n",
- "Non-trainable params: 0\n",
- "_________________________________________________________________\n"
- ]
- }
- ],
- "source": [
- "vgg.summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## GPU ಗಣನೆಗಳು\n",
- "\n",
- "VGG-16 ಮತ್ತು ಇತರ ಆಧುನಿಕ ಆರ್ಕಿಟೆಕ್ಚರ್ಗಳಂತಹ ಡೀಪ್ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಸಾಕಷ್ಟು ಗಣನಾಶಕ್ತಿಯನ್ನು ಅಗತ್ಯವಿರುತ್ತದೆ. GPU ವೇಗವರ್ಧನೆ ಲಭ್ಯವಿದ್ದರೆ ಅದನ್ನು ಬಳಸುವುದು ತಕ್ಕದ್ದು. ಭಾಗ್ಯವಶಾತ್, Keras ಲಭ್ಯವಿದ್ದರೆ GPU ಮೇಲೆ ಗಣನೆಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ವೇಗಗೊಳಿಸುತ್ತದೆ. Tensorflow GPU ಬಳಸಬಹುದೇ ಎಂದು ಕೆಳಗಿನ ಕೋಡ್ ಮೂಲಕ ಪರಿಶೀಲಿಸಬಹುದು:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "tf.config.list_physical_devices('GPU')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## VGG ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಹೊರತೆಗೆಯುವುದು\n",
- "\n",
- "ನಾವು ನಮ್ಮ ಚಿತ್ರಗಳಿಂದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಹೊರತೆಗೆಯಲು VGG-16 ಅನ್ನು ಬಳಸಬೇಕಾದರೆ, ಅಂತಿಮ ವರ್ಗೀಕರಣ ಪದರಗಳಿಲ್ಲದ ಮಾದರಿಯನ್ನು ಬೇಕಾಗುತ್ತದೆ. ಮೇಲಿನ ಪದರಗಳಿಲ್ಲದೆ VGG-16 ಮಾದರಿಯನ್ನು ಈ ಕೋಡ್ ಬಳಸಿ ಸೃಷ್ಟಿಸಬಹುದು:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Shape after applying VGG-16: (7, 7, 512)\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 15,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "vgg = keras.applications.VGG16(include_top=False)\n",
- "\n",
- "inp = keras.applications.vgg16.preprocess_input(x_sample[:1])\n",
- "res = vgg(inp)\n",
- "print(f\"Shape after applying VGG-16: {res[0].shape}\")\n",
- "plt.figure(figsize=(15,3))\n",
- "plt.imshow(res[0].numpy().reshape(-1,512))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ಫೀಚರ್ ಟೆನ್ಸರ್ನ ಆಯಾಮ 7x7x512 ಆಗಿದೆ, ಆದರೆ ಅದನ್ನು ದೃಶ್ಯೀಕರಿಸಲು ನಾವು ಅದನ್ನು 2D ರೂಪಕ್ಕೆ ಮರುರೂಪಿಸಬೇಕಾಯಿತು.\n",
- "\n",
- "ಈಗ ಆ ಫೀಚರ್ಗಳನ್ನು ಚಿತ್ರಗಳನ್ನು ವರ್ಗೀಕರಿಸಲು ಬಳಸಬಹುದೇ ಎಂದು ನೋಡೋಣ. ಕೈಯಿಂದ ಕೆಲವು ಚಿತ್ರಗಳ ಭಾಗವನ್ನು (ನಮ್ಮ ಪ್ರಕರಣದಲ್ಲಿ 50 ಮಿನಿಬ್ಯಾಚ್ಗಳು) ತೆಗೆದು, ಅವುಗಳ ಫೀಚರ್ ವೆಕ್ಟರ್ಗಳನ್ನು ಪೂರ್ವಗಣನೆ ಮಾಡೋಣ. ಅದಕ್ಕಾಗಿ ನಾವು Tensorflow **dataset** API ಅನ್ನು ಬಳಸಬಹುದು. `map` ಫಂಕ್ಷನ್ ಒಂದು ಡೇಟಾಸೆಟ್ ಅನ್ನು ತೆಗೆದು, ನೀಡಲಾದ ಲ್ಯಾಂಬ್ಡಾ-ಫಂಕ್ಷನ್ ಅನ್ನು ಅನ್ವಯಿಸಿ ಅದನ್ನು ಪರಿವರ್ತಿಸುತ್ತದೆ. ಈ ವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು ನಾವು ಮೂಲ ಚಿತ್ರಗಳ ಬದಲು VGG-ನಿಂದ ಪಡೆದ ಫೀಚರ್ಗಳನ್ನು ಹೊಂದಿರುವ ಹೊಸ ಡೇಟಾಸೆಟ್ಗಳು, `ds_features_train` ಮತ್ತು `ds_features_test` ಅನ್ನು ರಚಿಸುತ್ತೇವೆ.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 41,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "(64, 7, 7, 512) (64,)\n"
- ]
- }
- ],
- "source": [
- "num = batch_size*50\n",
- "ds_features_train = ds_train.take(50).map(lambda x,y : (vgg(x),y))\n",
- "ds_features_test = ds_test.take(10).map(lambda x,y : (vgg(x),y))\n",
- "\n",
- "for x,y in ds_features_train:\n",
- " print(x.shape,y.shape)\n",
- " break"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ನಾವು ನಮ್ಮ ಪ್ರದರ್ಶನವನ್ನು ವೇಗಗೊಳಿಸಲು ಡೇಟಾಸೆಟ್ ಗಾತ್ರವನ್ನು ಮಿತಿಗೊಳಿಸಲು `.take(50)` ರಚನೆಯನ್ನು ಬಳಸಿದ್ದೇವೆ. ನೀವು ನಿಶ್ಚಿತವಾಗಿ ಈ ಪ್ರಯೋಗವನ್ನು ಸಂಪೂರ್ಣ ಡೇಟಾಸೆಟ್ ಮೇಲೆ ನಡೆಸಬಹುದು.\n",
- "\n",
- "ಈಗ ನಾವು ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಹೊರತೆಗೆಯಲಾದ ಡೇಟಾಸೆಟ್ ಹೊಂದಿದ್ದೇವೆ, ನಾವು ಬೆಕ್ಕು ಮತ್ತು ನಾಯಿ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಗುರುತಿಸಲು ಸರಳ ಡೆನ್ಸ್ ವರ್ಗೀಕರಣವನ್ನು ತರಬೇತುಗೊಳಿಸಬಹುದು. ಈ ನೆಟ್ವರ್ಕ್ (7,7,512) ಆಕಾರದ ವೈಶಿಷ್ಟ್ಯ ವೆಕ್ಟರ್ ಅನ್ನು ತೆಗೆದು, ನಾಯಿ ಅಥವಾ ಬೆಕ್ಕಿಗೆ ಹೊಂದುವ ಒಂದು ಔಟ್ಪುಟ್ ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ. ಇದು ದ್ವಿಮುಖ ವರ್ಗೀಕರಣವಾಗಿರುವುದರಿಂದ, ನಾವು `sigmoid` ಸಕ್ರಿಯತೆ ಕಾರ್ಯ ಮತ್ತು `binary_crossentropy` ನಷ್ಟವನ್ನು ಬಳಸುತ್ತೇವೆ.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 44,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "50/50 [==============================] - 1896s 38s/step - loss: 1.4845 - acc: 0.9144 - val_loss: 0.7220 - val_acc: 0.9516\n"
- ]
- }
- ],
- "source": [
- "model = keras.models.Sequential([\n",
- " keras.layers.Flatten(input_shape=(7,7,512)),\n",
- " keras.layers.Dense(1,activation='sigmoid')\n",
- "])\n",
- "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])\n",
- "hist = model.fit(ds_features_train, validation_data=ds_features_test)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ಫಲಿತಾಂಶ ಅದ್ಭುತವಾಗಿದೆ, ನಾವು ಬೆಕ್ಕು ಮತ್ತು ನಾಯಿ ನಡುವಿನ ಭೇದವನ್ನು ಸುಮಾರು 95% ಸಾಧ್ಯತೆಯಿಂದ ಗುರುತಿಸಬಹುದು! ಆದರೆ, ನಾವು ಈ ವಿಧಾನವನ್ನು ಎಲ್ಲಾ ಚಿತ್ರಗಳ ಉಪಸಮೂಹದಲ್ಲಿ ಮಾತ್ರ ಪರೀಕ್ಷಿಸಿದ್ದೇವೆ, ಏಕೆಂದರೆ ಕೈಯಿಂದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಹೊರತೆಗೆಯುವುದು ಬಹಳ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಎಂದು ತೋರುತ್ತದೆ.\n",
- "\n",
- "## ಒಂದು VGG ನೆಟ್ವರ್ಕ್ ಬಳಸಿ ಟ್ರಾನ್ಸ್ಫರ್ ಲರ್ನಿಂಗ್\n",
- "\n",
- "ಮೂಲ VGG-16 ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ತರಬೇತಿಯಲ್ಲಿ ಬಳಸಿಕೊಂಡು, ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಕೈಯಿಂದ ಪೂರ್ವಗಣನೆ ಮಾಡುವುದು ತಪ್ಪಿಸಬಹುದು, ನಮ್ಮ ನೆಟ್ವರ್ಕ್ಗೆ ಮೊದಲ ಲೇಯರ್ ಆಗಿ ವೈಶಿಷ್ಟ್ಯ ಹೊರತೆಗೆಯುವ ಘಟಕವನ್ನು ಸೇರಿಸುವ ಮೂಲಕ.\n",
- "\n",
- "ಕೆರಾಸ್ ವಾಸ್ತುಶಿಲ್ಪದ ಸೌಂದರ್ಯವೆಂದರೆ, ನಾವು ಮೇಲ್ನೋಟದಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಿದ VGG-16 ಮಾದರಿಯನ್ನು ಇನ್ನೊಂದು ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಲೇಯರ್ ಆಗಿ ಬಳಸಬಹುದು! ನಾವು ಅದಕ್ಕೆ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಡೆನ್ಸ್ ವರ್ಗೀಕರಣಕಾರಿಯನ್ನು ನಿರ್ಮಿಸಿ, ನಂತರ ಬ್ಯಾಕ್ ಪ್ರೋಪಗೇಶನ್ ಬಳಸಿ ಸಂಪೂರ್ಣ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ತರಬೇತಿಗೊಳಿಸಬಹುದು.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Model: \"sequential\"\n",
- "_________________________________________________________________\n",
- "Layer (type) Output Shape Param # \n",
- "=================================================================\n",
- "vgg16 (Functional) (None, 7, 7, 512) 14714688 \n",
- "_________________________________________________________________\n",
- "flatten (Flatten) (None, 25088) 0 \n",
- "_________________________________________________________________\n",
- "dense (Dense) (None, 1) 25089 \n",
- "=================================================================\n",
- "Total params: 14,739,777\n",
- "Trainable params: 25,089\n",
- "Non-trainable params: 14,714,688\n",
- "_________________________________________________________________\n"
- ]
- }
- ],
- "source": [
- "model = keras.models.Sequential()\n",
- "model.add(keras.applications.VGG16(include_top=False,input_shape=(224,224,3)))\n",
- "model.add(keras.layers.Flatten())\n",
- "model.add(keras.layers.Dense(1,activation='sigmoid'))\n",
- "\n",
- "model.layers[0].trainable = False\n",
- "\n",
- "model.summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ಈ ಮಾದರಿ ಒಂದು ಎಂಡ್-ಟು-ಎಂಡ್ ವರ್ಗೀಕರಣ ನೆಟ್ವರ್ಕ್ ಆಗಿದ್ದು, ಇದು ಚಿತ್ರವನ್ನು ತೆಗೆದುಕೊಂಡು ವರ್ಗವನ್ನು ನೀಡುತ್ತದೆ. ಆದರೆ, ಕಷ್ಟದ ವಿಷಯವೆಂದರೆ ನಾವು VGG16 ಅನ್ನು ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಸಾಧನವಾಗಿ ಬಳಸಬೇಕು, ಮತ್ತು ಅದನ್ನು ಮರು-ಪ್ರಶಿಕ್ಷಣ ಮಾಡಬಾರದು. ಆದ್ದರಿಂದ, ನಾವು **ಕನ್ವಲ್ಯೂಷನಲ್ ವೈಶಿಷ್ಟ್ಯಗಳ ತೂಕಗಳನ್ನು ಫ್ರೀಜ್ ಮಾಡಬೇಕು**. ನಾವು ನೆಟ್ವರ್ಕ್ನ ಮೊದಲ ಲೇಯರ್ಗೆ `model.layers[0]` ಅನ್ನು ಕರೆಸಿ ಪ್ರವೇಶಿಸಬಹುದು, ಮತ್ತು `trainable` ಗುಣಲಕ್ಷಣವನ್ನು `False` ಗೆ ಸೆಟ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.\n",
- "\n",
- "> **Note**: ವೈಶಿಷ್ಟ್ಯಗಳ ತೂಕಗಳನ್ನು ಫ್ರೀಜ್ ಮಾಡುವುದು ಅಗತ್ಯ, ಏಕೆಂದರೆ ಇಲ್ಲದಿದ್ದರೆ ತರಬೇತಿಗೊಳ್ಳದ ವರ್ಗೀಕರಣ ಲೇಯರ್ ಮೂಲ ಪೂರ್ವ-ತರಬೇತಿಗೊಂಡ ಕನ್ವಲ್ಯೂಷನಲ್ ತೂಕಗಳನ್ನು ಹಾಳುಮಾಡಬಹುದು.\n",
- "\n",
- "ನಮ್ಮ ನೆಟ್ವರ್ಕ್ನ ಒಟ್ಟು ಪ್ಯಾರಾಮೀಟರ್ಗಳ ಸಂಖ್ಯೆ ಸುಮಾರು 15 ಮಿಲಿಯನ್ ಇದ್ದರೂ, ನಾವು ಕೇವಲ 25 ಸಾವಿರ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ಮಾತ್ರ ತರಬೇತಿಗೊಳಿಸುತ್ತಿದ್ದೇವೆ ಎಂದು ನೀವು ಗಮನಿಸಬಹುದು. ಮೇಲ್ಮಟ್ಟದ ಕನ್ವಲ್ಯೂಷನಲ್ ಫಿಲ್ಟರ್ಗಳ ಇತರ ಎಲ್ಲಾ ಪ್ಯಾರಾಮೀಟರ್ಗಳು ಪೂರ್ವ-ತರಬೇತಿಗೊಂಡವು. ಇದು ಉತ್ತಮ, ಏಕೆಂದರೆ ನಾವು ಕಡಿಮೆ ಸಂಖ್ಯೆಯ ಉದಾಹರಣೆಗಳೊಂದಿಗೆ ಕಡಿಮೆ ಸಂಖ್ಯೆಯ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ಸೂಕ್ಷ್ಮವಾಗಿ ಹೊಂದಿಸಬಹುದು.\n",
- "\n",
- "ನಾವು ಈಗ ನಮ್ಮ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ತರಬೇತಿಗೊಳಿಸಿ, ಎಷ್ಟು ಉತ್ತಮವಾಗಬಹುದು ಎಂದು ನೋಡೋಣ. ನಿರೀಕ್ಷಿಸಿ, ಕಾರ್ಯಾಚರಣೆ ಸ್ವಲ್ಪ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು, ಮತ್ತು ಕಾರ್ಯಾಚರಣೆ ಕೆಲವು ಸಮಯಕ್ಕೆ ಸ್ಥಗಿತಗೊಂಡಂತೆ ಕಾಣಿಸಿದರೂ ಚಿಂತೆ ಮಾಡಬೇಡಿ.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "310/310 [==============================] - 265s 716ms/step - loss: 0.9917 - acc: 0.9512 - val_loss: 0.8156 - val_acc: 0.9671\n"
- ]
- }
- ],
- "source": [
- "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])\n",
- "hist = model.fit(ds_train, validation_data=ds_test)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ನಾವು ಸಾಕಷ್ಟು ನಿಖರವಾದ ಬೆಕ್ಕುಗಳು ಮತ್ತು ನಾಯಿ ವರ್ಗೀಕರಣವನ್ನು ಪಡೆದಿದ್ದೇವೆ ಎಂದು ತೋರುತ್ತದೆ!\n",
- "\n",
- "## ಮಾದರಿಯನ್ನು ಉಳಿಸುವುದು ಮತ್ತು ಲೋಡ್ ಮಾಡುವುದು\n",
- "\n",
- "ನಾವು ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡಿದ ನಂತರ, ಭವಿಷ್ಯದಲ್ಲಿ ಬಳಸಲು ಮಾದರಿ ರಚನೆ ಮತ್ತು ತರಬೇತಿಗೊಂಡ ತೂಕಗಳನ್ನು ಫೈಲ್ಗೆ ಉಳಿಸಬಹುದು:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "INFO:tensorflow:Assets written to: data/cats_dogs.tf/assets\n"
- ]
- }
- ],
- "source": [
- "model.save('data/cats_dogs.tf')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ನಾವು ನಂತರ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಫೈಲ್ನಿಂದ ಮಾದರಿಯನ್ನು ಲೋಡ್ ಮಾಡಬಹುದು. ಮುಂದಿನ ಪ್ರಯೋಗವು ಮಾದರಿಯನ್ನು ನಾಶಮಾಡಿದರೆ ಇದು ನಿಮಗೆ ಉಪಯುಕ್ತವಾಗಬಹುದು - ನೀವು ಆರಂಭದಿಂದಲೇ ಪುನಃ ಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [],
- "source": [
- "model = keras.models.load_model('data/cats_dogs.tf')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## ಫೈನ್-ಟ್ಯೂನಿಂಗ್ ಟ್ರಾನ್ಸ್ಫರ್ ಲರ್ನಿಂಗ್\n",
- "\n",
- "ಹಿಂದಿನ ವಿಭಾಗದಲ್ಲಿ, ನಾವು ನಮ್ಮದೇ ಡೇಟಾಸೆಟ್ನ ಚಿತ್ರಗಳನ್ನು ವರ್ಗೀಕರಿಸಲು ಅಂತಿಮ ವರ್ಗೀಕರಣ ಲೇಯರ್ ಅನ್ನು ತರಬೇತುಗೊಂಡಿದ್ದೇವೆ. ಆದರೆ, ನಾವು ಫೀಚರ್ ಎಕ್ಸ್ಟ್ರ್ಯಾಕ್ಟರ್ ಅನ್ನು ಮರುತರಬೇತುಗೊಳಿಸಿಲ್ಲ, ಮತ್ತು ನಮ್ಮ ಮಾದರಿ ImageNet ಡೇಟಾದ ಮೇಲೆ ಕಲಿತ ಫೀಚರ್ಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ. ನಿಮ್ಮ ವಸ್ತುಗಳು ಸಾಮಾನ್ಯ ImageNet ಚಿತ್ರಗಳಿಂದ ದೃಶ್ಯವಾಗಿ ಭಿನ್ನವಾಗಿದ್ದರೆ, ಈ ಫೀಚರ್ಗಳ ಸಂಯೋಜನೆ ಉತ್ತಮವಾಗಿ ಕೆಲಸ ಮಾಡದಿರಬಹುದು. ಆದ್ದರಿಂದ, ಕಾನ್ವಲ್ಯೂಷನಲ್ ಲೇಯರ್ಗಳನ್ನು ಕೂಡ ತರಬೇತುಗೊಳಿಸುವುದು ಅರ್ಥಪೂರ್ಣ.\n",
- "\n",
- "ಅದಕ್ಕಾಗಿ, ನಾವು ಹಿಂದಿನ ಬಾರಿ ಫ್ರೀಜ್ ಮಾಡಿದ್ದ ಕಾನ್ವಲ್ಯೂಷನಲ್ ಫಿಲ್ಟರ್ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ಅನ್ಫ್ರೀಜ್ ಮಾಡಬಹುದು.\n",
- "\n",
- "> **Note:** ಮೊದಲಿಗೆ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ಫ್ರೀಜ್ ಮಾಡಿ, ನಂತರ ವರ್ಗೀಕರಣ ಲೇಯರ್ನ ತೂಕಗಳನ್ನು ಸ್ಥಿರಗೊಳಿಸಲು ಹಲವಾರು ಎಪೋಕ್ಗಳ ತರಬೇತಿ ನಡೆಸುವುದು ಮುಖ್ಯ. ನೀವು ತಕ್ಷಣವೇ ಅನ್ಫ್ರೀಜ್ ಮಾಡಿದ ಪ್ಯಾರಾಮೀಟರ್ಗಳೊಂದಿಗೆ ಎಂಡ್-ಟು-ಎಂಡ್ ನೆಟ್ವರ್ಕ್ ತರಬೇತಿ ಪ್ರಾರಂಭಿಸಿದರೆ, ದೊಡ್ಡ ದೋಷಗಳು ಕಾನ್ವಲ್ಯೂಷನಲ್ ಲೇಯರ್ಗಳ ಪೂರ್ವ-ತರಬೇತುಗೊಂಡ ತೂಕಗಳನ್ನು ಹಾಳುಮಾಡಬಹುದು.\n",
- "\n",
- "ನಮ್ಮ ಕಾನ್ವಲ್ಯೂಷನಲ್ VGG-16 ಮಾದರಿ ಮೊದಲ ಲೇಯರ್ ಒಳಗೆ ಇದೆ, ಮತ್ತು ಅದು ಅನೇಕ ಲೇಯರ್ಗಳಿಂದ ಕೂಡಿದೆ. ಅದರ ರಚನೆಯನ್ನು ನೋಡಬಹುದು:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Model: \"vgg16\"\n",
- "_________________________________________________________________\n",
- "Layer (type) Output Shape Param # \n",
- "=================================================================\n",
- "input_1 (InputLayer) [(None, 224, 224, 3)] 0 \n",
- "_________________________________________________________________\n",
- "block1_conv1 (Conv2D) (None, 224, 224, 64) 1792 \n",
- "_________________________________________________________________\n",
- "block1_conv2 (Conv2D) (None, 224, 224, 64) 36928 \n",
- "_________________________________________________________________\n",
- "block1_pool (MaxPooling2D) (None, 112, 112, 64) 0 \n",
- "_________________________________________________________________\n",
- "block2_conv1 (Conv2D) (None, 112, 112, 128) 73856 \n",
- "_________________________________________________________________\n",
- "block2_conv2 (Conv2D) (None, 112, 112, 128) 147584 \n",
- "_________________________________________________________________\n",
- "block2_pool (MaxPooling2D) (None, 56, 56, 128) 0 \n",
- "_________________________________________________________________\n",
- "block3_conv1 (Conv2D) (None, 56, 56, 256) 295168 \n",
- "_________________________________________________________________\n",
- "block3_conv2 (Conv2D) (None, 56, 56, 256) 590080 \n",
- "_________________________________________________________________\n",
- "block3_conv3 (Conv2D) (None, 56, 56, 256) 590080 \n",
- "_________________________________________________________________\n",
- "block3_pool (MaxPooling2D) (None, 28, 28, 256) 0 \n",
- "_________________________________________________________________\n",
- "block4_conv1 (Conv2D) (None, 28, 28, 512) 1180160 \n",
- "_________________________________________________________________\n",
- "block4_conv2 (Conv2D) (None, 28, 28, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block4_conv3 (Conv2D) (None, 28, 28, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block4_pool (MaxPooling2D) (None, 14, 14, 512) 0 \n",
- "_________________________________________________________________\n",
- "block5_conv1 (Conv2D) (None, 14, 14, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block5_conv2 (Conv2D) (None, 14, 14, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block5_conv3 (Conv2D) (None, 14, 14, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block5_pool (MaxPooling2D) (None, 7, 7, 512) 0 \n",
- "=================================================================\n",
- "Total params: 14,714,688\n",
- "Trainable params: 0\n",
- "Non-trainable params: 14,714,688\n",
- "_________________________________________________________________\n"
- ]
- }
- ],
- "source": [
- "model.layers[0].summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ನಾವು ಸಂಯೋಜನಾ ಆಧಾರದ ಎಲ್ಲಾ ಪದರಗಳನ್ನು ಅನ್ಫ್ರೀಜ್ ಮಾಡಬಹುದು:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "model.layers[0].trainable = True"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ಆದರೆ, ಎಲ್ಲವನ್ನೂ ಒಂದೇ ಸಮಯದಲ್ಲಿ ಅನ್ಫ್ರೀಜ್ ಮಾಡುವುದು ಉತ್ತಮ ಐಡಿಯಾ ಅಲ್ಲ. ನಾವು ಮೊದಲು ಕೆಲವು ಕೊನೆಯ ಕನ್ವಲ್ಯೂಷನ್ ಲೇಯರ್ಗಳನ್ನು ಮಾತ್ರ ಅನ್ಫ್ರೀಜ್ ಮಾಡಬಹುದು, ಏಕೆಂದರೆ ಅವು ನಮ್ಮ ಚಿತ್ರಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಉನ್ನತ ಮಟ್ಟದ ಮಾದರಿಗಳನ್ನು ಹೊಂದಿವೆ. ಉದಾಹರಣೆಗೆ, ಪ್ರಾರಂಭಿಸಲು, ನಾವು ಕೊನೆಯ 4 ಲೇಯರ್ಗಳನ್ನು ಹೊರತುಪಡಿಸಿ ಎಲ್ಲಾ ಲೇಯರ್ಗಳನ್ನು ಫ್ರೀಜ್ ಮಾಡಬಹುದು:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Model: \"sequential\"\n",
- "_________________________________________________________________\n",
- "Layer (type) Output Shape Param # \n",
- "=================================================================\n",
- "vgg16 (Functional) (None, 7, 7, 512) 14714688 \n",
- "_________________________________________________________________\n",
- "flatten (Flatten) (None, 25088) 0 \n",
- "_________________________________________________________________\n",
- "dense (Dense) (None, 1) 25089 \n",
- "=================================================================\n",
- "Total params: 14,739,777\n",
- "Trainable params: 7,104,513\n",
- "Non-trainable params: 7,635,264\n",
- "_________________________________________________________________\n"
- ]
- }
- ],
- "source": [
- "for i in range(len(model.layers[0].layers)-4):\n",
- " model.layers[0].layers[i].trainable = False\n",
- "model.summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ಟ್ರೇನಬಲ್ ಪ್ಯಾರಾಮೀಟರ್ಗಳ ಸಂಖ್ಯೆ ಬಹಳಷ್ಟು ಹೆಚ್ಚಾಗಿದೆ ಎಂದು ಗಮನಿಸಿ, ಆದರೆ ಇದು ಇನ್ನೂ ಎಲ್ಲಾ ಪ್ಯಾರಾಮೀಟರ್ಗಳ ಸುತ್ತಮುತ್ತ 50% ಆಗಿದೆ.\n",
- "\n",
- "ಅನ್ಫ್ರೀಜ್ ಮಾಡಿದ ನಂತರ, ನಾವು ಇನ್ನೂ ಕೆಲವು ಎಪೋಕ್ಗಳ ತರಬೇತಿಯನ್ನು ಮಾಡಬಹುದು (ನಮ್ಮ ಉದಾಹರಣೆಯಲ್ಲಿ, ನಾವು ಕೇವಲ ಒಂದು ಎಪೋಕ್ ಮಾಡುತ್ತೇವೆ). ಪೂರ್ವ-ತರಬೇತಿಗೊಂಡ ತೂಕಗಳ ಮೇಲೆ ಪರಿಣಾಮವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ನೀವು ಕಡಿಮೆ ಲರ್ನಿಂಗ್ ರೇಟ್ ಆಯ್ಕೆ ಮಾಡಬಹುದು. ಆದಾಗ್ಯೂ, ಕಡಿಮೆ ಲರ್ನಿಂಗ್ ರೇಟ್ ಇದ್ದರೂ, ತರಬೇತಿಯ ಆರಂಭದಲ್ಲಿ ಖಚಿತತೆ ಕುಸಿಯಬಹುದು ಎಂದು ನಿರೀಕ್ಷಿಸಬಹುದು, ಕೊನೆಗೆ ಸ್ಥಿರ ತೂಕಗಳಿಗಿಂತ ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಮಟ್ಟವನ್ನು ತಲುಪುತ್ತದೆ.\n",
- "\n",
- "> **Note:** ಈ ತರಬೇತಿ ಬಹಳ ನಿಧಾನವಾಗಿ ನಡೆಯುತ್ತದೆ, ಏಕೆಂದರೆ ನಾವು ನೆಟ್ವರ್ಕ್ನ ಅನೇಕ ಲೇಯರ್ಗಳ ಮೂಲಕ ಗ್ರೇಡಿಯಂಟ್ಗಳನ್ನು ಹಿಂದಕ್ಕೆ ಹರಿಸಲು ಬೇಕಾಗುತ್ತದೆ!\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "310/310 [==============================] - 201s 645ms/step - loss: 0.5270 - acc: 0.9776 - val_loss: 1.4132 - val_acc: 0.9653\n"
- ]
- }
- ],
- "source": [
- "hist = model.fit(ds_train, validation_data=ds_test)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ನಾವು ಹೆಚ್ಚು ಶಕ್ತಿಶಾಲಿ ನೆಟ್ವರ್ಕ್ ಮತ್ತು ಹೆಚ್ಚಿನ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ಬಳಸುತ್ತಿರುವುದರಿಂದ ತರಬೇತಿ ನಿಖರತೆಯನ್ನು ಹೆಚ್ಚಿಸಲು ಸಾಧ್ಯತೆ ಇದೆ, ಆದರೆ ಮಾನ್ಯತೆ ನಿಖರತೆ ಅಷ್ಟಾಗಿ ಹೆಚ್ಚಾಗುವುದಿಲ್ಲ.\n",
- "\n",
- "ನೀವು ನೆಟ್ವರ್ಕ್ನ ಇನ್ನಷ್ಟು ಕೆಲವು ಲೇಯರ್ಗಳನ್ನು ಅನ್ಫ್ರೀಜ್ ಮಾಡಿ ಹೆಚ್ಚು ತರಬೇತಿ ನೀಡಬಹುದು, ಇದರಿಂದ ನೀವು ಹೆಚ್ಚು ನಿಖರತೆಯನ್ನು ಸಾಧಿಸಬಹುದೇ ಎಂದು ನೋಡಬಹುದು!\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## ಇತರೆ ಕಂಪ್ಯೂಟರ್ ವೀಕ್ಷಣಾ ಮಾದರಿಗಳು\n",
- "\n",
- "VGG-16 ಅತ್ಯಂತ ಸರಳ ಕಂಪ್ಯೂಟರ್ ವೀಕ್ಷಣಾ ವಾಸ್ತುಶಿಲ್ಪಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. Keras ಇನ್ನಷ್ಟು ಪೂರ್ವ-ಪ್ರಶಿಕ್ಷಿತ ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಅವುಗಳಲ್ಲಿ ಅತ್ಯಂತ ಹೆಚ್ಚು ಬಳಸುವವು Microsoft ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ **ResNet** ವಾಸ್ತುಶಿಲ್ಪಗಳು ಮತ್ತು Google ನ **Inception** ಆಗಿವೆ. ಉದಾಹರಣೆಗೆ, ಸರಳವಾದ ResNet-50 ಮಾದರಿಯ ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ಪರಿಶೀಲಿಸೋಣ (ResNet ವಿವಿಧ ಆಳದ ಮಾದರಿಗಳ ಕುಟುಂಬ, ನೀವು ResNet-152 ಅನ್ನು ಪ್ರಯೋಗಿಸಿ ನೋಡಬಹುದು, ಅದು ನಿಜವಾಗಿಯೂ ಆಳವಾದ ಮಾದರಿ ಹೇಗಿರುತ್ತದೆ ಎಂಬುದನ್ನು ತಿಳಿಯಲು):\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Model: \"resnet50\"\n",
- "__________________________________________________________________________________________________\n",
- "Layer (type) Output Shape Param # Connected to \n",
- "==================================================================================================\n",
- "input_3 (InputLayer) [(None, 224, 224, 3) 0 \n",
- "__________________________________________________________________________________________________\n",
- "conv1_pad (ZeroPadding2D) (None, 230, 230, 3) 0 input_3[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv1_conv (Conv2D) (None, 112, 112, 64) 9472 conv1_pad[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv1_bn (BatchNormalization) (None, 112, 112, 64) 256 conv1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv1_relu (Activation) (None, 112, 112, 64) 0 conv1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "pool1_pad (ZeroPadding2D) (None, 114, 114, 64) 0 conv1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "pool1_pool (MaxPooling2D) (None, 56, 56, 64) 0 pool1_pad[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_1_conv (Conv2D) (None, 56, 56, 64) 4160 pool1_pool[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_1_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block1_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_1_relu (Activation (None, 56, 56, 64) 0 conv2_block1_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_2_conv (Conv2D) (None, 56, 56, 64) 36928 conv2_block1_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_2_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block1_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_2_relu (Activation (None, 56, 56, 64) 0 conv2_block1_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_0_conv (Conv2D) (None, 56, 56, 256) 16640 pool1_pool[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_3_conv (Conv2D) (None, 56, 56, 256) 16640 conv2_block1_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_0_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block1_0_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_3_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block1_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_add (Add) (None, 56, 56, 256) 0 conv2_block1_0_bn[0][0] \n",
- " conv2_block1_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_out (Activation) (None, 56, 56, 256) 0 conv2_block1_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_1_conv (Conv2D) (None, 56, 56, 64) 16448 conv2_block1_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_1_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block2_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_1_relu (Activation (None, 56, 56, 64) 0 conv2_block2_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_2_conv (Conv2D) (None, 56, 56, 64) 36928 conv2_block2_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_2_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block2_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_2_relu (Activation (None, 56, 56, 64) 0 conv2_block2_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_3_conv (Conv2D) (None, 56, 56, 256) 16640 conv2_block2_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_3_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block2_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_add (Add) (None, 56, 56, 256) 0 conv2_block1_out[0][0] \n",
- " conv2_block2_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_out (Activation) (None, 56, 56, 256) 0 conv2_block2_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_1_conv (Conv2D) (None, 56, 56, 64) 16448 conv2_block2_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_1_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block3_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_1_relu (Activation (None, 56, 56, 64) 0 conv2_block3_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_2_conv (Conv2D) (None, 56, 56, 64) 36928 conv2_block3_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_2_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block3_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_2_relu (Activation (None, 56, 56, 64) 0 conv2_block3_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_3_conv (Conv2D) (None, 56, 56, 256) 16640 conv2_block3_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_3_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block3_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_add (Add) (None, 56, 56, 256) 0 conv2_block2_out[0][0] \n",
- " conv2_block3_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_out (Activation) (None, 56, 56, 256) 0 conv2_block3_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_1_conv (Conv2D) (None, 28, 28, 128) 32896 conv2_block3_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block1_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_1_relu (Activation (None, 28, 28, 128) 0 conv3_block1_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block1_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block1_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_2_relu (Activation (None, 28, 28, 128) 0 conv3_block1_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_0_conv (Conv2D) (None, 28, 28, 512) 131584 conv2_block3_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block1_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_0_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block1_0_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block1_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_add (Add) (None, 28, 28, 512) 0 conv3_block1_0_bn[0][0] \n",
- " conv3_block1_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_out (Activation) (None, 28, 28, 512) 0 conv3_block1_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_1_conv (Conv2D) (None, 28, 28, 128) 65664 conv3_block1_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block2_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_1_relu (Activation (None, 28, 28, 128) 0 conv3_block2_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block2_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block2_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_2_relu (Activation (None, 28, 28, 128) 0 conv3_block2_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block2_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block2_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_add (Add) (None, 28, 28, 512) 0 conv3_block1_out[0][0] \n",
- " conv3_block2_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_out (Activation) (None, 28, 28, 512) 0 conv3_block2_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_1_conv (Conv2D) (None, 28, 28, 128) 65664 conv3_block2_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block3_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_1_relu (Activation (None, 28, 28, 128) 0 conv3_block3_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block3_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block3_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_2_relu (Activation (None, 28, 28, 128) 0 conv3_block3_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block3_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block3_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_add (Add) (None, 28, 28, 512) 0 conv3_block2_out[0][0] \n",
- " conv3_block3_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_out (Activation) (None, 28, 28, 512) 0 conv3_block3_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_1_conv (Conv2D) (None, 28, 28, 128) 65664 conv3_block3_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block4_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_1_relu (Activation (None, 28, 28, 128) 0 conv3_block4_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block4_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block4_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_2_relu (Activation (None, 28, 28, 128) 0 conv3_block4_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block4_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block4_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_add (Add) (None, 28, 28, 512) 0 conv3_block3_out[0][0] \n",
- " conv3_block4_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_out (Activation) (None, 28, 28, 512) 0 conv3_block4_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_1_conv (Conv2D) (None, 14, 14, 256) 131328 conv3_block4_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block1_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_1_relu (Activation (None, 14, 14, 256) 0 conv4_block1_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block1_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block1_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_2_relu (Activation (None, 14, 14, 256) 0 conv4_block1_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_0_conv (Conv2D) (None, 14, 14, 1024) 525312 conv3_block4_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block1_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_0_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block1_0_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block1_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_add (Add) (None, 14, 14, 1024) 0 conv4_block1_0_bn[0][0] \n",
- " conv4_block1_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_out (Activation) (None, 14, 14, 1024) 0 conv4_block1_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block1_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block2_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_1_relu (Activation (None, 14, 14, 256) 0 conv4_block2_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block2_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block2_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_2_relu (Activation (None, 14, 14, 256) 0 conv4_block2_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block2_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block2_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_add (Add) (None, 14, 14, 1024) 0 conv4_block1_out[0][0] \n",
- " conv4_block2_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_out (Activation) (None, 14, 14, 1024) 0 conv4_block2_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block2_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block3_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_1_relu (Activation (None, 14, 14, 256) 0 conv4_block3_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block3_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block3_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_2_relu (Activation (None, 14, 14, 256) 0 conv4_block3_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block3_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block3_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_add (Add) (None, 14, 14, 1024) 0 conv4_block2_out[0][0] \n",
- " conv4_block3_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_out (Activation) (None, 14, 14, 1024) 0 conv4_block3_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block3_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block4_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_1_relu (Activation (None, 14, 14, 256) 0 conv4_block4_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block4_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block4_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_2_relu (Activation (None, 14, 14, 256) 0 conv4_block4_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block4_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block4_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_add (Add) (None, 14, 14, 1024) 0 conv4_block3_out[0][0] \n",
- " conv4_block4_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_out (Activation) (None, 14, 14, 1024) 0 conv4_block4_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block4_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block5_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_1_relu (Activation (None, 14, 14, 256) 0 conv4_block5_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block5_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block5_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_2_relu (Activation (None, 14, 14, 256) 0 conv4_block5_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block5_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block5_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_add (Add) (None, 14, 14, 1024) 0 conv4_block4_out[0][0] \n",
- " conv4_block5_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_out (Activation) (None, 14, 14, 1024) 0 conv4_block5_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block5_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block6_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_1_relu (Activation (None, 14, 14, 256) 0 conv4_block6_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block6_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block6_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_2_relu (Activation (None, 14, 14, 256) 0 conv4_block6_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block6_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block6_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_add (Add) (None, 14, 14, 1024) 0 conv4_block5_out[0][0] \n",
- " conv4_block6_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_out (Activation) (None, 14, 14, 1024) 0 conv4_block6_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_1_conv (Conv2D) (None, 7, 7, 512) 524800 conv4_block6_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_1_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block1_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_1_relu (Activation (None, 7, 7, 512) 0 conv5_block1_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_2_conv (Conv2D) (None, 7, 7, 512) 2359808 conv5_block1_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_2_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block1_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_2_relu (Activation (None, 7, 7, 512) 0 conv5_block1_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_0_conv (Conv2D) (None, 7, 7, 2048) 2099200 conv4_block6_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 conv5_block1_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_0_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block1_0_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_3_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block1_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_add (Add) (None, 7, 7, 2048) 0 conv5_block1_0_bn[0][0] \n",
- " conv5_block1_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_out (Activation) (None, 7, 7, 2048) 0 conv5_block1_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_1_conv (Conv2D) (None, 7, 7, 512) 1049088 conv5_block1_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_1_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block2_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_1_relu (Activation (None, 7, 7, 512) 0 conv5_block2_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_2_conv (Conv2D) (None, 7, 7, 512) 2359808 conv5_block2_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_2_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block2_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_2_relu (Activation (None, 7, 7, 512) 0 conv5_block2_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 conv5_block2_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_3_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block2_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_add (Add) (None, 7, 7, 2048) 0 conv5_block1_out[0][0] \n",
- " conv5_block2_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_out (Activation) (None, 7, 7, 2048) 0 conv5_block2_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_1_conv (Conv2D) (None, 7, 7, 512) 1049088 conv5_block2_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_1_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block3_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_1_relu (Activation (None, 7, 7, 512) 0 conv5_block3_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_2_conv (Conv2D) (None, 7, 7, 512) 2359808 conv5_block3_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_2_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block3_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_2_relu (Activation (None, 7, 7, 512) 0 conv5_block3_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 conv5_block3_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_3_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block3_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_add (Add) (None, 7, 7, 2048) 0 conv5_block2_out[0][0] \n",
- " conv5_block3_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_out (Activation) (None, 7, 7, 2048) 0 conv5_block3_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "avg_pool (GlobalAveragePooling2 (None, 2048) 0 conv5_block3_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "predictions (Dense) (None, 1000) 2049000 avg_pool[0][0] \n",
- "==================================================================================================\n",
- "Total params: 25,636,712\n",
- "Trainable params: 25,583,592\n",
- "Non-trainable params: 53,120\n",
- "__________________________________________________________________________________________________\n"
- ]
- }
- ],
- "source": [
- "resnet = keras.applications.ResNet50()\n",
- "resnet.summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ನೀವು ನೋಡಬಹುದು, ಮಾದರಿಯಲ್ಲಿ ಅದೇ ಪರಿಚಿತ ಕಟ್ಟಡ ಘಟಕಗಳು ಇವೆ: ಸಂಯೋಜನಾ ಪದರಗಳು, ಪೂಲಿಂಗ್ ಪದರಗಳು ಮತ್ತು ಅಂತಿಮ ದಟ್ಟವಾದ ವರ್ಗೀಕರಣಕಾರ. ನಾವು ಈ ಮಾದರಿಯನ್ನು VGG-16 ಅನ್ನು ವರ್ಗಾಂತರ ಕಲಿಕೆಗೆ ಬಳಸಿದಂತೆ ನಿಖರವಾಗಿ ಅದೇ ರೀತಿಯಲ್ಲಿ ಬಳಸಬಹುದು. ಮೇಲಿನ ಕೋಡ್ನೊಂದಿಗೆ ಪ್ರಯೋಗ ಮಾಡಿ, ಬೇಸ್ ಮಾದರಿಯಾಗಿ ವಿಭಿನ್ನ ResNet ಮಾದರಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು, ನಿಖರತೆ ಹೇಗೆ ಬದಲಾಗುತ್ತದೆ ಎಂದು ನೋಡಬಹುದು.\n",
- "\n",
- "## ಬ್ಯಾಚ್ ನಾರ್ಮಲೈಜೆಷನ್\n",
- "\n",
- "ಈ ಜಾಲದಲ್ಲಿ ಇನ್ನೊಂದು ರೀತಿಯ ಪದರವಿದೆ: **ಬ್ಯಾಚ್ ನಾರ್ಮಲೈಜೆಷನ್**. ಬ್ಯಾಚ್ ನಾರ್ಮಲೈಜೆಷನ್ನ ಆಲೋಚನೆ ಎಂದರೆ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಮೂಲಕ ಹರಿಯುವ ಮೌಲ್ಯಗಳನ್ನು ಸರಿಯಾದ ವ್ಯಾಪ್ತಿಗೆ ತರುವುದಾಗಿದೆ. ಸಾಮಾನ್ಯವಾಗಿ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು ಎಲ್ಲಾ ಮೌಲ್ಯಗಳು [-1,1] ಅಥವಾ [0,1] ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ಇದ್ದಾಗ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ, ಅದಕ್ಕಾಗಿ ನಾವು ನಮ್ಮ ಇನ್ಪುಟ್ ಡೇಟಾವನ್ನು ಅನುಗುಣವಾಗಿ ಮಾಪನ/ನಾರ್ಮಲೈಸ್ ಮಾಡುತ್ತೇವೆ. ಆದರೆ, ಆಳವಾದ ಜಾಲದ ತರಬೇತಿಯಲ್ಲಿ, ಮೌಲ್ಯಗಳು ಈ ವ್ಯಾಪ್ತಿಯಿಂದ ಬಹಳಷ್ಟು ಹೊರಗೆ ಹೋಗಬಹುದು, ಇದರಿಂದ ತರಬೇತಿ ಸಮಸ್ಯೆಯಾಗುತ್ತದೆ. ಬ್ಯಾಚ್ ನಾರ್ಮಲೈಜೆಷನ್ ಪದರವು ಪ್ರಸ್ತುತ ಮಿನಿಬ್ಯಾಚ್ನ ಎಲ್ಲಾ ಮೌಲ್ಯಗಳ ಸರಾಸರಿ ಮತ್ತು ಮಾನಕ ವಿಚಲನವನ್ನು ಲೆಕ್ಕಹಾಕಿ, ಅವುಗಳನ್ನು ಬಳಸಿ ಸಿಗ್ನಲ್ ಅನ್ನು ನಾರ್ಮಲೈಸ್ ಮಾಡಿ ನಂತರ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಪದರಕ್ಕೆ ಕಳುಹಿಸುತ್ತದೆ. ಇದು ಆಳವಾದ ಜಾಲಗಳ ಸ್ಥಿರತೆಯನ್ನು ಬಹಳಷ್ಟು ಸುಧಾರಿಸುತ್ತದೆ.\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## ಮುಖ್ಯಾಂಶ\n",
- "\n",
- "ಟ್ರಾನ್ಸ್ಫರ್ ಲರ್ನಿಂಗ್ ಬಳಸಿ, ನಾವು ನಮ್ಮ ಕಸ್ಟಮ್ ವಸ್ತು ವರ್ಗೀಕರಣ ಕಾರ್ಯಕ್ಕಾಗಿ ಶೀಘ್ರವಾಗಿ ಕ್ಲಾಸಿಫೈಯರ್ ರಚಿಸಿ, ಹೆಚ್ಚಿನ ನಿಖರತೆಯನ್ನು ಸಾಧಿಸಬಹುದು. ಆದರೆ, ಈ ಉದಾಹರಣೆ ಸಂಪೂರ್ಣವಾಗಿ ನ್ಯಾಯಸಮ್ಮತವಾಗಿರಲಿಲ್ಲ, ಏಕೆಂದರೆ ಮೂಲ VGG-16 ನೆಟ್ವರ್ಕ್ ಬೆಕ್ಕು ಮತ್ತು ನಾಯಿ ಗುರುತಿಸಲು ಪೂರ್ವಪ್ರಶಿಕ್ಷಿತವಾಗಿತ್ತು, ಆದ್ದರಿಂದ ನಾವು ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಈಗಾಗಲೇ ಇದ್ದ ಹೆಚ್ಚಿನ ಮಾದರಿಗಳನ್ನು ಮರುಬಳಕೆ ಮಾಡುತ್ತಿದ್ದೇವೆ. ನೀವು ಹೆಚ್ಚು ವಿಶಿಷ್ಟ ಕ್ಷೇತ್ರ-ನಿರ್ದಿಷ್ಟ ವಸ್ತುಗಳ ಮೇಲೆ ಕಡಿಮೆ ನಿಖರತೆಯನ್ನು ನಿರೀಕ್ಷಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ ಕಾರ್ಖಾನೆ ಉತ್ಪಾದನಾ ಲೈನ್ನ ವಿವರಗಳು ಅಥವಾ ವಿಭಿನ್ನ ಮರದ ಎಲೆಗಳು.\n",
- "\n",
- "ನಾವು ಈಗ ಪರಿಹರಿಸುತ್ತಿರುವ ಹೆಚ್ಚು ಸಂಕೀರ್ಣ ಕಾರ್ಯಗಳಿಗೆ ಹೆಚ್ಚಿನ ಗಣನ ಶಕ್ತಿಯ ಅಗತ್ಯವಿದೆ ಮತ್ತು ಅವುಗಳನ್ನು CPU ಮೇಲೆ ಸುಲಭವಾಗಿ ಪರಿಹರಿಸಲಾಗುವುದಿಲ್ಲ ಎಂದು ನೀವು ನೋಡಬಹುದು. ಮುಂದಿನ ಘಟಕದಲ್ಲಿ, ನಾವು ಕಡಿಮೆ ಗಣನ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಅದೇ ಮಾದರಿಯನ್ನು ತರಬೇತಿಗೆ ಹೆಚ್ಚು ಲಘು ತೂಕದ ಅನುಷ್ಠಾನವನ್ನು ಪ್ರಯತ್ನಿಸುವೆವು, ಇದರಿಂದ ಸ್ವಲ್ಪ ಕಡಿಮೆ ನಿಖರತೆ ಮಾತ್ರ ಬರುತ್ತದೆ.\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "---\n\n\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n\n"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "py38_tensorflow",
- "language": "python",
- "name": "conda-env-py38_tensorflow-py"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.8.10"
- },
- "coopTranslator": {
- "original_hash": "c189abc107848f96051085cc30945129",
- "translation_date": "2025-11-26T01:01:43+00:00",
- "source_file": "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb",
- "language_code": "kn"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# ಪೂರ್ವ-ತರಬೇತಿ ಮಾಡಲಾದ ಮಾದರಿಗಳು ಮತ್ತು ವರ್ಗಾವಣೆ ಕಲಿಕೆ\n",
+ "\n",
+ "CNNಗಳನ್ನು ತರಬೇತಿಗೆ ಹೆಚ್ಚು ಸಮಯ ಬೇಕಾಗುತ್ತದೆ ಮತ್ತು ಈ ಕಾರ್ಯಕ್ಕಾಗಿ ಹೆಚ್ಚಿನ ಡೇಟಾ ಅಗತ್ಯವಿದೆ. ಆದರೆ, ಬಹುಮಾನವಾಗಿಯೂ ಸಮಯವನ್ನು ನೆಟ್ವರ್ಕ್ ಇಮೇಜ್ಗಳಿಂದ ಮಾದರಿಗಳನ್ನು ಹೊರತೆಗೆದುಕೊಳ್ಳಲು ಬಳಸುವ ಉತ್ತಮ ಕಡಿಮೆ-ಮಟ್ಟದ ಫಿಲ್ಟರ್ಗಳನ್ನು ಕಲಿಯಲು ಕಳೆಯುತ್ತದೆ. ಒಂದು ಸಹಜ ಪ್ರಶ್ನೆ ಉದ್ಭವಿಸುತ್ತದೆ - ಒಂದೇ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ತರಬೇತುಗೊಂಡ ನಿರೂಪಕ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ನಾವು ಬಳಸಿಕೊಂಡು ಸಂಪೂರ್ಣ ತರಬೇತಿ ಪ್ರಕ್ರಿಯೆಯಿಲ್ಲದೆ ವಿಭಿನ್ನ ಚಿತ್ರಗಳನ್ನು ವರ್ಗೀಕರಿಸಲು ಹೊಂದಿಕೊಳ್ಳಬಹುದೇ?\n",
+ "\n",
+ "ಈ ವಿಧಾನವನ್ನು **ವರ್ಗಾವಣೆ ಕಲಿಕೆ** ಎಂದು ಕರೆಯುತ್ತಾರೆ, ಏಕೆಂದರೆ ನಾವು ಒಂದೊಂದು ನಿರೂಪಕ ನೆಟ್ವರ್ಕ್ ಮಾದರಿಯಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಕೆಲವು ಜ್ಞಾನವನ್ನು ವರ್ಗಾಯಿಸುವುದು. ವರ್ಗಾವಣೆ ಕಲಿಕೆಯಲ್ಲಿ, ನಾವು ಸಾಮಾನ್ಯವಾಗಿ ದೊಡ್ಡ ಚಿತ್ರ ಡೇಟಾಸೆಟ್ನ ಮೇಲೆ ತರಬೇತುಗೊಂಡಿರುವ ಪೂರ್ವ-ತರಬೇತಿ ಮಾಡಲಾದ ಮಾದರಿಯಿಂದ ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ, ಉದಾಹರಣೆಗೆ **ImageNet**. ಆ ಮಾದರಿಗಳು ಈಗಾಗಲೇ ಸಾಮಾನ್ಯ ಚಿತ್ರಗಳಿಂದ ವೈವಿಧ್ಯಮಯ ಲಕ್ಷಣಗಳನ್ನು ಬಂದಿದೆ ಹೊಡೆಯಲು ಉತ್ತಮ ಕೆಲಸ ಮಾಡಬಹುದು, ಮತ್ತು ಅನೇಕ ಸಂದರ್ಭಗಳಲ್ಲಿ ಆ ಹೊರತೆಗೆಯಲ್ಪಟ್ಟ ಲಕ್ಷಣಗಳ ಮೇಲೆ ಕೇವಲ ವರ್ಗೀಕರಿಸುವ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸುವುದು ಉತ್ತಮ ಫಲಿತಾಂಶ ನೀಡಬಹುದು.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import tensorflow as tf\n",
+ "from tensorflow import keras\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "import os\n",
+ "from tfcv import *"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## ಬೆಕ್ಕುಗಳು ಮತ್ತು ನಾಯಿಗಳು ಡೇಟಾಸೆಟ್\n",
+ "\n",
+ "ಈ ಘಟಕದಲ್ಲಿ, ನಾವು ಬೆಕ್ಕುಗಳು ಮತ್ತು ನಾಯಿಗಳ ಚಿತ್ರಗಳನ್ನು ವರ್ಗೀಕರಿಸುವ ನೈಜ ಜೀವನದ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುವೆವು. ಇದಕ್ಕಾಗಿ, ನಾವು [Kaggle Cats vs. Dogs Dataset](https://www.kaggle.com/c/dogs-vs-cats) ಅನ್ನು ಬಳಸಿಕೊಂಡು, ಅದನ್ನು [ಮೈಕ್ರೋಸಾಫ್ಟ್ ನಿಂದ](https://www.microsoft.com/en-us/download/details.aspx?id=54765&WT.mc_id=academic-77998-cacaste) ಕೂಡ ಡೌನ್ಲೋಡ್ ಮಾಡಬಹುದು.\n",
+ "\n",
+ "ಈ ಡೇಟಾಸೆಟ್ ಡೌನ್ಲೋಡ್ ಮಾಡಿ `data` ಡೈರೆಕ್ಟರಿ ಒಳಗೆ ಅನ್ಜಿಪ್ ಮಾಡೋಣ (ಈ ಪ್ರಕ್ರಿಯೆಗೆ ಸ್ವಲ್ಪ ಸಮಯ ಬೇಕಾಗಬಹುದು!):\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "if not os.path.exists('data/kagglecatsanddogs_5340.zip'):\n",
+ " !wget -P data https://download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_5340.zip"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import zipfile\n",
+ "if not os.path.exists('data/PetImages'):\n",
+ " with zipfile.ZipFile('data/kagglecatsanddogs_5340.zip', 'r') as zip_ref:\n",
+ " zip_ref.extractall('data')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ದುರದೃಷ್ಟವಶಾತ್, ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಕೆಲವು ಹಾನಿಯಾದ ಚಿತ್ರ ಫೈಲ್ಗಳಿವೆ. ಹಾನಿಯಾದ ಫೈಲ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ತ್ವರಿತ ಶುದ್ಧೀಕರಣ ಮಾಡಲು ನಮಗೆ ಬೇಕಾಗಿದೆ. ಈ ಟ್ಯುತೋರियलಗೆ ಹಾನಿ ಮಾಡದಂತೆ, ನಾವು ಡೇಟಾಸೆಟ್ ಪರಿಶೀಲಿಸಲು ಕೋಡ್ ಅನ್ನು ಒಂದು ಮড್ಯೂಲ್ಗೆ ಸ್ಥಳಾಂತರಿಸಿದ್ದೇವೆ.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Corrupt image or wrong format: data/PetImages/Cat/12235.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/2663.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4929.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8183.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11083.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6435.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6491.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7968.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6768.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11397.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8295.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4874.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/23.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11864.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3491.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11729.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3197.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/10874.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6376.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9361.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9328.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/910.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/2021.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/666.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3710.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9171.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6906.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11095.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/660.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8415.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3161.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/850.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7003.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1267.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7642.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8553.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6900.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4334.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/10404.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6980.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/936.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9619.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3300.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7647.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/2742.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9565.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1757.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11874.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1936.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/5077.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7845.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8832.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11935.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9208.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4322.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7978.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/10820.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/391.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/10073.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8958.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8470.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/445.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4821.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11565.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4351.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4833.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/140.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3153.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/5370.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/5819.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3649.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4293.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3967.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1937.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/10125.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1386.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4750.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6029.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/5614.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/2569.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9778.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6486.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11210.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7502.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/2189.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1151.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4629.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/12080.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/10501.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1914.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11086.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4000.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9100.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/5553.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/12269.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5243.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3288.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11912.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3320.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11166.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8194.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2353.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9026.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8557.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7969.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8693.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4367.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1900.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5730.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9961.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8126.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8521.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11560.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11233.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11675.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8889.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9414.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3588.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10353.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10733.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6238.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5618.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7743.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10747.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6503.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11410.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5955.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2915.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3136.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4086.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2905.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2494.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3546.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5547.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9851.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9188.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4203.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8715.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4640.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1866.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7718.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7514.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1017.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/12102.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/296.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6718.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11253.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10173.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11849.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10383.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10678.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5790.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6318.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1884.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4654.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9145.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2479.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/12289.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2688.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4134.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10637.jpg\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/anaconda/envs/py38_tensorflow/lib/python3.8/site-packages/PIL/TiffImagePlugin.py:793: UserWarning: Truncated File Read\n",
+ " warnings.warn(str(msg))\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Corrupt image or wrong format: data/PetImages/Dog/543.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8730.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/12114.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/522.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10863.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10401.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7739.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/561.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1308.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9643.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3155.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5736.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4257.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11853.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6855.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1259.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7652.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/573.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11702.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/414.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4301.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9500.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10726.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9367.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2877.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10907.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10972.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7311.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10797.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2317.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7128.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6500.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11285.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6430.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6032.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10969.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8364.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11692.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3038.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5604.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/565.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9640.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7459.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6305.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6555.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11590.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6059.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3927.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10705.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2384.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3885.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/663.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9043.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8563.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9556.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9967.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10158.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5263.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8641.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7369.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4924.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10351.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6213.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5104.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1356.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7133.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7112.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1168.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/719.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/50.jpg\n"
+ ]
+ }
+ ],
+ "source": [
+ "check_image_dir('data/PetImages/Cat/*.jpg')\n",
+ "check_image_dir('data/PetImages/Dog/*.jpg')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## ಡೇಟಾಸೆಟ್ ಅನ್ನು ಲೋಡ್ ಮಾಡುವುದು\n",
+ "\n",
+ "ಹಿಂದಿನ ಉದಾಹರಣೆಗಳಲ್ಲಿ, ನಾವು ಕೇರಾಸ್ನಲ್ಲಿ ಬಿಲ್ಟ್-ಇನ್ ಆಗಿರುವ ಡೇಟಾಸೆಟ್ಗಳನ್ನು ಲೋಡ್ ಮಾಡುತ್ತಿದ್ದೇವೆ. ಈಗ ನಾವು ನಮ್ಮದೇ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಸಂಭಾಳಿಸಬೇಕಾಗಿದೆ, ಅದನ್ನು ಚಿತ್ರಗಳ ಡೈರಕ್ಟರಿಯಿಂದ ಲೋಡ್ ಮಾಡಬೇಕಾಗಿದೆ.\n",
+ "\n",
+ "ನೈಜ ಜೀವನದಲ್ಲಿ, ಚಿತ್ರ ಡೇಟಾಸೆಟ್ಗಳ ಗಾತ್ರ ಬಹಳ ದೊಡ್ಡದಾಗಬಹುದು, ಮತ್ತು ಎಲ್ಲಾ ಡೇಟಾ ಸ್ಮೃತಿಯಲ್ಲಿ ಫಿಟ್ ಆಗುವುದಿಲ್ಲ ಎಂದು ನಂಬಲಾಗದು. ಆದ್ದರಿಂದ, ಡೇಟಾಸೆಟ್ಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ತರಬೇತಿಗೆ ಸೂಕ್ತವಾದ ಮಿನಿಬ್ಯಾಚ್ಗಳಲ್ಲಿ ಡೇಟಾವನ್ನು ಕೊಡಬಹುದಾದ **ಜೆನೆರೆಟರ್ಗಳು** ಎಂದು ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ.\n",
+ "\n",
+ "ಚಿತ್ರ ಶ್ರೇಣೀಕರಣಕ್ಕೆ ವ್ಯವಸ್ಥೆ ಮಾಡಲಿಕ್ಕಾಗಿ, ಕೇರಾಸ್ ವಿಶೇಷ ಫಂಕ್ಷನ್ `image_dataset_from_directory` ಅನ್ನು ಒಳಗೊಂಡಿದೆ, ಅದು ವೈವಿಧ್ಯಮಯ ವರ್ಗಗಳಿಗೆ ಹೊಂದಿಕೊಂಡ ಉಪಡೈರಕ್ಟರಿಗಳಿಂದ ಚಿತ್ರಗಳನ್ನು ಲೋಡ್ ಮಾಡಬಹುದು. ಈ ಫಂಕ್ಷನ್ ಚಿತ್ರಗಳನ್ನು ಸ್ಕೇಲ್ ಮಾಡಲು ಸಹ ಜವಾಬ್ದಾರಿಯಿದೆ ಮತ್ತು ಡೇಟಾಸೆಟ್ ಅನ್ನು ತರಬೇತಿ ಮತ್ತು ಪರೀಕ್ಷಾ ಉಪಸಮೂಹಗಳಾಗಿ ವಿಭಜಿಸಬಹುದು:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Found 24769 files belonging to 2 classes.\n",
+ "Using 19816 files for training.\n",
+ "Found 24769 files belonging to 2 classes.\n",
+ "Using 4953 files for validation.\n"
+ ]
+ }
+ ],
+ "source": [
+ "data_dir = 'data/PetImages'\n",
+ "batch_size = 64\n",
+ "ds_train = keras.preprocessing.image_dataset_from_directory(\n",
+ " data_dir,\n",
+ " validation_split = 0.2,\n",
+ " subset = 'training',\n",
+ " seed = 13,\n",
+ " image_size = (224,224),\n",
+ " batch_size = batch_size\n",
+ ")\n",
+ "ds_test = keras.preprocessing.image_dataset_from_directory(\n",
+ " data_dir,\n",
+ " validation_split = 0.2,\n",
+ " subset = 'validation',\n",
+ " seed = 13,\n",
+ " image_size = (224,224),\n",
+ " batch_size = batch_size\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ತರಬೆತಿ ಮತ್ತು ಪರೀಕ್ಷಾ ಡೇಟಾಸೆಟ್ಗಳ ನಡುವೆ ಚಿತ್ರಗಳ ವಿಭಜನೆಗೆ ಪರಿಣಾಮಕಾರಿಯಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಎರಡೂ ಕರೆಗಳಿಗೆ ಒಂದೇ `seed` ಮೌಲ್ಯವನ್ನು ಹೊಂದಿಸುವುದು ಮುಖ್ಯವಾಗಿದೆ.\n",
+ "\n",
+ "ಡೇಟಾಸೆಟ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಡೈರೆಕ್ಟರಿಗಳಿಂದ ವರ್ಗದ ಹೆಸರುಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಅವುಗಳನ್ನು ಅಗತ್ಯವಿದ್ದರೆ ನೀವು ಕೆಳಗಿನ ವಿಧಾನದಿಂದ ಪ್ರವೇಶಿಸಬಹುದು:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['Cat', 'Dog']"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ds_train.class_names"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ನಾವು ಪಡೆದಿರುವ ಡೇಟಾಸೆಟ್ಗಳನ್ನು ನೇರವಾಗಿ `fit` ಫಂಕ್ಷನ್ಗೆPassed ಮಾಡಬಹುದು ಮಾದರಿಯನ್ನು ತರಬೇತಿಗೊಳಿಸಲು. ಅವುಗಳಲ್ಲಿ ತದ್ವioleಕ ಚಿತ್ರಗಳು ಮತ್ತು ಲೇಬಲ್ಗಳಿದ್ದು, ಕೆಳಗಿನ ರಚನೆಯ ಮೂಲಕ ಲೂಪಿಂಗ್ ಮಾಡಬಹುದು:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Training batch shape: features=(64, 224, 224, 3), labels=(64,)\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1MAAABlCAYAAACoc7mxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOz9aaytWXrfh/3W9E57OuOdb92au7q7uskmKVKkaMlUhMR0BslwLAMJnHwy4AyAEH2IkSBwEAMOjCCxZSCTA8tJHAOJB4GSaGqyRIlsqkl2s5vsobprvvN4pj2/w5ryYb3n3Fs9FMVT1eyB+w/suqfOHs7ez15rvc/wf/6PiDGywQYbbLDBBhtssMEGG2ywwR8N8gf9BjbYYIMNNthggw022GCDDX4UsQmmNthggw022GCDDTbYYIMNzoFNMLXBBhtssMEGG2ywwQYbbHAObIKpDTbYYIMNNthggw022GCDc2ATTG2wwQYbbLDBBhtssMEGG5wDm2Bqgw022GCDDTbYYIMNNtjgHNgEUxtssMEGG2ywwQYbbLDBBufADzyYEkLcEkLUQoiFEGIqhPiCEOLfEEL8wN/bjwOEEP8DIcTvCSGWQoiHQoi/K4T4xX+G50UhxMt/HO/xRw0bm3782Nj048HmPP3+Y7NWP35sbPrxYLP/P35sbPr9xY/L3v9hWQz/3RjjCLgB/LvAvwn89R/sW/rRhxDirwJ/DfjfAxeB54D/K/AXf4Bv60caG5t+/NjY9GPH5jz9PmGzVj9+bGz6sWOz/z9+bGz6fcCP1d6PMf5Ab8At4C982+9+FgjA68AE+E+AA+A28L8BZP84BfyfgEPgJvA/ByKgf9Cf6wd96+22BP6V73H/zwK/DUyBh8D/Gcj6+36zt+Oqf41/9Qf9eX4Ybhubbmz6w37bnKffV9tu1urGpj/Ut83+39j0R+X247b3NT+EiDF+UQhxD/jngJ8nGf1FYBf4ByTD/nXgXwd+GfhJklH/ix/E+/0hxc8DBfAr3+N+D/wvgN8DrgF/F/ifAn8txvhnhRAR+IkY47t/HG/2RwQbm3782Nj0+4zNefqxYbNWP35sbPp9xmb/f/zY2PRjwY/V3v9hofl9NzwAdoB/FfhfxRgXMcZbpCj/X+sf85eB/yDGeC/GeEIqv26QsAscxhjdd7szxvjlGOPvxBhdb9f/EPhzf5xv8EcQG5t+/NjY9I8Hm/P0o2OzVj9+bGz6x4PN/v/4sbHpR8OP1d7/oaxM9bhKen8ZqXR6itv9fQBXgLvP3Pfsz3/ScQTsCSH0d1usQohXgX8P+BmgItn6y3+8b/FHDhubfvzY2PSPB5vz9KNjs1Y/fmxs+seDzf7/+LGx6UfDj9Xe/6GsTAkh/hRpMf5NwJKa/k7xHHC///khqfx3iut/HO/vRwS/DTTAX/oe9//fgDeBV2KMY+B/DYg/nrf2I4uNTT9+bGz6fcbmPP3YsFmrHz82Nv0+Y7P/P35sbPqx4Mdq7/9QBVNCiLEQ4r8D/P+A/zTG+FXgPwf+HSHESAhxA/irwH/aP+U/B/6KEOKqEGKLpLCyARBjnAH/FvB/EUL8JSFEJYQwQohfFkL8H4ARMAeWQojXgP/Jt73EYxIHeIMeG5t+/NjY9PuHzXn68WKzVj9+bGz6/cNm/3/82Nj048OP3d7/QStgkJRSamABzEjR6v8MUP3926SFeUAqkf5bPFVK0cC/TyoX3iQ1q1lA/KA/1w/LDfgfkhr4VsAj4NeAXwD+LCnqXwKfB/5t4Leeed6/QcqqTIG//IP+HD9Mt41NNzb9Yb1tztM/Fhtv1urGpj+Ut83+39j0R+3247L3Rf+mfiwghPhl4P8eY7zxhz54gw022GCD74nNebrBBn9ysdn/Hz82Nv3xxQ8Vze+PCiFEKYT4F4UQWghxFfjf8r1lFjfYYIMNNvge2JynG2zwJxeb/f/xY2PTPzn4ka5MCSEq4DeA10hl2F8D/kqMcf4DfWMbbLDBBj9i2JynG2zwJxeb/f/xY2PTPzn4kQ6mNthggw022GCDDTbYYIMNflD4kab5bbDBBhtssMEGG2ywwQYb/KCwCaY22GCDDTbYYIMNNthggw3OAf1hd67m01h3jogkEvHOY0yOEACeGAIAUkpihBAiMXiEFIQQQKT7fIhIIQne9Y9XRASICCGglCBGQXqKJOCQKIQIlEVGiNC2FgQIIRDpDfSShP1zYkQpQQgO7316LBKQhOiQUgKCGAJKaUAmecXoiTEipSTEgCBSlQWttXQuoIVEEIGAEaCUxAXP1t7lcw0Pe/7FF6IMkdVsgVZQjSucc0ynU1yQyS49QghPP69wwCklUxBDsrkQ4lQm8uxznNrnWTz7u9PHi+iRIhJjQErJcLyPMUX/2GSfpl0xmx0iFZy9RIQYdf86AoGkqoYMh0OIgWZxRNc2aQ088/eFEB/4XQCipP99ZL5qz2XTv/1XXo1SO8phSZbnKKXQeg+hM2LMEEKgTUWej5H5AKlGWFcTXU1RDBAyw3uPEAHvjomhRYmcLJN0rkVGR4hpXdXL+wS7JPgO75P9vOsAQfAZx+1VVnZM8+BtPv3aFqPJPk3nWV77JVaT51muPJ0XZJlgZDpO/vG/zyxex3dzxvFtQhxyj8/SRY02ApVPCEf3sPM7DHWDCTUmrvDRY2uFs57YtbR6SCsGMNhjzphR9z6vXbb8j/6jd8495O5Tn3wpDpSkGOe8dP0G/+3JIVeGM3Q1YDJU/Je/O+UP3ltxs5GIXHE4bxFBYEQgU5JCSTIDpVaUSqFkyt6IGBF4lNaICCKmNRxiwIv0OEUghEAIEYEgIPAhrdX0gQQEQZQBISVSCGJ0/MT1If/6Lw1AOI4eRdxqya1lzn98c4hD4UNAhF7OlEgU4Ww/XNobMcwVQhokLbuZ4ReHhwTrsBa0kjSt4B+0V/gP/8bfO5dd/8yf/lyUUrJcLlBKMplM6LrA0eKYV19+kT/9s7/A7ds3ufn+e9TrGq0085MpSil29y/Rth2L9ZxBVTApd5iuVtiuYzQYII1isWh4/fVP8sonX+atd97m5tvvIaJmMBxyfHyIDx3DwYgQArPZlNFozGSyzWJ+Qtd1SAlBBZA5f+HP/znqNrDoBJ0zHB/eZ/bkHvVqjpACgcFIifcNVVUxHE1wLrBczZFGs7u9y9XL2+xcvMSb33qH2cmUh48esr11icnWhJODRzjXkhmDkJK//Wv/4Fw2/Y9+5a/GyfA6y2XH1cs/RRRDnhy+z+5kl0oWjAc5w9EeweUQW1w2J5cjRCjIdIXyOUoFxhODkgqQdK0DoQh4slxyMj0kHwiEtKyOLMXE0S5mRK5gzBbdyqFlxWAgoGywvqFuDnFdx2o1Z7y1x/R4zr2732S8nfP4vuSl1y8QXc7/8//9nzAuJ9x675Cdrav8wp//Caq8oJ4LxuNIpiv88AipPbkZ0fnH7I5u0HSPUVJTZVcITlAOlkjrma7vsLv/HIXZ5+L+z57Lpv/OX/s/xhgjB3dvM79/By8ypNFIKXGuPwvrBUdHR2QyYJ3nvXsPsdZTry3apLNea3125ksp07UZGI3HlMOKbjXnyv4ORucgMopywHgyIi8MMRug7JpVu+Yf/cPfJkZLNciR0tC2LUIIlFKs12uUUhRlRp4bhBAsFw1lWbIzHqKUZLZYczydMhqNGA6H6XrrHCBYr1pAUFU5g2F59l5DCJycnGCMYTQa4ZyjrmsePTw6l02/8p/9V3G9OCL4Dp0VCCmIAVy7wtsGZQpiDETA2RYJFKNdynKCkIp8sI1Siq//3j9i+Kt/j2Vbo1zD+sVPs/uv/EuMuhofHMH7/rE57foYQUAicG1LGG0xGw1x9ZptHxlEgdYZsf+8JsvJywneWYgeKTQIQXAWUw1plifUqxPq+QH5cAulc7p2CUKhtcF2Dd52BO8RAkIMKJ2Tl0OC7wjBk+UjsnyAiAIEtN2KP/2v/eVz2fTnf/5Px9FoTFHmKBGIvmNrZwekRkmFkhKJQAqJUJIIaJ18F601SkiIkSB63wnQSgEQe4fHWosxpvetkn9lrT3zt2KM1HXHZOsyQktWqyX7+/vPSn+f+V+nfuizs2dP73vWRzvdM6f+XYzxzB88/X/vPcvlHKXU2f2n/zrn+Q/+vX/3XDZ97wt/KwbbEqUm1yr59Epju5b1/Igsz0Fr8BBlROsSgSHSEYVBxBYFoAuyIqdt0/4igtKCruvI8xIQBCLRdzTrGd55MjNEKkPbLSirCda3+K5BCUmUCkQgRkno2mTF3t/NspzY+wwRRVlWrBZzjDForbHWYl1HNRhidIFzLUIqTDGirVd47xmOx7TNGohEJKvlgpu/818T2gWRSPCev/Rv/43vadMPDaaUAEXExQBIlNJICd57YugDGXF6k0AkRE90/UbyniAhBghC9otRIWT6gmKIQMT7SAgRrTOIAokmfVMRKRVEj5CBECOCtHBE2ofEGEAKpBBY6wBPZzuc8zhvKYoCLVUKtqRGSAVEhPDEGPAxIoXAh4AUApVOAAwRo0FI6KwFb4lSsegs00XN1t7l86xTptMpuIBGUOQ53vv+4hQIkfQHezwbJCEiQjwTNIm04Z/dgN8tiEq2+uDvzwIwIUghDaQA7dn+uRQoBR/6539nb93ToPY7P+fphj89bE4DqWcDKiEF4ZkD59wQASkUAoVSGVJppM4RpkKqAVJmZMU24/3nyasBrlmxODlBFBPKakhWDlOASE3XbqN9IEQJ2qNci8LhuwVNO0dnE6JQeFejZAexRdBfcACV5QhKgnAEDCorkEQWLuNgEbGNoLEOJRRWPKbIPOLKL3J4UrM/vcUqbFEIiZodkrmObvEQZktUa5mrMbrco40FTT6huLDDyKwop1+nufRLbO9d4sL+Fg+Olsz/4G+jePsjmbVbr6hyQ9lKlo8e4CuJbywy80QvsG2bDqWYsb+7z8PDW0QX8UrhpUg3L9F5pFRQaNAiXdgkhhghioD3KVEiI4BCiQjeEUPAaI2RKZBqnU/BkKB/LoQowEVc8AgZ0SoihUuOUogE1xKDILgOjyT2AdppIiZEifcBiLjW4xAgLTI6LBbvO4KPOBfAC9aNwVl7fps6x3g8IrMdUqQLO9Hx4tUrfOr11/n9b/wBJ48PuHr1MjEGjg4OaWuNtQ7rGkymqXyBRuOko6oM62hxOHKh+cRrL3Dx6gU+//nPI2LklVdfpF63zKZzRqMhXecoywJjDGVVUuQFoKiqAQAShckFr//E69x9+ID33nyLrUuXsJ3mja9+jeViirUNMQa0Ksi1RhoYjUfs7tRMxtuUZUlmDJevXGAw3uE3f/N32dvbZrKzQ2NbjDLMZzMmkwn1esViuejfxzlt6gVPpvdp1wppb/PctRcRcc104RnuPYcwnvl8Tqb3MVmG0SUDs0W0IzIjyA3pIu0FPggWy5YoHMaAUhrXCZytWS4eY9C4dYmS0NSK+fo+o5FjkA8xZkVUitVyxt3738SHJd5byoHCHnfM5o/pREM2vMYLn9xjNX/MO299jWuXXiEXJdd+5ifZ3bpKGTRu2aIFKTDVUwalRBtL261obM0qX3Ayv8e4uoKMx2hZQvRY2TIcXmBd13jx+Nw2PUUxGDHTOQKNlOIsWSdE+jnLMtqmpswLJoOC6bJFypSgzPOcEAJKqT5ZJc6CseA9WE8mFLkxtJ3FZAakxweL9xLVLYnBM5+tkyNU5VSDEq01RWno2hSYZVnGel0jRKQs8+RYBYXtOtbrNaPREKUUw+GQruvouo6yLAkh4L2nbSwxJicvLFyfjNNUVXUWAHZdhxACY8y5bamUQSqFUCXBW3zTkJKREZWVuGadkkVKpxSlyTBZhckHpORRgBjRxlBVJVJJpFcEIYl1TRQhBVHC4L0lhg5P4M70gLdWU+aLOU4K2q6DCPlgwlY14Mr2Hq9Yx3C4jRBbGNVgu5roHaYY4r0lBEdsBCEGYvCYYoQ2Jd67dK0VyZWMvUOvjCZGkCGgs5zkc0lMVhBchyhGaG1ACKI4//X/8pWLSCFZrVZ0rsNoQfQeY4rkzymF6glYQsqUeJPp/2UfaKXf9f7MqS/SPzeEQFGcJpjF2drP8xxIvvBsNsO5cFZEyLLsg/OHvi2R/e3+2OnvnvWDng2aTv//9H2fPsd794Hk+amvFULgyeOH57Zplud4UkCG0HgEMgScc3Q+oGJEC0VnWzrfUA00uTHUTct4MqKuW7quI3oBElarJcZk5Hlxdg4olQKcED3EQAypjBCCI8tzmjYQo+99/IgPHiXTnlYmxzmHAEyWASQfOji0VmRZfmYPSMGwUgofJCFEQl8ESK9rAUde5Gf+qrMWJAyqAcYY2i4FMd/Nv34WHxpMOQLW274yJVBS4awlhBSYhBhQUhGBGD3JMQ99cKUQUqCkgH6RCVIWIEb/NDCPpCBCaqIQffVDIKJCygAiBTvOOyJgg8Naj/eWuqup65bMZGilUMrw+MkJX3vjW9y+ewctI6+//io74zEX9va5cGEPpTVKmGQcGVBEtDRIJFKnGlTnWhaLOU2zorOWukkHtRQKISRS53/0FdrDdjY5eYBqQHqJVKlSF0mH0eki+I4vr8/kpDtBimTAtPG++997dlM+u2HPXjtItDJIGVFKfTA4A/paQvqi4rOBW/+ICKFfhKdPitFDlH0F8LTWltaPEAKB7ysR6buVfSbovMgLg9YGkxUYk4M0KDNA5wNUsY3RI4rhDnleEjxYYRhceol8UACSfDhGSoXMC4IKhNkUaQwh1oj5AV09p5kFBqZARIVrjvB2juuWhGBB6LRZCeT5gFjt4Q5zTD5EaIORGo9mWVu6LnIyXyCjpGvv8LyQPFhEZk/eYTgKTKtP0uz+OR7dP+Dy/pBKCY4Ppjw6XjIeF+zvDehWjvWyRQ5zhJ5xefCAW2uoG4NbBqa1Z7k2hOKjsXgXq461tayto1zV/IbU/Pc/mZHHlGghRBSQaUVmFLmWBCK5gkwJCiWpMs2klIzLyLDQKCEwUiH7rCVBosg5jabaKBHBY0SW1oySyOCJEVw02JCSD+lwjHRWEPoEjJQwriRKBYKLKBHJjEArGJSGLiRnQPRr9rSabq0nEskNGB3I8gzfCZRYo1Qk2OTyCMBGRaY/9Nj8UEgJJyeHVFVFnhfM10teuvEcz7/0Am++8RYP7t9CysjB48juzh43nr+BdY7oPIvZFJ1J9vcu07WW1XxGpgsG44p60XDj5WuMdyd8842v47uaQbXNbLHk0qULFIOK+XSFkVmq5gnBoHcYrHUoBUWZMZ6M2b+0z5f/4Bu8+87brOcr/Dff4ad/9qe4cHGLRw/vJ0dYpOriuj+zZ/MVR8dzLl/e48Xnn+OlV19kXTd861tvEl3L47t3uHz9Ojeee4Gb798khkjrNUEITKawPWvhPAiNwHWpKr08PsKOLlHqLWSpma7uUXcBHS6zuzXEEZCuwUePcJIgPK2QgMKtHaOJIq8U8+UctEEEhQ8tTjsyxig3whc16waMMuxsSxarYzLlWM1XPLh3Gz3QPD64y2hi2N19ARdPKIshUsHF/eeY1wcsFh4VJZeuXeXl56+ymreMBxeoii2cdXgUdbOicRmHy9sMGaFkiesc9boFf49ifECME7zbQueadaORUVDkAS9W3y3/9UdGMRiCzoj+6YspmdgIUgiUlEShWCwXXL6wx6p5QFlmNG1zljG31uJ9CqryPEtVixjAW8bDIc4HpJIMRxXKSLSReGfxqxXSGJxNrIy27dB6jDGaLDOUhSL0iZAYA85ZvPPIXFDkGUpK2q5BrNYUZUU1HHB8ckJd1wyHQ6QQhOBZZy22c/jgyVXKZDvnngmeUmDYNM1Z1eI8kFpDfx12wdO1NSJ4kBqpNRH/9CsTAik1UhmQEikk0XuiUuQYYuexXUcQAeoGYkDqLAUwmcKFjremD3nj8R0OntynCR1FRwrIgsc5TzAHNEbxWArej5py+yI7r36CT2dX2HcRLwK2niVfCUlwFqVM/1lU7wh7lM7x3mLbNVKblIYVEJ1FEAm2BW/JigmRiPMdXbNAD/fwvqNZn1/YLs9TNVkCq5nDCEmwHpFFpFFIKdP9QiaHSTwNiJRSfdVKEAhn98n+3/Q50uPSV/I0kXDqSwkhGAwGLFc1AnDOYrROgUGMyd/9jnedihOnPtR3C7oAvleS+fTxTdOgtfrA42KM1Os1X/nyl85tU6TGRwi+A5FjsoKuWffsL01EEgI43yWWh3PYUBOCxwePd44QPFpHCB5JhOAgpIATBNamgEtIge9qurYFkfa4lBKjFF27Rml9luSPMaCkwNsO79wHAlpjMpy3WOcw2VPbNU06h6SUaG1SISh2QErEeAFdu2ZoEoNJSUkXA1pqmnWNd33hqPfPPwwf6hVEkSoHIXikUjjfIfsKRhAhZapU4n+l7IUHYl/9EWhpiDE5QlKqPvJL1ZBEzxMg1Fk5uK5rbNfROs/R8TH1eo0g0jQdR7M5znnmiwUHixXeRmzXsWp8cp4VqBBYLBYcz2fMTuYs53N+4598icG45OVXnucXfvZz/NRnPsnF3V0ybRDaIBC4EOicpV1Y5os5TVsnByakKF/KRDTypEhZhvNnpvsPThACqTNc21G75qxylx4SP0BnhLSRz5ImMnK6GBISnfE7AqVnXuvp6zwtKcsokV4gKVDS9dXF9BylBMFH0hIJEAXJdeaZ1+oLos+8d4ggAlpVxAg+dB+ooono0Qh8DP1hIsF/96raPytUlqO1QasSqUuUGqLzEUpX5PmErBghTI6uxujxBcZbl1CDMSHadHBK8CGg8yHRNbh8RAgd2nfYpoFg0cN9VATrHVJGQifJMklbB5pmjdYF0GJEiTMDIgpphphsQBQ5Fy9ukYktlivPztCQa4N7/5BOap67tMvjR0u01oy3dhCTDOyQ/Z0SZQyNUFRoxpOccjJkbudEPCAxWUVebVE/PGGqt7DCs1p2zK0hk+d3+gE675AuchwUuQ38+nsrLgy3+Jd/siIbpO+/MoZxVFgHr21l4AWZiBglMFJQasN4qBgNJFvDDKMh14bhMEeogGsFBA94XIBlo5iMIiLAynrwEikszkPEIEKkbZZ4B86minJQGgZ7xMVDtkwgolPAQJ9NEjIlW7SizDIa19E2Ni1VFehIjymNpMgUL7xwg9v3npBToyRYFD4ABHJpGWbnX6vbWxNW6yWZ1pS54bkb1yjHFV/92hvEeomWAY/Ato4H9+8yWs157fVP8/DhQ9quY1BWSAkqk1SyRKuMYVXwmU+/Tu1qbr/3PhrFcFAClug1jx48YvfCBa7duMaDh48IPUUlyzI6m6hOURouXdkjCMGv/b3/mscPHtN2LZ31EBW/+1tf4k/93E/yZ/7Mn+KLv/sVui45uKdV5kTHrCnLghsvvsLdh8esFzOa1YxqNEFGePLkCa+8coHLV67Q1C3L2QmoyIVr1zk+Pj63Tctyl6P1gk+//Gmmj2fcvv0+k4vXWdhDhH1AiGuUe0KeBapqxEBVlMWAul5TN55BMUhVbWmou5osUwTR0sgjYAfbeZquw7uO5XxFZiL7W1epl4cMiz0UNU8ePcQUklZahsOSLXeJ2p3gZE2mM+o4ZTDcxtZTimzM7s4+x4dztirFer3EjAxZFkA6lCkRISczGhvnzKcPUdmcXbnP0dFBcr6rkqYeMpzsYnTJar1iWE76irxExID350/6nV5LlFYoowndEuslQkZyDd63iOgYlBlEx8naIaXm0u6Ao+M5bZeoUFrrRO2LEmc94/GA0DmqQjPIPeUoZ75YMRqOMJlO1Skizll012eOfZuqbtZzcjwny3MmozG5EdgQ0BpG44pm1aKipDAKkWlCZjjoWmyICNehgsVoxXq1JssMgzzDuQ6toMOlfdVXI5xzLJdLIpGyNCnAW/VB4DkRnANC7wxaove0TTr3VShSNcQUCKkILvkYp48LIqSqug+07ZqdPKcVDuUkhcnpvEfmGuEsy3bFrz96j7ce3qNY1mjXMpCO4CLeh8TmieDbluhScDyPOSf2Ee+ujnn70mU+V+3z4vYuI12gdEYgMWe8S5VDgUwsIQIg6NbzVHnTGTF4XF/Z0iYnOEsUkph7hNQYUxERONcQokfp8weops8ql2WB6DqK0ZCsLFK9r0+WBdlXKWRyyLvWUpVlClJln2COz1Zd+2Q2z/pTT6s/307Ly/Mc71M7iPAenWWIEMB7QBDEB/25ECJCnFY6Tv22+NQf+hDEvhjRtg1Kye+4zznPm998A8X5r1EhilRN7NdJDK5PhBR471Am+c0heDKjicHROYcwgratU8zgA0oIYvBkJsUD3luMykDJs88riXS2SxVZIejsGu9KhIC2a8jzVB3u2hbnHUrGRCk1KTCyzp3RNs/qM6e0yN739d4nP16dsuNkqnBphVYZUTuI0LYt0Tts15FlxRkbM4QUEIf44d/Nh3tbkT4qD32Z0UAIaJ2Mc1oROeX5xhhw3mOE6osWghhSNkAKSRQB8HgfaGxD07aczBbce/iYew8POJotWbeBpmlYrBaEIMCHVJVSOW1nsesVSkqsVEgp0CpDKovWgkwkWlqR5ajtHVRWcvz4CQ/fvc/7t+/x9vt3+Nbbd/jcp1/lEy/fYDIZ0bSW1XKRDB6Twa21ZCbD5Abb2fT5QkTpLJU94/md1NOMxin9IfRZp1RmisnB+x7Uvac/nkZVT3/89sd+4Gt8JqD6QLYjCoRyRDEDig+8RqIByrPXPw2ET/mnH3itZ0vQEZRUfY5NEPGEaBFCEnxAEnquazpIQnya5TkvsixPh5VSSJ1RlDuYwQXyfEhW7aGqIUFXqCsvkV24kb5HxNmBE5P7DUIhdUGWjXsHP6IGF+lObiIPHxCdpfAtnVB0wRJCizYD8ugxxiCER2dDgjcEFKqqIC+h2CKrKqq2gTxSZoYqk0zfPKFhyMXdMdP1irkALhj2Cxhfyrm4o8lMzoU88uJ+wf5OxWBQcPsuNJcmjIcZA7ng4PdrPnVth+ErV9HCcjwreHCyl3jNHwFSCXKl+0xmxOU57x0FVnpCEVtyCduFwUXFql3z6e2CQgW6xqGNocw1Rggmo4zBAMbbhiJXbG8V7F/aZbQ1QETJvffv03WWyXbOvYctV6/usrVXoYdD7Lpl/vCE1nqq0Yh6MWUx1cxPamIbkMEx0zvs/7n/MV/+lf8Hz18SBFYEpWlFRMiMgMTLDB8F0oOSkq3xiLZpkUoy1iOMgis7A5adY7i3i3x8iAgjfFwlGkJfFZYS4kcIUrfGA3Z2tlHRceHSRRySo8NDChNRepvR9jYuWJxzGJ2RZQXHTw65cvkS43KMc+DpqGTEmByp4dKlS6zXjuWyphxXEBRSxT6ZkTLcdWPxoubqc5eZTRcEl3ZoW1u0dFx57hJvvf0uX/vyN1it13TRpuSRBBEjtvP87m9/hdc/+wl+6Zd+kd/6/BdZNcvU9xAj43HFL/7iL5CXBb/+619g7/JVXn7lU9T1nK2dfZrVil0BzuToyvLijZc5OJiSZQXD0S7D3aNz27QJNbJQzBZTxttbxBb8sqPcHfL4YA6iQ7gV450xTbeg8zmP2jfJ9Q6F3KZ1K6IfYEjZdqkFxgzowglP1n/AeiUZZs+zWMzxIeLqmm88/B2UbLiuXmO+XlIUBVFEopK0wpNtB5Tbo3WeKDrmi8eErQX4GUpcxnUSqQy2WxOJCN0i85rMbCNigQ8OkQtcLRlU20yPZ0y2ltT2Ht5pxuMRwV1CiR2cjRgzxlmB0hLratAOY7Jz2/RZ6pBzFmtbpPV4BapK9HQpJXme6DFPrGU6nTIcljSVw5LTdfasohNjSloJoCorjFFkmaBpGmazGWVZ4ryjUIlSFXxg3XVkSp9dH8qyJEbOegljluh4xpg+a+4wvZOVZ1nfihBZLJZkrWJre0JZljRNov9VmSHPMqyPOO/P+rmEEGd9YVVVobXCO596P7Lz7/22nnPqlEfvcbbB+Y6sqBLbJaYqW7Ad6aqUetCdazDZgKwaEboapRPtKMRAYSOL6YLoHeQFh13NF979Ko+nTxitWjLnCUAXJUFAVCJd2qToA6NEr1YiIEODXC5Z3VvxBk948+Ier04mvLh1me1ihM4riBHbrpBKJ5qfSL3mxID3HcIKXNcQXErOCmVQOoeYPgdAVkwIvsXaFohIff51enJ8ws6FfYISlFtjTJZ6dBaLBVeuXDmrjjrviNazWCwI3mO0ItNPKZtPK06nrKDkRJ/2OH27T/ZsQBV76iUkBpaSstcPiEQC8ZlWh29/jacJ8Ngny+N3/L1TPNs71bYtWZZ9oAc9xsjB44fcf3CXl1566dw21cYQRdIW8F1DW9cYk/X02rL/jMl23nmQaf+AQmd9pRjouqZnKoXUYqNET9NPjmuIHm8dxEhmDB6Psy3rxRxjMpQRiJio1tGEnmLancUTQkq0TMyuEALaGELwZ/RdZy1Spsqicw4jDUomxpSzp9+1Is8H6TnRE72n6yyyaWiaNiUQQv9diQ8P+j/0ZBBnFK/UlJeoNhFiKoHHAFqk38eQaHjG5KRoO+CDZV2vWdcNk/EEET2Pnhzw+994i298623u3T9gtrJ4cRq9S7a3d8jLAjBY5+m65NRnUmADHC1byrKkL2egVUumFEFLkJFCSQbDAVFJdve3ubC3y4MH2ywOHvDk7mN+ffW7vHPngL2db7C/M6DQkhev73Px4gXyLEMpkQ5iH+iahig0UpdEqZN4gS56u3x0LFcLZExUxjObn+2hFGx8N8SYAlXR19NTVP+sdIU6+97S45+NuAICgSY5ujF2eFLmSyr1zOZOB4BUAq2G6aAUirIckBnLulk83cgxIhWAJxLwNvXG+BjQUiH6xSykBOGRMmU1iDEFXsF9T5riPyuUUiAFQhdIM6QY7lMNtsn3riC3tlHjy4h8glRZT9j6LgFrJNlcyp52CtLsY7RMfX6+JQRLsAFv58Q4g5h466d9hKIaUsltUAY1GkFR4QcTnM5ZLmuWTcD5wHzasrj5GLd1he5kwWy+YqlyitE1lq3DOsl8LUB0nCw66i5ickPjoXYCh8CJQOMhLFZIPUXFgBaRXHnyqmK9KD+STYOAYAP7W2XaCwSKsqTpDC60OK+IeJTSaJ3hu5qllAykSVz0ALIQROVRucEF6GxgMDJkUtIua4QR5KOK9dGCgyctpjA0UZJtjSmGOV55lMtYLS1Nu6YsDd5WzKeOVniMhhbPr37hN3GzY36KPazPeHQMQg/xtSMIRVnm1G3quzAyw3cOmedE+ZRTXQ0GCN2giWxXOXnd4F3qAYghIjUgFNlgcm6bDnavMh4aMh2ZLjqizBjuXmLY03UTJUERSeeqiAEpItY7Jns7FNWEZd0SsWwNSuq648HhGiUM0QwhxsTkIdFMQp8Ia23geD5lMZ/x/I0r3Ln7iEcPD7lyYcTWeMJvff4L3Lx5D9e5pyyDEJFR4H0kRofv4GtffZPPvh74pX/+5/nil79C17a8eOMar3/uc7zx5tu88bVvAAIhI1lWkstIs1pwspgxLkesmwYtPbZdMxxs8+DBbZS+w41rl85t08f3jrhy5TqPHj/k8uvXuXzxGqtly/v3brKcOwZjwd7+FebNCldbJvsDfOy49e63EI1Hb2UM8hvs717Be8VqtqK1hwyri9jFmtnRA8xeR5ZntG3NYrnAxhohHa1b0cUVw2LAYu6ohtt4N2O5PkAaRZFf4WR2gA+Rw8MjMrWgzPdp6ikRmxyAuiHEGpNfpShy1utAE47xYs28vcelyy/y+MkDDh6f0HRL8lJijCF2MF8c0NQ1ea7IpMHHgqK0CAJdPD918tTRk0Kg85zZ4QrdOWKW9nzRB1HAWeP7crUiiHTOZ4nhfZY0zMqCrmt7ukx6vHWRVbtACIHtLM6mW5HlSJPBKAk+LZ+cIKRgd3cHrTXr9QrvLes67dvBaMBisaAocozReJ+o8toIqrIixjWIJDhgdIZSinpd03QdeZZhsozCpyQuPBWfkFLSti3DUZFSb0KQZed3/G23IsZeWMdbvLMpkSoSDSn6SPQB160RSqFj2Tujp7QzjwstdB7hXaqc+EgpNY2I3Asdf/+db1I/esjAzsmUoQ4Wr1NiyUTZUwd1ovnhCUEQhcBLj/CeTFhU0xFijXuy5PdWE95eTHl96yIvX36JiTBgO6TOMEWJX3e4uiavJrTrObZrEo1TSpRJvUOuW0MMZMUAITXerhEyVbCIgeDOX+27d+8ew60JnXdgHbt7+wwGgw/Q8U5pXq5twQe0lDRNQ14Nv4OyJ/ogMyWP+76qb2u7+G6CEacBgvcOqZ7SAUOMqY/smcd9MLH9lNHzwaRyCqpOH/fsfW3bnlVjThFjpG0avvWNr3Pj+Ws8/9Lz57YpvYibVgqkQuqnVSBlNCE6YnRkeYXtEr2vtS0qKIxusC7R5LrOYbTGh5jOBZ/69E+DQNfVSV/hjAEWiR7aYPE+oqPB6Nj3KAukUHQeiB5jkuic7Fkl1lp8cEipyAuFtRYhUt+X0jlKaYTSRBR12+B7m4Wu6cWrIkJKQgSpTPpXZ4wuv4QZnbC1cxGZf7g/9eFplhCIgaR2lnQezsqc4axClTZ7cuDjWV/Pqm14+72b/M5XvsG33nqPUiv297e4ffceX/uD3+dkumKyc5lqvI3KMpQ2bE3SJvCdxceIi+Bjopi1naWxjrrzvbOYE0Uf1vQVmhDAyQjOYjDkecHliwMmkzG3i4I7777J/XffJnjB0ewKb92E1fQEXx9z/eoOn/zUq7zy8g2uXLpEUY4oBttkeUVWDIgiOTlSyfSHzolnN0AI4ZngCf4wkvvT5wqI8jSHkT5+r574NEh4WqJ+WkEiBVNBQs+BTxcJTZQKIfv3E3sqYQxkmcLoXUK0NM2a1bJmPB7SdutezS4pPaY+uF75UPaHvogIYQheoWTflEnAhUjsS6YSnwLB81elQRowhqzapawukw0m6DzHjCao4QDG24hyCyWyZ6PVlFXvq4HfAXH6GEkwQ9TOZcL6EJllZEVO6HJCVwArlDaJBBoLbt69y/5zFwhKIYsRqhgi5JAuGFZ1Q90FrIPcSXRV4i++RhsUl69U7FzeYV3u4FzAC0nr+56DKPFAa5NSZtM5nAOz9nQx8uCBxW47Sg9ExarxNKHk/Xurj2BUiD6y7izH08i13QGTMmO6rumCwzmNFBCF5tKFMW40JNxb8+KLr9IcvJ+ot75F9fxnfGpGngwL8Ja6XSGyjOzyn2H3tWuUdYMWJcVwh2b9GEYljPcQ9RSxvWbgakb1AfNv/VNi5ym0RoeIJcdcuMTb//QW4knk5sOaF68U7O7vkhUVx+8vkbXA2QYlIcsVUnhCjGRixLyuGQ1zBpXGBo/Gszh6Quhagnd0UaLwCAUIhQuS9fr8dn3h2jaL+YKvfuNdbBdS75hIFxkBZ7TT6E8vvLEX61FoOvb2drn23DVUlvH+zXd5eO8xq7ZLXa0xVddjTMkvJRUipCO+i44YFETL0aM7/ORnX+fSbsnx8ZJ/+Ov/lJP5LD1fOoKPRCfwqd8dBGQmYzAoGU0GxCDR2vMX/3t/njzLCaLgH/3jX+f+/Xvo1MhJu5px+90/YG97H6EiwXkW7glGR5armkf3JD/1U5/gwsijspzH9+6e26ZHDyM7ozmlnrCsF8wWc0woOHz4mKPDJ5j8Ohf2rlNmJU7alIQTFUIqvvHul9i9MUSK91lzA6N2gI4yNzw+nDEe75Et1yzrJwyLbXzoyLIBUhgKBTJEHt69hduv2bn4GncevosKK7om5+pz12jtAhFHRB+59+grfPLVz7JYL1nM5ly59DJKR1R5wO7gEtVYs5ot6doRPsKyPSbLM2IDw2pCJ9d4rjKqJsxnK0bjnLZpMbKCuCbEAqlKiC2DPEOp6tw2hdMjMGDKCogsXUuVVcQ+u3ya8YVEdVq3HSeLhkmZU5UGbz3SZPgiVXyM0QQPWivyoiDEQNfV5FpjpEzKuSE5n6u2xjlHXhQczxZIJVEatBGMxgPW65r1qkX5SNZaRtWAuq7pupbBYHCmIpjlGW3X0XUNbdv2TfqBEASruiMvB2RaUNcNg8HgrEFea/2Mox16etxp8/r5YJsl3nW4tsG6DqkSE0KqJMRA32Os8rJn8oheDU8jpe5pfh7pHVkI5IQ+iRx4Vy74/a+9STiaMjYQpWHtPL40rL1H5hm2dshI+rtGImJES0UMkc53mFRkpnOWJo8UXYNuA82y5auzmi8dHHC5HHBt7wKfihFvG5xr6NYzEILgHFL3/V8x4roG2VMWTwWvVF6ghOqrWRHdKxieF6vlilvv3cQT2N3ZYV9KtNKMtyaJiNj3gQshyIqcokgMnGowTNXB8DSBdRYAeQfBYaPHmJ0PBlviaY/TaaCV+nFOg6/+MUoglSZ6l3RDep/xOxk4/hmG1zP+Hc8Ga6c+XF9xcUld8EygjKQ0d/PddzCZ4oXnX6TKz7/3m7pOvUZS9JRQTwyOum7QJkvuUp9Aib3P532Ann2UegLD08DyTBjDY9frM2aTtR0igu8ciIhSnPW1+xhQJLEUKVUvGhUQQhGJ+FPlwp6MGXyqHFf9OWBtlyh7zmJQWOdpOkuW5zifeqSJIKU9E5yJfcLfZBlSKkyZMf7kp2ldg8oGiZn3IfjwypSUqcQdwXvXR1N9ECAVPvRlcaWTY2ohisC6rvmNf/pFfuNLv8+tuw95cv8xUqVG4yc336NezhntXaEoKooiR+U5WW4wWmBtR0dIoggqQyqBiAJnHTIkeo5rWrIYkKSKVa4lWqVeJEEqK0otQCpcCFSV5saLz+G6hm/83j3u336bF4ZjumDIqxEn8xVvfP0Wt+4d8vW37/HKSy9x7do1Ll+7wqWLl9jJC7ROSmCuS6Xpj4LTDal64QsfQ6J6iO4Pfe539kWlQFaQGvXSwvVnMcOz5eVTVmCMpEUeJEpqTG7QRQYEtEmHgVaStu3peUEgg2I0GhJCxBiNlHsIKZJqouuSaqLWOGdReUVU6QDVQhMceJeUVkLMk0KSSxsoCZec0knPh7zaISuH5OU2phxi8mG6GGqJyDJSScEBqRQvziKls/98V4i+XK2UgWKX0M6J0UHsCN6hdUnncmRMHHKZGXzMkuiKkkSdE4VByozFIvB42tI5z2xWU7g5z1/eZppfY/r4hOdMTZtf5eFszbJ2LFYNl/dGSCGYL1uO5zWzumBQZJzMG+bLjp1JziCLyP1LRBxPZjVFppiu1izUADEcntumAEYplr7maOWwIvL61Qu892TBW086Lu9oxsOcx4uGf/lf/DRXX32eg/ePuXzxZY6PFlS7l3jzH/1t7t98F9c5OqkZZArpIr6NODylkQyvvEb5wsuMRAQtQVygtDNW0/uwdQWpblAhAM/xu2/x1b/1q+wMIj7UIKAoDG5cMqyGPGgDR02NlCWZGfc9j9BZT1xbqrIg84HVsiaGjiITbLuO0Gicymh8xyAzTKoStSdZPlzRdJ6yLxJb74lRkX0Ejv/JyRP+4CtvsF6usTZgjEr7PyZFU6M1QpISEFqitcD7wLrtyI2hLEokjrffvMPxwSFdVxM6h9YZSqQ+N6Uko6JAxUhwgdZZcploCs6n7Gl0DbduP+HJwyPG+QC1JZktZriVS/1hQhL7PoJqWHJhd5+L+/vkuWIwGDAcDjBFxr17D5k+mZKHyO5wzGLVkGUFk8mE4DsePbjN/qU9hJccPXlElLC/s4cpc9aLJcNiwNtv32Y6PX+Auj2eUOjIzv6Q+4/uceXqder5gkwKLl16EaMrTo5OKMshRTmmsw0xOkbbY3avPMd8dh/nl0QCRj+izCu2Jhdo2oaoBVFbEBldawmNZ2AmQM7J8WNiXLI9fp7F/JjJ/orhoCITGWI4IPqcTIOoAqvVnJ3RVQiKdfMAU1zGFCnLW5gxmS7I9IRje5/AkiwbUKkhq3XLbLli/3LO8XyMiAWT0YRVs6DtInlWYoxCSnBdho0O71a45QMGxRz4hXPb9RRlVVFWFc16TV3XjEajPvMrzoKpyWRCYy2tT5TngKSqKhrremdT91QcjW9burZFG02WZVRFiTHmzMk6laE+7XVINMG0R7ouXWvG4zHBL3pBLE/X+bNE76mjKaSkLEoWiyWhrwgJBEVR0NQO5yzr9RqAruvOhCeeRQiBru3OHKnwERx/7z22WQEiKY9Jk+hSfUsEBKKzPTMiOffa5CidIVTqXZY6hyAoQiQLkW5QYmXg3ffeJM5aBoBzDT4oXISudUm4wge81zjAruve1pHhcITSOjGORMBIA9YSUIhowEVwawKO4Ga8+8Tz/oPbPHzpVX7O1QyzAdlwm2BbOr8geIuSOVIb2nqBlwrb1egsx7sO6TKEFqnqrQxS5x/p2u87x/GTQ2RuGBUDfOdS8InmVAHvTAlPwGgyRiuNyszTcTnxqfLeaf/3Yr5mOB71wdIHg6mzqu0zwVSWCRaLOYvFjN39PaJIvpZUGqXSPnn27zyL7zXO5tsRI/34ig/2x8cQOT4+5P6D27z66quMR0lQ67yo6zq9J6kIHtp2Tduu074iVcbyLCNGQWcdSglMXiRxGTizjTCGQKoehRBSZUsr1uu2/zwBThMEMhVMnPMIoZBK0VmL9Q5nfR/4CLROVca6rtO6ETb5tCGNalouF7ienql1kut/tioYQsAYzXA0Yr1e410SlzlNnqRGLpWE0aIAI6nkAGtjajv6EHxoMJUiwjbRTfoMKYK+WpXSGKnxy/cMXzg6Pua3vvhlvvB7X+PhkxPmR0u0UBijObx3CwLsXHme4dYeo/GErCgRQqKFAh+RIiKNRssU8ab2LEGhMkKIrCXMOwvBURYFwnuCC/1MqEjTrlFaIrVE6wIpM1SIjAvDy6++yHo+4+ab3+TkwR1GV57Dhsj+jedZTbeZPb7D7VsPaELGnaOG6s2bjMuMF25c5TM/8Vku7O3irKNezeH589FSnt003vteCf10ds4fvgG+c9NFYtR9hek0PvAf2LCnm++0rCxQxCCQyhAlafGYPLms/TgrLwMI3WdbwLl0saqqktF4xGBYUPZZHucSdc1Zy2q1Qos0+yM1HguCawnSgYwIZwielGGIAaW+W7bmj4bo1ghfEJ2D0KTMVwgE3xLtCuqCqEuiyhD9zLTTwPsZy56a8xnL9v9GEFERmiUqthAtVaGYdpJlbSi1TCVqEbGuw6iAMBpMjlSGrCgZ5YaLWwWL2qJihJNbDMohg9GEdXfEKOvAjNBGIeuYxgn4QBQCaz3r2lG3HqUCdeuZLhqUlngHVTEgLO9z/8kJw0HJdNrx6GBBXZ+/AR2grIq+6hhxUnF/ugapuXe8RDAhBEHrI1oMyazkwuUxWy+/zvZ4i6ZpOfr8r/K4tuyWmiGRiCXKiO8FqIpxDjSEds7ju3fZvnKdalgRRY3O92ibnHK0Cyzw4QlCWPa2R2QsiMLQ1fDY5QzzMT/3mUv86nvv0gVYrWqO7QmhtfhW0NjIwXLFSMPWZJvpdM7seI2SaxBw6cIu+3lB9B3P3XgBT2AxXYKNCKE5pUpH34KMNM35Hf+s2OHGi5/g5vtvcfLgAdpqJpPttF+sI/hAnlcs1iuQga3RhHrV0fiWGAWrpkPnA7b39hFSc+u993HWEYOnzCpsFxiM8kQfCqm5uzBJ+ZBoIFPkUjPe3mM8C5wcz8kzRRFzJqMRddtw78Ej5vMVxhiKomAyLrl+bYvdC5fw1vXUQ8VkdJHHcoqQSVigKCqMPmY8HmJdQ1uvmAwrouvoastkPGAxneJ9x95wh63tPSbjPe49nLLMmnPbdFTmPL51h639C1y8epEYA6v2MSv/kGvPv0Ce7fOzn/3n8HTM1zOE8LT1Ea7tuH79OocnmqPjA2Qcc/vWLcpBzsnqAXsXRjw5qpnOniBDxbULL/TN84Eyy7mwdYWj+i6j0TaeGa5bs7e1T/Q1TePRGdS15fDoIWUR2N/dZbk6xHUZg3HkeH6Hvd2LbA2uI2JLlimUJokwWYfQDmMG7O2MiTxie+tSEqVwC4rBFk8OpxgB9x/fYjxJNLqWHGOgVOC6g3PbFM64DQxHI7LBiGy1YjVfpH6jqur7RMWZYEORF2A7WmsTfSwqvLdok+b3nFL+2hCpW4f2LlHrda/mKARlmQKrum2x3hGbhkFZcnR8wmpZMxylzHNVVoxHA1arFcEHtrYmZ4HX6VygpAIWKDKDtYqutfgiCa9kmWaxqLF5l2TGpaLrLEKk61GeJ/nlrk0UI/qqje38h5nsw+3pHZ1NEuunFejgWoRSxF4l75Qacqp6ZrKi7zlKYhwRiNZSyoyBgtWopI2GuFwzRBBCR+c77ErR+ZbgLcE5jFY4ldNYS9d1WNsHk3WaxyUElGVFs+5QQiYaNIGqygkm0oikvKaEozmZ8aXfO+Hm9ev8Nz71OV6QJcLkZCJ9HpVVqR+sn52lTdYnZyLetuis7KttKqmJduff+4XJUpUzz1jOVkwPj9m+vE+VZ4lq/mw/txCofu7Q6XyiU4W+U3jvWMwXBB9p1pZqyNlrfLeg5yx4F1BWGTFWNM0SnVVpjmIvhHFKHT0VRHg2GPp22uAHe9yf7ZVKIz/0aS90nx3v2pZvfOOrDIcVly5d7imA5zYpRVFQVRWIlNDIMk3WJnqr0cl+KUhUqXIefC/uIHC2170TKZDsuqcFAkH6DGmubCAGRZSph1lrCQ5iakpO35GSvVKf7kXMIs86aDHGJJCj0qgl7xxFUeBCsm+WV2htzvbbqSJfWVWp/6soEwtLPA24hVKYvEKQNAKckISmRbXtHyqU8of0TCUD0HOnI6kkLCUEn/iJafMHjo5P+N3f/wa//7U3eXIy4/B4xsmTY2zToDLF9PAJoeuoRlsMtnaZ7GxT5gV9WgatBdKopABCxNsuLTilU4lfgpQp6Mi0IroObyP4gNASJT2L2QnHTw6JyjDe32Fnx7M1HiPyDE1kWBpe+dSrnBwcsDg6oNzaBT0gGMve/i5ds2Z1/JjZkydEmWOrivWy4cHjQ54cn/Av/Df/eXYn++jJ7rkW6QdsK0RPl5BnJfBne6Q+yJ39ziDqAzMJSFLFsVcdSQH20wzK6Sam78NKY1BlUoPRDkdHFJoQDTjRV448Up5ydQNZJtnaHrO1tU1VlRRFQZZlfRk9fQbnHKvViunBgIODA9brda/YY5ExiVmcDkAOoacIxg8OczwPtA4YFcmyNDfCuZrQGdRqhogRNXZIk+NzhTKjM37z03Dqmf6yD1Qd+wZSHNEvEetjaGbYdoqzLV95v8M3np963kB0eCK+bZg/OSS4mAYrA9qUXBqXlNpxNK9x2zkdjpHZwVwaMuKQQWcpdsbsXdxlXVus3WZURWIQHC9rXrk2YXuSVHSm24b1lW22xwajPAt5gfrxQ/Zf3ENryaNMsJ0rLFfPbVMArXSSGBap160LgSuTip997RqZWeN9wCEI0rNoapTvuPPNm7z15D6HBwfcP6r54omgmHVcLDU3JprsuOPCrmRrVDCVOdcfHSFO5vzDf/hb1LHjJz/9KcrRiOuv/wJhdUJeZJBtI2gpZGR/4litLHUX8F7x3kLRfOkW1XDMJ25cwNojmiZg7QG+yWjWntppBkWOlgZXWwplGFza4sqlgpNZjc6HTLbHXN/ZIiKwXURFhTY5QuRkpaabrdKMGB/PMujnwVe+9CW6tuaVV15iPBzz6OEjjMrYHhi60BGDRynJ9tYgKUxqyWBQMpQl21vb/PSf+mmOT465/d477O/t8xM/8Rnu37mLbVt88IxHOZmWqZrvwPqGRdPifCD6wMUL+7z2qdf42jff4cnjY248f4XjJ4c0taPIK7Ym24yGI967eZv5ck6WJwqLJeBcg9YFO7sjLl28wLvvvUduMp5/6ZPcv3MLwpQre2OCkHipcNGCkXjr6JqWYlQSpUSZnBsvvIhQhq99/VsMxxXnz/fD537uc7zzVosPGTacgN+iyCZcvvQSMaTRCSerA8ZVjtaOZTNl3S2YTZfEqBhXE+p2hdEVzz3/AlJLYjjk6GCOJBKCYjwY4jlmOvcM1Q7Z1oCoPFcvXSbqgmz0HJ2dMV9a8lyxbmtU8MyOTqjrJVcvfQJjYN46cpORIVjMliwU6GHH9tYuRsHFnevM9DGtW9P4higduhoTZYV1CzqvWS0W1HaO85Jm7ZnOp+zsXCUb5jTrOcF7srzCcf7+HjhNzEmyvEAWA6TJ0bp9RvVM9DOe1n2lKiIFOJ/O1rZt8cFR5DnW+l7KOKn9Ltc1+7vD1OthLdJ7/MkJ3jlW6zUuBgLQdh17u3s8fnLCatWQFxlCwHq9osoKRlV51kNyOgsKngZuOqSCNxHa1tE0XWo2DykDLkTqy8qyPA1AJ5z12KRgTCKERqskse3d+b3U4LoUVHpPXpSpf1c9nX0ptQaTpYqAbXtqmEQEcC5JU7fKst0syX3OwUTxm/slJwS6piMAXgTaztO5JvX/RI8nqSOGGHHBYX1LiBEfLXXr8L7B+0jTLOm6FIhqo+m0xgUBnSAjw0SBkoasjHSrBdM7b/J531G+/JNcGYxTx3TwCN/h2hqkIQpB9A4JdPWCcrSTJLJVUiBW2uBce/416sCu1vhgGe/usntxj8FwCM8EQKfBVJolKkGkDHFysp/2QyVGjqLIcxrnidHjbYcwGbrvlTtd+6f+Vwo2kjiDRFBkJs1n8m2ipUmJQiMBn4ZZpVYRYr++vnv/1VNqIdD3GDZN851+YHDcfv89iJGXX3611xOAj8KeOp2l5kNAmSzNvVQG6yzBtVRVhY/0vdIq0SL7pKsxBm/bvlAgE62u7ccpKYVQKVEQo4BocC6dG9rovjrrzui5UqexSzIKok/P77om0X/zVNGUfeAoVBrVkGUGEUBJnQY36zSORfe9W7EPrNq2Tckg1AdEPEyWnwXdgUCmChrnEBnYdv2hdvtD1Px8qkYBIPuJ3emAkUoio8d6z1e/9Q7/37/5D3j7vTtsjYaEGDk+PKGtu6TgZwWLkyNcO2O4vc/+/kW0keSZOSvxaSNw3uNikj5upjNwnsF4xHhnC6ENLkq0hDJLTaad8+RKIH1Ht1zx5M4doo+YskI5y3qxxLWOvCyoipxBkbO3M+HTn3mdL3zh80wPHrJ9+UW6LjUXD7Z3qRcLTmZT5GCLMs+IRjOdN3z597/F7vaIX/qzfxZpzt/Yn0LFNHNpNBjiug7nLZ7v5NR+LxW+78xgJJVExGlLUDognp2iffr409qUEBCig5hKr0lUxJz1FCkpif3CllIyHJVsbQ0ZjQryPD/LFCS1lFSpLMqcwSBnVI3Ji5zHjx4xWzREGei6VPWSuNTLQfrevUvv89kF/UeFjy0uLDFhiLMSqRuUrAidJYj5aYsZYsvDSCFEjkSdfdZkI86yOadM5BAdoTsgrqfgGsLymNCuEb7ja++1vHNc8vxwRbQnEGtc1HTrFc5afNdCtyZqj5KCdQcn68Bq3dJ0kvbxPfz2Nm7lWB4/4HKmqBniFjV1Z/EetCINn/SJ0toXgxECjApo5TAq4FBIt2ZQeLSAtgqMi4qlvXJumwL9HBnVz3DL+cTVPf7N/+Uv8xOfe4Hm4UNePP4NnnzxMbPjKfO6Zd1EDha/xz/8rS9zeDwjIFg0LTYGHq0lN5ctPgQG91vyzJFllvx3/ksyPLYLvHH7IX/jb3+F4XDI65/8LX7hMy/wi3/xL2DG17lz+yHvfPlrPLlleHg84HBh+eyeRqsC4RTL6QmTkWGx3uFX3lixvT3Ary3zGTxYK+atxbaRddNR121SK9Jb5LqkW66ZXJrQrhbkecVkNKBQ4NuM7SgI6ykiBpSSCKmpzOjcNl3O5xSZ4u7NW+zuX+T6z/8cd967yfxkSgyOIkvZLxUlQYgzVcmd7V0+9zM/xc2b7/Pg3n2899y7e4fRcMArr32Ce3cfMD85QKo+wyYlUmtMDMTQYq3l4sVLfPqzn+add25RL9doFA/vHXDxyi5dG5merHChYzQccv36c9y5/T5Ns0KPSppVgx/UvPyJF5C54etvfAPfpf6Pnd0LvPrJT/GNb3yV2K1ZLmtEliX5+saSa9BFwWKxZu/CBX7uF36exbrl1pvfZJBXHBycMBydv4pqckm5M6HuLAO/T1UJvC+o8gHlwDBrjnn3zpeJYs2VSy+iTQAKRHaC9yv0MOPq4AW0GNHaKa07oF5X7FXXWK6f8PjBA0xuODl5iK9H6FEgqAJTjVBZROaS+dQS0GTGQDRItaZZt9jGcWX/RURULGctg3KIzBW+W2PXDV2Zo7YarF8hjWZUSfJsi2ULJ8uOznqsXXEyv89i9YCrV17i2pWXuHn3DabTQ+LAsL/7AkoqiBLXNKzbBa5t2BqefxAy0B+K6UfbddR1fXZOF0VB13U0TcN0Oj1T9zN9Jlhrw2o5Y7lcsrO7je0861V9RpdrmxbvSrLM9H8qOY8nJyfkRY7QT1X8qmrCxYsXuffgLjEG8rxgMV+gYgrmvPf9zB19RgVUSp01uqfAKKCM/sAMqXT9Sr7M6TXolB2VZVkKBr2nbmqkSlLJaXbi+WBdl5KIUiF13tPcslT9DwGUxuQD/DPBhRSSEDuk0nitkK1lsAx0peGdsmXhOlY+0SdX6xXWO0KMdJ07qxjSJ25b3+BOfxfFWa+St6n/vW0t67omxhVFUfT9RYLMZATf0TaOsqzITEFZpmDg5OSI33lyl1++8gK+XbNeHBNFUvRNPdTizLGWWhGItM0ChETLDNs1z/iYf3TMpWcnz8mFpMxzTJ6dza087Zd6duRMqqokBTghksD7KU4rHcNRahMoqxJtTApuzxLST4fBhhDoui75Q1Ke9WNZa/vAIM23CiH2LTFpttSZoIX6YK/Ud6MAnv7O+14U4lmF3giz6ZSDw/u88PzzXLhw8YyF9M9CG/xeOB1nEBE4b1Mxwxg6Z/uKk0zCESQVP0FaX0ZKXEy+oxQizRwTEdt68rJCGUF07syHiSHNdTpV3JPCkZuIdTYpInpPWQzoG5ZBgMk0XdOAUEiV9qPtOpTqz14imc776meRKoKkfi5JCk59v9e9933fooJeQC9GjwgCLQpW7Qq0oChyWvntifbvYrcPuzP0qn0iJvlLIfq5UhFC9Mzqhr//T36Hv/V3/jG3bt1OjWM+4oKnaVta2yBlQHtB18yRQrB36QKjYY7unX4bA0ILOhvoOku9XtLM5jTLI/CB+ckhi/mQC1evIvMRRuvUIC0UJgqE8Ni2pm1rnLfEznLxwi4XdrcRqqAwOVmeEaSgbmryLOfqjUu8+OhVbt56l+3LvXSlj1RlQTnZZjE/xK1bXLCUyhBaj5OWd9+5xSc/8QmuXHvu3AtVCQdRk5mCKp/Qxpa6m/azcT8oc/m98J33iW/bQH0V6LuUjSUFkEq3SSyiBA+x0wjTz7Uj8VMjSfBgNKrY291jPBr3GQFJDA4RAqEL+JRkIsvyvmJVIlTEY2l8jV2CjzVSS4RNB8NpZc77VJ17drr3HxUi5ngf8a4BJL6tCfYE509QcYKIISmcrWtidQjlGDXcRZdjBBIhsj6QSlVYgiWGGtee4I/eJzY12DXN9Ams59x5cswX32uxZkSlOoRWRC+J1iGip+s6qsIg3RoRIkJ4Qttgu0BrBa6uGXBCzK+l+UmrA9QoIxY7WARtSH1qbRB4J1h3gtAFtHFED4ulpXXpMMmlY15LRi6wXjdYXTBvA9aGj56ZFuKZC5Li1cslHN/j5GHG3vaQf+Ev/zwv/cRDfvMfvc3NRyuOV55ye4tOehZ2nea7CENjHUZ5KDVZkTMaDXj/9hFrlsybJdtlxmvX93ntxgXuH86om4bHt+/z29MDJvsVdVT8F3/zn+Ct5Pkb1xm8MOK66yiPvsGlyxe5N22ou5Kb9x/Tes9bhwHxcE6UkvuHK4QMzKxlNl+yPxmwvzPhyfGSGODankD7NYcPBGU1YP+Cxrs0xDozAj+b064WINKkuegDF/I/vLfxe6HpWtouopVkuliyPZ3xyU+9xoN793jv5vt0a4sxWWIFiJT0uHL1Mp/6zGd465tv8vDBvcQz74V+Tk6O+PrXvsLLr77G1vaI6fEjZJAYkxFiYLWUDF3FJz55g62dHd56+1voKNkap+ziqrbcu3uf3b0LXHnuKo/uP6BtOwZVzsVLF5hPj5kMxhSm4IVXXqENgePbdzExzd9D5RxPp9TO84lPvs5bb7zBqBIcnJxQZANs6LDeUg0HjHdHfO6n/xRPHh9z9+59jBQoJfAucHh0/sGd773/Npf3X2Rr7wLg6Owhy/WSbJBTac3ETFCDgqB6GorIcDwkygzrljw+fsikvEjXdnh/wM7WJbKs4/H99wghcnz8BKE8V24UOFqW6wPev7PgxvVXEVGTh4gygtlsyjDfYlnfxgePjCNUGDCo4ODgDZTUZMMBuRmybA4ZDCHLLFobQmiIvgMlsd2ce4/eYrZc0rk052vdnPDg4T3KYsK43KLMxuTZjCpPI0BEtEhtyQuNXQsWy2NKfeHcNoX+OhMhdI7YOVzXoZQ8E55YLBZ9RSo5Ic5aolS902fIC81ets2wrFj6FWWeYTLNqKooMtmruoKIAZNl2K6jKou+V9CcXojwoSP1vEa61iOwFGWFj6kfMEqBDR5Jqig1TaLE5rlBCNkr8KV+C2NkEu8xGpPpnhmhEQLyIkuZ9pDkna1N1ycpnlKPPkrSLzW3J8EJlaX2BqkSeyGK1MubfqdJE4r61GuvwNeFloVbknUtD6rAna0CLzNU51i3aT5nZx3WuSRi5F1SKBQiScmj6FrXy1MnJkkMqZrgbBJCsC6J2ATf4i3Y1jMYDBgMB2nEQl0jRIVRGctmCY3l1p33eWc05lPjPWzXJL9PaXxw5IMRwXc9Y0Zh6xVSarJiBDISSSIl50We56g8o3Jw5cIlirI88yWe7Zc6DaROqamcCkX0w6TPqk1SovOcrbIEma57pz3WpxS90/6n6XRK13a9cElI88JUGheQhtrGM9qotamz3SU1ikQz/LZGg++VMD9NEJxWjNL90LYNDx7c4YUXXjwLpE6f+7RC9UdHCt78WeCptMYLqESFoEy0PpKGmckygnM0bUOeJzVsZXK8c2fCGBFFOdjCuhVIQWY09EF26HvAEBJtFCF4CpP2mYxpfEdKeCRxluBjEojQGc41KWRVOgVaeY6z6TxVyhBJ2g5SaPRZH+bpvLaupxIahEgz1JxzSbxOS5ztMEqhpEDGpFIe1Ydf9z80mGralOWIpOjzNJPvbMujwyP+/ue/xD/+p1/m/r2HrGZz8kFF23U46/v5TB1CpL4cESVbF/cZ70ySaI0U2C45Be26JYY02Vg7ixKW3GRYWppujTtqqKoB412D0hmFNtgoEUh0AC8Upiy5dP0GdB0X9nfZHg1xTWAxbbA4vFgy3h9StwGTKa5e3eX9d79B06wps5IudpRZxdb+Lq2z+MRsojBQDTJ8ai7Cef+RFH20GpCqvY71+gSlMoR0RCwiPm2IhO/WH5XwHYqAKIQwqR8oJqW804yIEgIRUipACokSmiglIksUh0xnTzMjIRJln60TgFQURcGFCxcYDAYUedEfPGnocKLmeWzwSTIzxHQRzTImWxOcd6zrdRqG1nN7tdZ4F88afY0xH6BnnAuuJrKm0x4dtlJwhEX5jiYuUe0cVc/BDPD5FD3ZJboFfqqR+TD1NukMtCDUS8LygNiuibYh1gtwDtssCPWM5WzK5796QBsvo2xDpVtC8DR1TYiBy/svEgl44ZBuDTag4oKDRcntwwWrRY09uMUr4YhZp5lPV4jp+9RFx4OTNVZmLBct66bj4v6QGAWLZcdsuWTtS3JdcrJ0SURB5BRGs2hhhKU+PqEeXGBRR9rWo+VHy0yLnqMsIiAtper4u//ZF9m59C4/89OfYG8Lru4Y/sJP7vNf/XbHWw/WzA7uEaxHS0NmNEWmuViMcXVHiIJMZTTeYYZgGsnecAsFTOctuyPB7vaQk9mC2i05Xk/4//y//g6XdwouR8u1vQFb8QHdPCldaSVodMH05JguKtZWMlvX6EzQeMmjkwWtyLD1ivl6jTY5oypD+BbbdazrhpPZMYWBh0dz9h1UVcm6toh6zXacUfhVumoIiVCCTHbs1o/ObdPgkxyyFR4pBCdHB3z5S0teeuklPvuZn+Bbb71J27YIApkxvPzKS+zu7/E7X/hd5ifTtJ9VT38Qqf/RdZGbb7/PtRs3uPHCq/zB175KszpgMhiyMxrx2qdfYzab8/4bb6GNZrw9QYgU1MfYEWzkyZ0D7L7l2uVL3Lt3Hx86BsMxgzLjheef4/KVq9x9cB/XdQyHIwIDmuUy0TO8pV7MeX8+5bnnb3B8eMjxfAEEhNZUWcmnPvUJVJ7zxS9+MSXEXKKvNW1NU8/IsvNXpspin7ycYHSO9R1ZPuLqC1c5Pn7MqrFoWbA6OaQaD5kMBhw8ecTKHZGpbfJsl6Y5wYeIyT15GHH73nusmkfMnjwhUxkvPPcik50J42qINILHD2/y7pvvMppsMSkGiGFG8IFmZQndCVCQKUmuKy6/eJXW3qLrZlRmm9VshR4NMIXBBk81sBTZAKPGGJEjlUzZbp1RVQG/0AiVYcSQF66/gLOOtu3oupb5vGU4DmhZI4RgOj2mGESytkJkAaE/2mgESNlY27a0q3USdBGR9bo+m3Vjz2a5CBAS2zd/t21DnmuKYsCgrAjO47oOQmAwKrBdw3KZ5nNNhkNi9FRliZSJKih7ao4j9rS8RK0VQuJ9T12XgTLPUm+VgLZrMVozHBqWy3XfbG7OBnZGAko/rUJlmSFG+kAiJRCTPHqkKDKU1CidnG0fAtZ2/VDh80ERkVmF1FmfmD6tIqRmf84cf4WQEmfXiTIlDcF12GhZ/t7b3GuOebwvaIqCrot0fRDVdjZRzSMIaVBCYTKZZu/E04x8xDvXVwYSzcy51PPirTvL2KPB+xSQRdLMpeE4OdJN0/ePCIldLxDe8cWHd7lcDhkUFc61KKnRWZ4op+UoUaRiojKaokozhmJKFOiPUO0ri4y8LLnx4otsXbyA0qeBEX1mOAVO4TRo6ulgqQrxVJUPeTowRaSRKEr3sz/T704DFa3TyJTlYonvLBpBWzcUWwOMzoD++1QRoTkTXwghYpQkiyQhM+cJwXE6fiic9U7Fsz7lUyaR63uStJC0TcNyOWc6nRIJbG9ts7OzczZr87Tfr6oG57apMebMP/M+INXT4Cq4kAJl79BKIZSmcR7rBGsaypFJ87mUxvmWGD15OUKoCiMiUabeO2eT8mPZV7IjMbWW6CS0YqTAOgsotMnOqkiZVjiR1nckkJkM51KcorOMSJqrGADnWqSi718zSKET4yo4LEn1VvXqnqlaplAqBfbWtujc9FTNxM6pv02c5tvxoavY904E/YLz3nLn4SO+8Htf5423bnHv4ROmJ3OsbdDGYLRJxo69SkUELTUei8oLLl6+RlVmKC3prKdzjvVqTZVp9rZGqJjTrjVxVLJqGmbzOXJdk5VpwyBFUlaLGtM39kWpKQYGoiXYmkLB7t42W6Mdhlcu0xYZV7YqDt58g7snB1zYyZnXFu8ctp6zPnlMVkxoIwyKSFVk7O3t01nXl/siRaZoushoVDHe2vpgqfWPvFArnO+Sah6Rtl0iRBoMI3qZ0rPGJ57l5572rfUbLvqUxRISYtbTMVySswxZb3uJihLVl1HTADsLWiGN4umE76cZjWc3cZ4Zdnd3qKryjBd8utGsDbRNR2c7WpcyhYNBRdd58ixNJL98+TLepcn1jx49Qqk0QyNGMFmBd0ltLTWintukeLciRoloBFJHrA+gBmipcV2aru3qGqJGmgGhniOOyjSIuagQuUoNtEWBr5e49TGhrYm2pVlNwVtcaIjW8hvffMLN4xLLknHWUJUWRIvWAmc9W4MBD4+WqBBolgsyInpxgvS7PXNaoOu7VOOKh8uaZTzkpXwFFCxaRYNjsXJMFyuyMocoWS4tj44apFGUmWC6rHl0sCboikIbVm3g5WHJnaM7HNdjZos1x0crdsqPEKCSgikRA1IqMi8ZlTkHBzMW68By2fGrf//r/PzPvoZd1ayaxIWWQlOU+kyCWAh4bneLXEWOFg2PTmYcTB113TEcDrg4rpDCpTlIK8vQaC5tTZita249OeFwtuAPbmv2Ss18b8l2aRBRcvHCmGJnn7auCcZwdDRnvl7iU9cc81WNCwEVBCetRSpNlWcMiozFYoXzLomGxIiz4HKwPjA7WWFMyyQ2qLCkja7fdxYhFFEEcn1+h8r0Z0cUgV5gCtu1vP32m+zt7/OTP/WTvP32u4jgeP3115nO53zxi18hOofRqWch9g2zSiaSipaaLDesZwdMpwdcvHKdN7/5LV7Y2+LGK8/z3jvvMj+cok2OyTIWqxWLxQLwZCYneHDB8vjxIet6wcsvv8zduwdo7Xnx5ZchRr74xS8RvGU8GZCXOTofIrqAXS/SWADf4L3l/v33uXbtJaJU3Lt3l6sXdnnhpRe4ffsejx89xMeALEvKIlXfVusVMVqiP38f2qo5IMpBUvEk0ZXm8yeApxqM2NnZZXGoCAS0LCgKw/JkjMpyilLRdhnNbE41GpKZIbkcoss9iouK2ewQYwRSN4yzVyjjC+QX97l/9zdYrY4Z5hLXHbNa3kM4gcmGXLx6FS8ci1lDKw5BSgo14srOSyzCjK6zrJs5g+EI3w0ZFtdTNR+DiLC7dR2hAsu7hyj20JljLQWyeIQ/2WaxnmFp0Eaybg/Jh9tYJ7FekTnY2tri0eM1XXv+pN+Zehn99UEkFTxBhOBZr9cIIaiqisViCkBRlBRKs1gsUEqxWCwZVKOzoKbrOsbjMScnJ3jvKYoCY0wKUKLC2kSDixEGg5yu6yiHgzN1Ma01ZVmeUQrH44p1ve4rAYFMJx+kbZPIQtslepwQgrIo8dHRNi15nmOtPZuPdTqg1xjTDxmuz6pTst9rbdvSti2DwfkTVO80LZ8uk0Jr7G2qVAqsgncImfqPlVK0tiPYlno1JS9GSKF4dP89Dn/rK7z/AhxXGvtoxkIEaD3rpmbdNfgQAJHoz6npjRBF8nes6wOkkHy701ZtERB9gEqMeA8+WASC4JOKWQwCqUErCTjariPLcqxUNOs1j+/e4m90nl++9hw7uqBplhTDbfJqTPBJUVBIhc6SFHozP0CbkqwaY5vluW2aKcXla1fZuXgBk+ec9oWfSpQ/ezutUJ0qzkFPuTsLZDgrGkgp05Sfnur6LF1QCMFwNKRZrvq+wtSiIoRDKJnGQ0hBhsRFf8bwOB0oHfs+Lu998oGiJyKTFkFMFcoQ4pnf19ZrvPM03tE0NfP5DOdahsMhw+HoA8IYWuszif/z4nQYd9f7TtKnNWmdw8gUSFlnyXJNCGBdoBzsspw9pBgk9WPfFx3W647R9kWqwRjfeZxPn1tnqvdJJc66PrmQvFsf0iBfk0mUNL09Qt9tL3p1S5NE5qQ+Gy2QKLwRqU3q7wzpfWuTEWIv+gK9em7gVA8gxkjnHEU5JMsKbJf8uVO2knXJB8j/kBlzHxoVnLbHxRDovOXr33qHX/vHv837D4/omoZmWeO6Dh+fChWI6NDK0JJK49512K5hUFTsTMao4AlOUa876lWN8S2jomB9911GF15mdPGzDLonzJfHjCYTmrph2dkkUYwAbXC2dxIFWB/JTY5RaQCn8mlehCkLrJ/RvXOTJybwZG0wO5cph5ranhB8B3i6ZoGIHnUqLa4k5aBEWIuXaWAmPRXx4sV9BkUF4fwXKRe71HwpNSG4JI/bQOxCqgLG0BNKe7GInnkW8SBUylqlfAdEjRAZioCQnhCTAMMpHzip72hUr7yCgCDTzBwpBVooRIx9VP5UACM5mI7xpGI8HmCMpCjyJDMZI23bMZ81nJycMJvPsN5RDkr29/bYRzMcPN3go/GEnZ1d5vMFs84laUBkkgxXikRysEh1fvpEiD7NkELioyO4EzJhibZAmCFaBiIt7fIY0Wb4boHOBnitCMtIWY4IUiMznQRN/ArfLPHtGlvPECEwreH33p7xxsOcbGufSTXE1yfcOjpgnHUIPDFY2naJbQXCOurFklJq8uUJz183bI33eXh0zOHDNV/9+jFL8U1C9yV2Py2ha9m691t4LRnVjl2rGN43+GgprKWoPdX9DFkMUEEwFIrdMMZEQ6unLB8fsTiaYQZLVOfZVhOuP3/j3DaFZyqjApCB0V7J+/cs778/5/LeY+4eWt76ta8RelqPynKGtLTWUWaGQVHwZLagsWuqvGRcGho/5ujBASsbUU2HHufsbY14cLSg7gKXrk8olWA0KLj1eMbJw2MkHavGMG8dVa7JoqZ4uOTC7oIrl3dou3RBGpUFnU2B03FtuTQc06w6Zusa7wPjTNHUDV5KXri0yyDPGA9yhEtDTuumSVPTlWERA/eWp1K/irZrybRER8krnzp/L5qUug86I0pLiCrREYTg6OAIIeDP/9IvUq9rvvmtt3n86DEqCqTO0X2W1cckNysjiYYgJMfLmvWjQ6KQPHc58i/9pb/AYrbk1rvvU09XFMYgTVKyfPTgCbPZHCTs7+4xqca0OGZNx8m05c6t9/iZn/4UQRS8f/M+N2++iUQihKTrGoJbARF8i3cWYsC3Lc5btMl4762v8dM/+zO88NwF2i7wla+/wfTxCQLHcDKCGNGy6KWvBdab1Ft7TlzYu45UguOTByhj0SoniCkmm1CvI21lIasxpmA4vICual649lm0rHhydAebCbyzuK4mH1Tk0oDcpSxGjLcuooxGyECuEv3k+cufo/j5IUftXUaj5zh8fJfGKwbVGCkjD+69w2CnJCu2kK6lbo65duMFclmyXJzgfIe3JTF6Lly4iu7VqozJ8d7ifYfRJcFOkKpjvVpha0dltjDjitXqCflIsLs3RIqO9eIY6zqOpjMKfQmvJc899xkOHp9/dhf0ARUgMoXKNbJO88uiA+eSw7VarXpp6BypNNLkxBA5PJwxGo3I8oxHj55QFCkDbTLNdDojzzO2d7aYTZcMBgPq9Sr1JJ7Rm1yi33QWfKDIMmznaZua7cmYqqpwzjIsK7TSNE1DOahw3tGuLUEI6tZR5L2SWnTJMVQpu++DPXOun3VGk2BBCsh9sKe5ZFzXDwJW56ejf+HJI6bAn96+QG7yNBhbyLPeJSGTwm0IHtvVKKlw7ZJ2PUWanK+//XXCHiwHhvrxlPWyYyEdovNJVjrSJ1vFmUhOSnx2eJ+qI6EfkJpy3SlBm6pSPjmWIsm/B5eStd6FXslXkbcGC2RbJcE5utajixHT5pBiPuVYKX4Fz39rf589pZPT29PkVF7gOpuqkwRc1+C6Fu86ssHWuW366ksvs3PlErKnnkqp+/ESSQ36lJr3rEz6GfMHnkpiQ68Kl+Z60VdH5TN0vKfXQ4FRhq2tLbKeZiiiwlnL7d/+MvF4RtiZ8NJPfY58PEwzm3pRk1M8pYs6lOhFRrwDBEKovs0iUNcNeMtomBTmBoMcIRxtp6nKqk+QP60cDQapIrVanV9x1nt/FvwFmQIZ79LIjRgtIdi+p4pe/S4nM9vUqwUxKFSeEbAIrzl4MmXv0iehV/DT2vTCdWlfKa1p++G+mZT4kNS5tTG9yJ1BnyopKt2vzfTtpZ6uZMc8z1MrklKYLEeanOBEX5XOUt+f6wiuw7m2r0znaKVxPr0vk6U+RiEsznWYPGkz5FmWKtPdhyf8/pASS0xzFRR84623+eu/8nd4crQmuobOBlzTsm7SMLxgW3SmsUR8dEThccEiMVjv0LkC4Vivl5ANaa0j2I6t0QDpPfvDEZ947TJiZwt31HLIRR7fvU1hJLK2HC+W/WRzkZyC4AnWoQVJTl0ZyCtcE3h0OKVadWyNdlgOLrLWGXpbUWhYr2a0tqYcDtjauciqbdNQyT67YKQgU4lTnSuR+piUYFIUXLl8OUW5H0F6Svg2ZaJCalD0/eDYEOvEm1ZpoaRgKvSzo1JvGP2gu4hM1Szo+dYRokCJYeKHZg1SpoMiyzRSCiZbI3Z3dxhuDfq/F1nO5hw+OWC1ThkW72JSWSEdLNvbW2dNlZAOk6ZpWCwWHB0dM58v6GxHFJ629RwdB7SB8WTIcDhAStlXnGyi3emA6zyElLGRJCcG4ZAfwagypinWUog0v0Iagl/ifepD6OolPoDrPAJN6E4QpiKqPku4PEAYBeUAJYt0EbFrnF1h2xXzdctvfn3NI38RNdAUZU4MLaum5Q9uRfaqksuDOTEK2vWKZiHICcSuw7ULuvWSdVNT28h61VEv15TZkNnK0x08pF0ULL3CLb9GxKK9RVmFkpFMeYrYsWU98cTj2pYimuS4PEoBNEjWzZqLLiDjY9SxYtZkzA6+Dvzvzm3X0+9cACoI7MqSq5yVsPzd33/I8bImxMT3NzJQmnQxAMl4OGCrTMHy8WzNo6M14yqnrhsyPI2AZRd459GMVuhEe/CeTMOkMkjfsTs0VHnGou2IIdI4R5CakTHkKmPRet5/cJwyUSIioiRXCpMlVZ8qN4xNztGqYV237I8HeODw6Jgro4ytMifiqaocFSNFlSN8JM8kipw3H0juH64Tzx1BEQWXdype/ghqflL12RGSUmOiK/VsFBlROBbTOQfHJ8yPp5gIQqTRhKejDaSSCN9fjaJiuW549/59xuNdVHQoE1iuWmYnc3QMDIf/f9b+s1mzLD3Tw65ltn/d8elNZfmuRqOBBhoYYEA3JCWKVNAFpT+hf6QP+kZFKBShoIYjiQIwGHig0WhX3mRW+pPHvna75fRh7XMye0YsBDO5Iiq6Orsz87z73Xuv9TzPfV93iTU9aVHQtA7jwUvFpu1YP3tBlp2wO92izGc07Zrees6WGz794guePX7Etf2r9KZGK41pDa5vED6QCYlF4m0XwxyVxlmH95Lz4zOMV9z/9hGbTU01GbOanyO8oNT5IHUxzKbbmP6M5PWHfVRlSaI0m/US6daIsqXh5+yP/iNcXVGV2/S2oekXVH1LXfesl8ekpLggKGSOnmxRNy2L9Quk8qgkZ7ZznbafUxQFm3rJeLzD8cmSF48WvP3uW9xJ7mCMJTUzOt/Qd0s2mwXb022evfgEIZ+xPbqNsZ7jxTO2y4KmWSFkIE8yqgyKYoKQAq1ibouUkq4/4vj0H/D2KjtbE5rNhJFo8YxozCmrzRJV5lif0nUGpZdIOabKKrxISNIZXdcg1Zt5JmEQPAiBH0htQclfC7SNGUHJQMuKB7HpbMbz56dcme6RpinWOsaTbYyxJEnCeDymbRu01sznc/Z2JgP5taeqLjwvgTRNqOuaruux1uB89KDkA445G9QSzjnIMvquozVRRiSkxFg/QCMUWiuazgwdc0eWJQQfPRTGmEtZ0+WfB4PHKhkKrJiJlbzBjSpXp/xj17FZLPiDm3cZJRnOdpHqN3zmCwmiUrG5a9oNpqtZbc5oz0853BOcn58hzjasvGXtop8tWg9iAzViqsOlTM85h3Ue09vBFhwuJx9KCWSI1+GifS6EJHhAhNiw7g3r9RohPWVZ0HfRbxLweCFJ8pJ6cU6lNEdNw79sav6T69d4lwDOoZIU8grTnWC7PpL0hiLFmg71BlPpq7fvIrVCyAjDCj7gsDgXJXamMazXK8bjMXmWRdmcjdlnMZxVXl43IQQeECr+bHLwsV1OqC6+x0ESmJcVWqfDGcxxdn7Ms2fP2H58SC0S/uHsjIOP3kdpzfZsRl6ksWGAgBAb3M7F+00KjyRgTJzidV1HluWYrmY6nfCSyiyHfNaSC6/5hZqoKAq0TlivN5cwrddZXqjBrecQYQg01gFvLGGIshFS4UNAEpv/eVky2dln8eIJu0mK94LDZycY48nKCklPSFIckKQxo/aieE2y/NLLZvuONK/i/aEsWmVRRpwkOO9IVIbtxeX3ezE5doNkVScpaiBiyjSja2qCtyiZx/eTtSgZQGhUmiOVJlUKLlEkkSIa5ZeSNI1KLKlVzNr9jvXdaHQRH6zzzZI//puf8ujJM5wTJHn8gGIYhUpi58e4FhkiQQPvEcEh0WRKYeqO1dkCoRTlDLTKCArGsyl5UXL87Dmbn/wjWn+MKCeMbt8jlQlnxtD7nqzMESqJJn9iR9YrERGNqSbJcqQokNUIvOOsbzGrOcIKUC15yAjSUTc1qITJzjY37tzhy68fgIx4dU/MtUoV5CmUGjA1Wap5995t7t65jdLJ8MW93trb3QYGk5+XNK1luTwfzKbEYibIKCnykUICIHwsugQR2QkCKQxKgiBF60jYkwp0DpPpmHv37rG9PSUvUmbTGWVVRu3tsBl6H9isNhyfHNN3Pfe/ecKzZ4fDy0ZQFCVZlg2yCnGZ47FYzNm0K7wwCOUvKSfG9Kw3a+pmzZafkKR5DJTEg4vZYFIovADnDAhPkgqsjS/3113eekJqcW4Yz3qBw6G8x4cM4QzBBoJ1+NDhEOANUlmE1PTBo3zsrAat8C7Qtw1tu+FPf/I1Xz7qeNGM2Loypm9XBA/n53MW8zlaKFwz4r/4rYRJGjNPutYg8hClf32D61v6tqO1aUzk9j3FnQ/YuvZ9HvzkLzk/+nvCW/8Ruz/6HdarSFSSAcZjiTOGxbyhb3uKzOFtT9N6HIrpJCUYR7/esPn8b0m2c8o7v0n46gF6uYqG9jdYr5a3Qmo+/uqYb097TtaGVFsSKclShQgeYz1B5vRdSxCaJ0fnHKeS7XFBby3fvlgyrQoInsNli3GBrXGFcYHD8xU7lWZ/NqLrPJ02WO/JlefKLKc+MhjvkUnOtStXub6/y7jQ7I0sRycbPn74jCLVFElGb3quT0doqQlecevaDrX3HJ6esWkbUp2ihaLIM4o05cVqgTGWXEsyLUmUoneBvu05Wa1og0OEQJlIfuvODv+bj+5wc/f19ehSxAIzNqPj33exURvb45xkurXHt48Peevdd3j8+BHrszjVkQMdCx9IENR9T5ZHKfKd/R2c78lTzdtv3yO4wGQ6IUsTFosFKomodxSkWhKkYDzdIi0qDk+PaI9OubELk/EYLSV3777H6dJyePiUp4eH7O9OaDZL0jyjXTeMpioa6VXAmTitFkrT94Y0Tbjzzjs8f7pgVM5ZLlcY0YAMMUgxTWnWDVa4OH1wHY15/ed/0zzFmCkni6/Z27lH3X/GuHgHpSqSKqHta3q3oe3mrDkmzw5Y9iu62uPlhqQYkyYVIU149OwhO5NdptMZx4tHiBSC7UnTCShBOdKcPTni8LHg6Oyc2XTK3t4tgjhATD2HR48RvuPZty/YvVoSxgl5fpXgN0g0fdOzu3uA1IbpZAxoEl1exkR412NNz3K+ZDS+gtaS8Wibjp4ka1muBSfzZugWxxyipjmjbp5RFZLnL1q2tvcJxqAoX/uavrpeBRh56zAMXfwQfUd9Hz0H6/WavKxQlaJpGqy1HBwc8O39J4O3SmKtwzlPNRqxNdsihAeEENg/2B/M4wLT97HJNRwgjTHM54tBguYwQ+ETsdORnta2LV5AmqSEJOZBRdpanJzGwkFd7n0RUhEDSC+ofxf5PxeZQBfYa+89m82ayaQaYBavt1xwZM2ab2rHSdD80dUDbo5ml1IyqdNIbHUGnWQRZd5ueDF/zp+dPOSFmVOfraJnTTisM2Cgv5DoeWLuTggEZS6jOWKuVHznxOI34L0ZFCkyvudDHMH54NEqoqtD4BLIYXrHZl3HaZmdU5VVLEa8IU81rc5oOofsLYvNM/4sBKZpwb4U0Ems6XD9gPYOAilU7BcjaBYvXvuaiiGaBYbpk5aX0r22azmfn6OlpG0amM0ALiWjF9RTeEn+u/RQvSLtiw2Fi8biBShEDFLCeN2sszw/PabLBNaBKxQyBJZnc9a24+jzz9mvZszu3GT37p3Lv08M8jTnHPTRB2utRfYBazpGVXlZMF387Awergu7ifeeoohxNZtNfVksvu6SOkH4AfjSNmRFFZv43uGRw32URKBKoths6nheHI958NkpH//qF7w4OUdKyYff+xAhBV3dDmTgSNTExrOJVhqSCLlQSZxmWueGul6idIrUGtPHaIALUqj3hkSlMSNVKZwxBO8oixGoAYKTKGQP1rT4JPpaTW+QwpOXI4JKBv9XlFmavo/vlETHIlIptM4IQtLV9T8Z2P3dnilvCd7zjx9/zCef3add94QgKPKcJNG4ricRgl6AdQKMRzhLkuaENMPaHkJACcWqrWmamrQoWJ2fM9naJRlVtL6nkgn7t29gTNxMur7HnR4RrGXTOGonKaYzkArfd/HAY2InQusY8JsphZISayKjvhxVbDYNXV9j+568W6IGIEYympBIz3RcxrTwtkOrUfxZpSRPAmUSsH2D8YHr167wOz/6IUVZxWyoN6j6lyt7KeUTBJJUX45qCT4WUUEhhAbxshIWIQxj1jBUzWkESigFKLQWJAmkuWLv6lU++v5HXLlyBSEC1ai4HP/+mnbYw3S6xcHVq4QQePe9D3j48CFffPkli/MzqqpkNBoNkgEVc4VshEr0roEh0FeLBD2YaiMEI+Z1gI+mS52ghCS4WPND/CwSP5D9GDpjr7dUYjBGIX3sKHgcOom5As56lAx41xJ8hKN4kRCcQycdgZiVFYZOvzWWEFaYbs79b8/4+TeaJJ/x/Pk3NE3P2eKctotSTR88RZry5WPBo+uKj24kOB8LOpUIlAwEZ7Bdy/my5bDLOD06Zupf0OXv4bMxjShY94qlm7KnKkwB6zCKnddJRW8CTWjps57pfkWwns084tNn+yXCBtp5jT55TC6WmJ175PkddG+Yzd4stPcSBSoErTX81ZfHNC4hTwWzSrFVZegk4/R8Qd31zBvLpndkiSDLUppVx5OzJQfjEdY7zlZrsiSl6eN7pe87DvZ2UcIhkJRZjreezki8C2yNSq5teV6cN5ysDZ6Ud9+6yQ8/ep/b13Y5PvycJ89+zu6oQEmBc5b1piZsj8iV5Np2xW9+710Orl3hz/72Z7w4WyBkjwwx16I1PU3Tko0q6s7T9jVVltMZC2jKcUWWKa7kmn927wbfu7NFmTj68Pp69CJJsSHKe/CDBGmQoezu7vFbv/97/OLjX/L44ddkWcG1a7cYjSYcP39G6G30WkgwOBabNWNVUaY5ozzj9pU9rt++ysYY2s2C9XrFdLbFles3OHnxYthgEtJSU3Q5GoXbzLk5yVitJNZ7dva2uPv2Pf7kz/+Bo6MT7ty5x4vnh9SdxbuA8g7bh2gyT5IYLqoVyisyrRltF7zz4ff5/MsHPHvwmO2rV7mR3ebRt/cp84JqVMXuMJ5qPMIEg5ee2fbWa1/TrmtZrk9p+hXr/hHNsmaaV6QzT5Z2zDcvyJMZ4ED2zFcPEWoMiaFrPXiH7ZcEWm7t36Xpl0iR0HU1aRgzX8/Z2dliVa9R+YyTdcsv/+Sv2GzWzKYzrlw9ZP/qbfav3GR/9y69n/P2vd/DJWdIkZAmu/TrY3zvGWc3aDcbyq0lqb5NlhQomSIGcp7AkKUjpqMbzLsTpC1JxZi9vS3KkcA8XrK3d4DSHWmW0VlDWYxZ14ZqukXXHWP9E4TYJ9g3IM+9KocSUXrkbcTs+xDf10URM5/SNKXvDXlWsDWdURY5aaYROk5VA57Nume1qmkby3K14urV3ZjhJSR5UXDtxjU264ZESk5OniFFDNtedYZN27Np43u1blqOT+dIKSnKuK+VWZwYtW3LcrUiyzPA4b1j03Y463A+Bpzb3pNqSR/ADzKwV/fErotY8ldR2JvNBi09Rar5J85T331NdYp0MTb+8PSQ/2fY8B/Pdnl3/yZCJ1yMqEOIjSyF4ElX83f3n3H49BlNe473ccpkrcP0lt6CMXFq6L1H9CIq6YUjeEXbRq+XknGPvrQNhKFYDQHpxSD5kwMwIXb5Q7ig7caJozGBtuuQfSwiKqnIspg1VBYly9U6BvVKxaPHT/nV7h7/0XQPT4hZU1pH7xRi8Nln6DR/M5LvMDCSQ9blZUZYiB6+NIlTzEAsnJNhuvhqVtrF+jXJpxhgFCFcot7FpeCPyylRGKwZxycnrI/PKJ4v6KWG67uUt/Y571rssxOyh885s55vP/2Sm//hH3DvnXeiRBAG3468nHoqpSIoxdlhgvjSy36xkiS5bHIopRiPxxhjMKaP6P03uKZaa3xvcdYPhaonOBtVRDpBqQvipRgKqjTKzVWGsY4H337LV98+4sMPPsAP/iQpwuAJfKVgBbyP2U5+OI8iFEkSGx7WmSh9HtRYyVAQeR9I0ow0SXHEaWSSySE8WOFCJP45FxsGYWjIKKWHaV8zKLDi9EkISJIU5yx+IBQmUg3PiY/S5jSl/ifUU/+kzC8owXplyWRGXhSsVxuSIEi0RmcpaZpiVIpXCVpoMp3FxGsktqkJzoESGGMxfUdVlXgRSGR8mZ0cn1IvF0y3t0AmdLUhTXPq3tJ1HY2HrChI9aBf1fHiSt8TKXYRwmCNwRFzsWzQlKlGjzLmwaK1QIQVTddRVlW8kEKiVESiemcRIiBEINWCLI1+AGssk61dfvw7v8P+UHB4179R1sRsq7ocwXrnMUPmhQ/hJT1meMiDj2P2geWBs+5yHB1HvGrQcWcoDaOJ5oPv3ePu229TVRVSKqqqYGt7etltu6AbxcA6Fcknw1Roa2vC3v6M9z64x+effUYw9tLM2HWRInXREbkoAC/+iTdr7Pxd/OO9pxuySKJ04lUgQjyqh0HS8AbPPjqvML0eHobYPbmQLATnot7VdoBHKEswIILEug6lMoRK8H3ArULsZgiLtXPQjt/4zd/mw4/eZ/bHf042mfHN42ecLVYc7OySJJLV/Jh2ec6jI8UHNwW+W+NcTprIWFhJj2lXLFYtZ42iPn3GXjAcrgS+tBSiodyueOgm6HlP2wfmy46+i/dF38Ni3XIyX9ErgQyC83nP8dmCnoD2ksPTOZPVmkQ+5+nhMfNacD5fc+v67PUvKrGjmUgVKVHeE4RipAVFInF4rBCcns5Zto5V41DSMhsV7FYFnXGYrud03eHDhiovmK9rjOvpjEN4S5JM8LZnexoL/a7rSGRC0wrWm0j1bHtL6z2zrYoffHiXH/3Ge7x37zYKz+enDcFBkSqeHi9xAkSSY4yLxdSs5OreFttbYx7ff8Ji0TLJFW3jWW9qtEzwQWLM8MIkYJxjYw0+9NzdHvG9/Svc2R+zUyrSoOmshzcI7izKIvoflcDbGEKOVFy/cp2rt27z1WefsT6fszWdoIRieXaCTjPeff99Dp8dslwuQHrqxtDWHeMqZ3Z1xt233qbvWxZNR/CGtm5o6h4fztjZK7h57x6PHz3CtB1X9neQ4QxBSt8r8IJkJ/DB997j4Oo1/vpvfs5i3YDz/Pz+V3zwWx+yM93l8OljgqvxwGbVMtnKQQaEjgft7atX2Nk/4Je/+oT5+SlKwNPHD7h95y2uXb/J4myOTBJW65Y8T0mUom1j5s1o/PrTvmX/iCcPj5jNrmBOf4as36HckTxefcbuzg6tW7FRT8n0fsTFtycxxwjDclWzPP0WREeRQ5lPODi4QSZT7lz7LSSKZfeMcpSjtSIYxeHZKc/Oz5DOsVq3dFYy2d4nhBjIuz3do+3ugbrD1tYuaVJgm7cJzlMkNef117jwkKAS8mQbEeK9F0R8xnQyZvfKB6y+/RTXWoppSlDnlOktRuUW95/fZ3t7QlnOSPoGKw8o1o5UF9y8eZ11syLVir2DD177msJLaZPWmmo85sn9DYnwaJUOPpQLKXnOeDzFGEOWZRRFwWhUsVwuubq3z2QyoapGlGVG23akqaYoEpxvGU9KJqMRpjN01rJsDc9PN5yenmNFAgMpte/tME1QrNbrmO2jFEmSUmSRIFsUxaWHq6xK1us1xsSGZCz4erq2RWYJiYpUNqXs5V51cTDt+36QJ9pLb0tZFlRVSfcGEt+uc6RCIkPLNE9oV6f8f9ueXik+3D5AKo2X6cCSMvz12VP+7pvP6Y8XJA00dFgfJX3WWHzwOM/ggYq5Tz54+j76W8qypGlarLs4iL+E7lx8rkhojJM7F9yv+ceiv8pe/pq1jqbuyPOMtulIdDpkTMaMpfliGWXcSYJaBz49nfOH+w1ZXhLS2DBwpoueIB8bxwIRZYCvu4QfsvWiVywqe9Tw3x2jcWySjyeT2HgOItoZVGyIXZ61XFTdVOPRrxUiUUb2EkxxcXgLISCVwLse0/c8ffqYftOw1fYEa1gtavx8gX9yRPH8nLn1uKsz9HTE8ckxG9Pz4fsfUGQZQkisaaibDVU1GYo9gRWCvh/Ii+Hf9X+9+u9JklxCYS6ogK+9AkM+m6LvG6QJOGNi6TH8DOpSUREngev1krTIsd6xf/UKxXSL0WhENR4TgmW9XjKajCNIKYnEPyGIkjwR6dEXk6fLs6rOEUKRKBUzPwdQBSJSBB2CJMmxzqEkg/cwSksjTj7SEqWK7w3v/OV1THSKSOLUS7iBlhhSgoh/jrUBrTOsNZcY/X+KOP3dVYEQiBD43jtv8/d//3POViuaIe28LHNyrTFao5OYko6ICdKCKO0SQoJz6DRqqnWWxgyVRKMSRRAaFUrmizmLsznTrQlpNsFqTW8s9aaNF9gbEqcxweFEQioTVJqjlCbJMsRwYwVjwFm8svRaURYJkzLDpgrf9gQvCEJEesowti2zEhE8qVKkUpFqQaUlnfHsbG3z4z/459x6650IjHAGFwTOvn5nOogGITRSRNNikAGdJNSmxyPRQpEojR9u3uBiFa/RUcMcIElyvCyRKqATidawtT3mvffvcvv2NWaTGCo6m04ZTcckWYoxhqqqLm8mfZEcfXGThIjkTLMYVlfmBfOTOU23wbs+dqesJc9KqmLKarWEEL/vIMAMhKW4uWaXI+imrlkul/R9DwQkDiU1fetj7lSi8A6keP0XapIWUTbIYOaXXBpHffBoGVPmnQmDFnfAlaIIHgQe72pSneGdoenOWSxrjk8Mq/qUJB/xu7/zWwQ9YTTZpcWzv7/H+ckxT76RTG5c4fj8iIdnEu88zXqJmCmiV9kTfMu1rZxyWvHk2RFlKbh37w4UGY+ah1RTwfu3p1y5tc1yY1nPDCEIru8XtD2cztfc3C25fm1M2xrORilXtjOuHRR0jSPPILVXOOgfo7ZzJuOM7VHK1b03QyMb42KsAZHiVGWaKk/QEqokY7MxnKxqNr2nM5a92YjdcUGmFFIIrmxNceGc81XN/nTCVpVzvOrxxqC1orWORdNwbXfC+XxJEBVOBEYBVo2hbjuezGsaY5jlOduTEWmm6doNjx58zSeffMO6MTw5X1J3fXxnmIhsHqcpeZKiZGCrVPzeb96jN4Z6sSSMDA9frFjUDalK2BvnZFqBTtjbHpFrwbINZGXG1f0txmns5HbeYy3/pBH1u9a665nmWXy5J9Gb+fa9OzTO89nnnyKtYVSogUKmqTcdLw4POT0/4+bt20y3t3j29BkyrLl15zoffPAWdd3zq19+zPWrVyjKFNN3gGQ2niGkp6sXvKg3HOxf4+joiOBbtrcrgkvwPspI3n7nHseLmr/4i5+yWm2inCM4Nqbjr//6b/nd3/4RH374IV9++XNaY9DOs1kvqUZ7FJXgyocfcTZf8I8//UdMvaHQKcZaCq15+PXn3HzrPfYPDjh89gIRIM9LvHM0m4arV/d55927r31NkyLEQ6KzPPtyjzvXr4FNmJX7lOkE6TVFNsJwSj0PTCcH6HzC0ydf8OjBkrZeMdvR9HWOnFmElaRFRVUmtGZNFnLm58fo0ZjTZ0fcf/AVxycnHOxdZ293jw8/+h5Xr4yZjCV5JVEa3n37HtY56g30NYxGkuAlWowpRzus3VUscxwdOItWVQR46JxUKBbNGWU+o+8sad4gExt9K8GQJ5ClEyZVynJ9Qr1ax+iR0R2U0JjlU0b5Dip5w9DeYUkpGU+niDSjqVdkDtq2Y1NvKMqc8WhMVY0G9LTAecOVK/s8efaEuq65cuWA4+MIoTg42Ga9qZHS0fUNu7tTjt058/tfsVeOqZc9W9WIYB0vzpYRce48hJcd7bIscc6x2WxiEdB3lGUMk4++phQZHGmSDhLESOyz1tILKPOUNE0QnsGT1f0aIOCiURgx7BHMkBcjhBA0bfv6FzJEWJKzHfiOPE8p+pq/ffyYdd/xm1v7ZFn0Gn91dsRfff0V/eEj8IpTJwiuI01SwMcpj3VEvpl4BacdQRl5XmCdRQg1FL+B3vWXEQSvTt5eDY29KLJePTheBB97F4s4M0ijpJToRGCMoyonaK3puhZnDUXIOT46Y/UejMsJSIHtmnieCwGdRvKe1BohX785PbjGuSQSEyd7ktigLopIIjbGDMS3HKVACndJc3TOsZwvsNaik4SyKi8nKHEm8rLA5JVDtQjQe8uDr7+OstqtEctxTiHBTnKWqw1jaxkHTyKgzgqyq/tsTIdfry8DpNu2ZX5+TAiBNM1JkmxolAek9Jf3vZTyMpD6opC6OMsBw69dZGt998H/u9bLeyAS9wTgrR0CpP1l0xwVASUQv1PvPHlVEIDd/T0AylFFXa85fPGc93a2h+a5RKmI7IdItrzwSUYghI0gFSERUuO8j2CIEKFLMTxYxjiLgWgb1V4SY3rEAFbJ0hwT/CDtJcItLlD/AbRQ2IFuqWX0IseaOeB6y4XLZlPXlFl+GTD+P7e+m+Y3dPWv7k34wx/9Js9P/5wm62ltz4xI1nKjAmsM6DiN8ki0BCsCMtV0pkXJHJ2WGBupM2WaxYoUjbEBPZ7QrlacnpwxnfRkeovGKVpvSZSgNwaTaFSaRGqdiGFqeZ5cAhYSkeJdFiWCztFZS+ITskQjCbi8IhUyBtYFHydmAm7dewcjqygZVIpUxRfT1u4Vfu+f/xG3796LNB/b44zBO4PWr3/wn5/1WBu7Z9PRZGDyxxe59cQRpQykSY61Aj8UUFJ4huYLAo2QsZBKMsnVq/t873vvsbM7oyxTkkRT5AWTyZi8LLHeUZYlaZr+2sN38YBevFgvHtSu6xiNx2gSTs8DXedx3qKSgNKRwd81fph0RSBIfPjEkHEQD/HWRoRq0zSXEywt5SC9k+A1wWvw0cT8uss7TyCSX4QAqeLkVA4GR4dDENnrIaQxVM44QhBYr5AmjtW7rkMnkrPFhn/9Fw/59rmk2Mv54vNPuXX7Lh0Je1d36b3nq08/ZWdvl4M7N7g2G5MebfPl/BHX1TneLXHGYroOLy1SNmhhScKa1Pe8sDPGtiVzcw62A7raZjqZMEqjDCUZRdPn9kRT1w6cRowy9mcZ600glSC2SnamUNc9haqoNzvow5arM8E45LBbsjt5/RcqxG5ucB6tJEWWMK5yqlTijeFoUbNoLatNSyIhOM9itSaVQ3C3CzgPQsfO0ihPsFZQ5LBeBWazGcYaTCJxAcoyp+96EpnSKkdrHY2xzNc1m6bj6t4uN67sMy5zjk8O+cXHX/D0bMnpYo33luvbFUfLjkcnxzybr5mVKW9d3+X20SFb0wn7swm/+8FtfvXJFxyeG05qR2cFe5kiKI0uMxbrGnEu2CljTtBx2/Jw0aDHKaWI740od3n9Zsq9dz5gdXaE7Ryjcc7tt24xny/42S8+Zm97SpYOOngbJVJN07Fc1ySm58uvvmJ/74DbN29SjXJ67/nsi/ukISHRGuscL54dUzcNEbGcUBYZWZEALY+XSw6uXmWlLG3jsEayd3WL8U7FZ188YH62oG46tMqwQVLXG4zr0VLz9ddfkCjJBx98n/sPvsQ0NcFLrt68Rkgzvv3iIefHR/TtBqV0zBERAoGiaT33v/yCe++9w43r1zh8+hwpFEWRcfPGNRabNV9+cf+1r+nTz2tEqxDpFvuTXUzXslpo5ocr5NuK8/Vzblz7CCtripEgSXcIPmNv9hbluxrTF+hsTV+fMSpzgotB5KY5j74OV6A85HrG4fNPWa7OKYqU3d1dfvuHv8XNG3sIu8SZBSopSHNF8BJMoF16us6RZYEs8+RVIHSKkbuDMQ/p+iO0LEh0SZoUON9TN/Moz2oESSY5OztjZ3eCTgTWLgh9AOGpmwVJokj0iNu3rpMmGXU9RyKxXc98efza1/TVJaVkMt2hHO3y9aPnaMSl91gnG6rsnFW9YTpKOOnXVFXBqMx55/YNgvNYW3NlbxuEoOs7sixhPl+RZzOmYzgzFqkzJiONDJp3332HFy9OSb99yhMcdW2IKONwWfhcBAc752j7GBaM1pCouN9lOabtqc0GY+2wL5VR8jUAYKoio2s0xjNMXqIS46LwKoqcxXxNmmmyMmPV1Lg30PkFa+lDDMnNkjgdyz0I0/PT0xOO25ofX7nJ2gf+7OEjNs+eIY2jEdCnCVmn6XoTsdFJgpCxGeNsO2Dlw+X+2/eG9WqD95IoGHRDIQAXnht4OfF41Rd38eu/9rOHEBtAPuZy6SSJe0/pyLKIjo+ERUtvOoL02KNjHi0W3Dq4CRdqnuCHbExwxsRcnzfwS7/6s8YGqnxZWAk5KI7iz/eLv/1rpuMZN27eYra9hU705SSy6zu00qzX68tiCi6KTv6dOJwQ4kTv9METHv3qc3bv3SAs1qw8lO/eZGta0QXo8xHdxsC6IU3T6Dnd1Fy7di1OWoc/S2mN6Xs26w3TWXr5eS4kdd57uqGQj43wlwVWkiSXXr6Lyc6bKH2c6fA2Um2TvCDYDp1oxKDouvATOmsjAQ+Ynx9TTWa4EJjt7FJWM2bTKSEIjg6fsjw/ZbNeR0+uTmLRIyJdVhCiT0oE3AD3kDI2ZGHQMw3kP9v3yCSe4UKIYbtSaazpLxkDUeYqSVIN3l2SA8WFGgpBby0q84QhlNv7KEXUWmP6NirBnEVr0FLhvcX/E7j57wZQhA6tErSQ/Pi33uXh4RH/5m9+xVm9oOkNGZYyEYjtUSTl+Dg2RsbzcchzfN8ThEakBfPzM9IkJSsq/BDQJYSMuunJmNBqvBY4Y7A+aheDj2F0mdVUWhGUwodoYjSmHyrjQW4sJalKSIWg94blpmZSJGSppvX2kszhbU/T1TTNhnfeeZfHJz2t6/Aqgi32dvf4/T/8I3avXSMQR70qCISOBcd68wJ4+/Vu1F4TvECkgabZMBpNoAkE7wdzOoNCzeNDNOnF8XSCkFHri4z+qCQJbG1VvPfe2+zv7ZEVSSTAJSlZFqdDSkqSLE4GL9LOGYyUSqtXunAvNfJKKYIKJFlKWZb4YOj7liSRCGHpTcxsIgRMD8JbdCbZmm2xt7tLnsdw38ViyXy+pK5bui528421OOMJXiJk1HoLNOINjGjOXxRLMRcj0cOkzXl6G6WJaVqgkhFBpGhVIGTABYPzPUEonI8yVO8lq0XP/Scbjlc5e9WSP/mTP+U//s/+c7wQ/Js/+TM2m+j/G03GzLZn/OJ8TjGacGNvTBtOMV5inMXT4J3g8eGav/nF/8DT8wbfrknLitVP/h98/71r/PhaiUxKVn3gbNmx3lh6L6P8JBFsmo7NxmJxBGWo1z11H9G2zgfa1rFctnQ2I+1TVqfnrJMsorffBJEGgIgvKCURIQbpda2h7T2dNRSJYPfqLnVvWKxqEIKTVUORCPKiwPaW3ljKLOXK7oynh0fkacJsOhleyBZPysliwVaVkeroFVx3PcumwfqASBIQhizRFBqk9xydvODJ4RnPFzWH5yv2J1Pq3mH6jlmRcdoEut7y9bNjPnjnNkWpKYuKK7uGB7Mp5188YywNxsdJQN33ZIlilBc8PlmwbHu2RhliE3h43jCRgm1cbMJcaq1fbx0+fchv/cb3aNqOrMh5/PgZi+WSYAOJTpAM2XEDrbPte3rj4iTfeRZnL7h1bYYNll/94jPatufa/j4qH/HwyRGJSGMhG3r6fk0Ijr29bUZFhhTw+cef8NFvfEiVp0ymO9x/+JRf/tWnaCQKiQkBLQKpEKytiSAhoUhUwtHRMUWR8f47b7FYNdy4eYvj81OWz56zPDmCIatHCoEN0bxfNy1JlrKplzx+9JB37r3Fu+9cj4n0Scn9b77l62/uszN0Ml9njcsbnG9eUJa7CFdSrwJOeZYLx/PnT1B5y+HxY4p8RO5rwo7kxsF1Tllw/viMUVkyno7oR1PKROFtS8BwcviCbKyptrbI0i1G+ZS22VDmEcFtugUvnn7NlatjFicnPP7mC340/Q8oyhkASkuS3GMd1EuPSQNFlZLoKN8u0qv4/gxXeozbIMiQOKTQpHLM9taItl2C1LRtjdGGpNjm9u2M09VjXBKYVFfZm21hxIbT5WfszO5gXEvTnrNVvD7C/9UVO+YZt+/c5evPP2G+XJKmKdNxxcHBFlf29lisNpTFCukdbVowTT1FF8irXZ4+e3558CPLcN5TVWOUytDhlDRoCmExjWU83karfDDV51RlyXp9HmM+lLz0RlVVhVLqMmOqbVuECCgd82C8j/dikiQx0PMCPFFHD9HF3pjnGaGzKJ3EsOxB6metjSTdoUHonGNTbyLW+TWXIAbqGg+u84jWcKYNqrVkK8XzJOePvePZ+SGHD79C9IpUlHjrSW3s4icqQw14dik0vTGDGiRSE/M8R0qFse2lhD94H9VCapC0BX6NAnfxHb8qb3u1mIp0QXXZdI3+5iiPtMZSVkVUdQCjUcm6bui9I2tb7r94wT9/5wOcI55fdAKmx1mD0AqhdVQUveZSMh2mJxHiIS4bxBHQkWUxzHY0GrG/s8vf/s1f8sVnv+LW7bd56967HFw7oCwq1skKKWJxaoxBSRlx2TpBEIsUf2EdCDHGZnO64Kuf/CPVpGR9eIz58im5h7ONJbuxzeT2AWsdYq3oYdM05KanyjW672LHTEmSTJGmUTpbDFNXby2oeL/gPa7t+Oqv/hayhNGNa8xmW5eF04WE9UKO+SaFFBBp3X2PVIEky+h9f6liUq9MM71z2L7DdB3HR89omjXGWkaTbcpiyrruWK9XzGZVdLJbGxvcMFzHgFBRkuicGYAkASXjfhMGg5+WEuM9iECQIFUW/79CohONMRGYFkSkZAutcSH+OWFQ10X+g8XZGM/jCFhr8L2JU1IR4vAIT9/WCB3PUH1r0FLT9TXGfjfQ6zuLKSnUEG4Ho7ziP/v3f4z18Bc/+RVd3yKEJdiWNMvJxznWK4z3uN5h2h5hAomHZPCwbJZz+q0ZSaqHEWoc+SVeY/oujo3TBKUyChEJYm0XoqdGK5wUeB9HhBEAACK4IVcgjuekGNLO+4BxLWemYTKqyJTCdo5EQut7Tk9OODk55/f/6A7L9hQ3P0QLSVGU/OBHv8POwRUY0sK9uPBYSbLRGJm8/gvV2zVKVigPKomjYh0EWZDR8xWGwDkkyhMxp0KAUpE2mGq8d2gJeaK4c/M6u1sVifKkUqAGSk2apvEFKQJFmkQkqow9Kjn4xYb3z0BZ+nU0rLUWkUBSZGS+wvSOtnFoHUfml7liQuBtIMk0+zvb7GxNSNO4GS3ma148n2N6jVYFXbfBm6i3Nd4ghuBhsCj9+sVUmkgsAWvCpSa6CxZwEHJkMkLKkqBmeJkhdUGSa4Q3YJtLXTSqpe0XpOWEajLm0fGScjwmNIb/23//fx06QBmm6xHecfriBfOTY2Zb23R1g7MJyfYEf+5AGLwN/PXjhD//bMXJ+pzOS27fuM7+tbf56qv/L12/4e2dO5TNC8zpL9ksU6wF7yKVcbPUkZLmJTJ4ulWC7S3Sxny1zVpEGUvnkPUpzgXao2/wVUuQgda+mcxHC4mRgjRRVEUBQdAYx6ozYA1VVXC2WDJfNagh22O9qcmUYOrjZpSlBeDIZAyP3DQdVZ5wtm6xzkVITJVzOl9TlQVppjlfxsJMKsnWqIgyoiInSxNWywWfffoNT04XnCxrnJcUWZy4lnnCNpKyCuDg2VnNJhTsXLnDqCjJsopV+zmT0ZiDWYVarjDG44Rn0/Zoqeis4dl5hxITRAgs6oZlmZMQUASkD4Q3yJoRSmFVRzbKuP/1I2zT4IcMjwiTuYzSjjKj4TAU4QSAV7QNXL93lSL7lmbVkirJ1199Q+N6tqfbJGlGb2K+hu0sT56dcfv6PpNxTpopcDWT6YyPP3vAg29fkOgo1e16gzcB5x1BX4Q3pgzxJ6zWa+aLGi0leZbxk7/5S8ZVNsikHa0LZFkyyK80nYmZY1KpqJFH0TUb5HbFN4+eIoLG9lHaEkOEX281ZsPqPGc6ablx5xrlaItg1hRNxd5sQlJ1EZLhZlSFZ1TMyJIc559z+84BpoMQWqpiBKHD20C9OcOEDa5TtGcN0+wKxvTUdcuNG3cwJnojFoszvv7sl+Q6oV2co6wAx2C8BqXiBm+tp+sCSRrQiaC3MUC46yasl99QMyfNJ3i7oW0tgoKAYbk+p163bO9VSK2RacAGSd8pRplkU5+RZSW9OUdpy7o+pe8FRbLFsxdfvPY1fXXFQE04ODjgvfff4/TwW8o8J1E5+3s7bM0mZGXK8ZMFozRlvZqjqxGPDk+4en2L69ev8eLF0RD6CwjB9tY2x8crzGrN9bv7BCk5mht++NZV5vM15+fn1E2N8w7nHWmSRI/KIDnbbDaxWP81n4gnyxPapqFIcybTCZ2Nvz9JYvPvIo9GDt39NE0RKvqUvHfDJCPir5WWjMcVWaHZbGqU1GT5m7xToxQqqlAspjfU9Ejr2E0zJkpiD59izo4INk72wSN8QImYgZkM+z9Eu4HWkfyb5VWMWwlRgimQaJ3SmToizBkmN0pGE7YQOOO4PBjwsqAKAzTgYoIXCDgfLqXzUXUZKRlN21DahLKMePWtnRm96+l9QOA5XJ3R9y3IFJWmA8JBIHWK0knM1hJvEDUh4zvz4n15MZW6gFG8Ss27/c47vDh6wfHTx5y/eMKX6znPvp1w8+33KcoR48mEoixiY3coFsJwv11I57quZ7VcURY5X/3V31GvViSzHPNizq51ZNbTOTh7fIg/2MIHi/Qu4t+fn3Jcd8xu7nH4zWOS+YqbP/pN0JLReMRoPIoZeT6w8ZajTz7l4dkp5WRC8+KM8O0TVG/otMZUI7IsSjbzPL/8jK963l53GWOGwidBhKgi8iHyCS4kgG64LhfTs7pZ03QdTWeYTqYkqSYrEuq1pd6sMM7RDs/qRaGutSboSJP0NoLqpBBY75GaAcYSAUG4C5+xRSf68jky3QW9UKCUxliLHpReZphWGdNHOF3fR8hbkCQyAR8J1EFKkmFK2ZkegkPgSXTCZrNEqQStBGX53b7e76b5OR8pOGi0Sti/Oua/+S/3mMy2+Dd/8/eslkuEDDTLJWnWUZQVWZrTaU3nXcx8EAoHVNWYzbEdxnXJMEZzQxehBwxJPsAAnEfjUUqQVBmB6I1qG+hMQ5kZfCcQqSItstg5lRkqyUDFB7RKLbZb4/qWru5IpxWIgOlq6s2G48MjvBXcvn2Hw9PAavkcLQN7ezvs7u3Hl4d4+QLx3mOci7Kl/PWRs7PpLt73OA96qL6VHA7zQyWulCaRmmAj1EEqhQ02+s2kQas4WZpOJ+zu7JCmKVkWMwzSJE6hLok1w3QhyvsUSuqXqM0LRv8wvrwAVMBL/XSSJGR5lL6sV+shFfsl5Sn+p2f/YGuQogT6vuP0dME333zD+fn5kBPSY61DkWB6hyCBoTNxoVt+3XWofoxQGlVpkjTB6iyGnKYZQVXIrERUJWk2QSQpaVYiBqymkgqVldGH5qDrNhjb8nz8x9z/P/9fsEJz4+YBu7MtrLF0BJbLZUyGP49o4HFZ4ZXGj67D2GNsJKfdP8v56697nq4cq+WGsihAat557wP+6i/+jGXr+Pzpmt+5ptgNTwl17L4GfGxfdpAP2WLeeagFCotwcWDt20A+QFeCtPS0jMxDElfjOgP16xf9AL3vmRQZ26Poz1u2PYsmYoilUMxP1/EZB3Idtc4CMN4zX67QWpOlGbNRgfWexhiatkaE5PLl3/XxWZiMJ6QarDVsOoN3jixJGBU5H77zFr//2z/g+u6En/3yEx48O2PdWTZNy6iI0kNjDElWoUzDNAt8eOcGW9Mt3r9zi53tMd56tnam/Hf/7X/Bvzg64tMvv+R/+vufsVo3hAC9dXjlSZWk6Qyt8WS9YbFpOC0qEgUJHuUD/g2KqTxNMDYh+IS9g6ucHD9jedKgsyTKeENACA8yUjpjOnxsbQoCeVWxfXCTX/3iS7Z3t0mSDBLN+eKMxaqOnbSk4PT0FKVhNtmJZMWmJ88yZFJAUrHYRMKZjjoTGtPEUNTBzFuolCSJQd1SeXprKHXOZrEiLXdZ1iek6ZjF4pw0iZLQZpB2XhjerWnRqqDerMjTnMlkSjXeIS92EJzivcMFh5CO8Wj62td0c9px5+33yKsxj598w43bVyiqgFQZK3/CVqkRbYX3NRsvqF+8YHG+ZDTNmVQ5wQvq2nI+P8S4TTQs4zm4dgfbGDbNHKng2bNnOBcYVRPKrKDvWnpTs6p7vj16yO/96LfQeaRCIWMB2bbxUNLaBoKibV1UWIRo8E5Vyfwko0+ekzmoVycQJGWu6fuetjEIMk6PWqa7OU37ghBKqlFFUWi871mvFuhSkqgtlBgh6MkLSNI3O1T9+gokRcatt9+D0JEEi+kcdd1QlhXbky2emMeo4Lg5U9TrhuMzT9s/5V/80e/w4vj4Eo/uup7xdIvP54948WLB8ablYGeX9955h9Wy4dHjx7TGUHcNXW8JIebpFVlF27aXMqcLlPmFdN0YQ5YnpFlG3bUUvkInkqJMybRECcnJeoXxUJj4flFSIVPJarUG4UjS6L1arwN9DzrxrNdLCIo8L2ib7rWvoHOQJZq8yONzHTzSJvQh4JTCJZLF2Sn1YoNrBQiLkzFQ1FhPlkTZmlKx+alVnGDHEFSJt9B1Jr5Tg8AaE7PBRBgkTjLS+waP+UXTdhgJXL6TIxxg6N4EYpRDHPuAIEodg8A6O+DHY2DsaDzi4MouxvacnG8IeM7bhrpekRdThBMDECBBSj2ANjzhTaST4SWR8VVIQMSeX6DgB8mc1vz4n/0hn/7q55wfHZJKR7+Z88XP/46yGnP1ztvsXbnKZDoZzl3i8nxkraVrW+Zn53TGcvTzT1l/+YD85j5UBW7LsclzwmLF+HTDymXogc7YTkdMesv11rI4XbMMcHWW8fUvP+bMOz740Q8QiAHDH6WYygeWn31DNp/TXNkiqUoWSDLnmQz3/+XnGqSKF//+putiEqmkoG02ZGkKIZ5VsyzBGBNtMjDcY56+66kmOdf3djnYv0MIjmo64vjFU77+7GNeHB5z5erNSK59ZXR20ZhPlEaE6MsPQmJNVJIZ6zF9izM9/qL299G7l2UpfdfigwOVRGS7kIgAtjfR7SaH5oEP9F0biy4hB3pq3FeVjGCNGAHQg+0RUuOlRklB165ASNLku+nI31lM9U4ik/IVj5BgOs75z/7jf8Hezj5/+ud/xaOnD1GFQ4aA61pIA0pl8TCf6Gj2tx15URGUYjE/4/zkhO29rZjrIxXetEgMmc6ixyX42NmzgSSJHQ4dBgpdiKblPM9BTgiyQKSjGBgpo08mTSRpkiPKHN9vME2DMx6lEkyAxfmcxXLFe2+/y41bV3n+ouXxwy9IU8He/g5ZlsXDqg9DfRNzGay1SBsP4K+7rHVI7SnSHKlTAj1eOGJaV9x4lVTkZc5oXGJMRwiOXMS8gwsZglSKmzdvMNuaXup5L1KrL/SzSsWk6TRNL+V88pWJUhBRtiTERSBcLGySJImBgb1FKUuiPbKAoigpixHj0ZT5/ITO9PElkHmKMkGIKLc4OVnzxRdf8/jxc+pNG2UBwuK9JZEZAj1oZf2ASuUl4/Q11vTH/yfyrCBNE7I8I8+ziJzXF7k3GcnFS2bwvgiimVEICSKCKfAB2RvMZkWnKpK8ZLlq2NtTJEWB0Ja+qymKjOVyg5CSvf0r3Ll3Dy8Ee/fe4cm3n6HzKfON4bNFyvFiznq+xjjDeH8P5w3fPvwqBq8GeDRXNOvA72U946E7ItWQfxFAWB87psrFjirEYsvFIopBc+xFwNgEaQ1aOIRwQ6L666/rO1toKYYwQUcwllmZEcqM5brDBUlOYGuco5Vi3QTUeETdRnCMcZ5MwKSoWDcxW0pLQd1FTK4MgVQnbJoOERw3dsdkiaJuezoTmI1S9mdbvHXjgLeuzFhtGj776j5Pzza0vSXNc6o85fp2wWoj6Z1kZyclKyQ//PAuv/HRb9CcNHz6V3/Pi+Wa7//gA+69/y67s4qmW/HbZ+c8ePaCdec4XS4JwTIpCtreUxtLlgo2reWk7cikJHGOBAFvMJm+ffs2o2rKF59/TsCye3CA1Ckn5+c4QKEIQSDRgKLrL5oMgasHe7z74ff45IuP+eLzr9jbnnHjxm22tqdcuXqFUbWh7zuCs9y6cYOub2JXGEVrHC5YPnjnfZabNX/793/Hzt4eH37vXR48eMJm0dL2MdBUSEeeZvjeIoSmLDJG5YT97W1+8Fvv8fU397l//wvu3rnLdHaX+fwFxlmyIqdve7I8Z73aIIRGqJjBsre7zd23bqFkws9//jFZkVCUJccPn6J1OhjrX2+9de97FNmUrEzJ82uszz0729tU9wQnqxO+ffH33Jn+PqOyoJhsMz+NfoBNd0hVTlgte2yYY3tL0ILRZEaRFgjZYJsNo2KH49M5hR7z+z/+bZ4/P2RcTlieH7NuNAK4dv0ms50r+CE01VhB33qaTY33OcYFnK9J6ijBzvOEzSbeY9PxTR4dP6FpnuNtIC9nzDcnKA0iMWiVE4Kj6xfMV8+ZbN2MVFprCF5RdxtmY4XyuyRJSTLdAWupRqevfU3/7XVxUC3KGAyaContW46Pj7HW0jQNb7/1Ft8+eMDnnx9xvtgQZEKz3rBer6mqEjOE5oYQMNbQtGtuXdnjhz/4gNnOPmdn59SbNWmasWksi0VN3bS/5vF9tbN9cei7+DPBYUzc/y5kU1mW0ff9K4dtiXOG3hjCkIkp9UBPs+Hy4HxBpG2aBiEEeV5Q1w3tGwAotIr+7rZpETLK7ZyxMAQQX3jKAyJClMTLTEiZJJf4cykVWifDNTAIKfA+0ve6rsM5S9u7y7wuMVw3rWSce4eByjZMT0W4GHsPWPSBXhcJdiCEviin4hoarcF7nBOYXtAbi5Ia5zx5USLXLdhA0/ZsQmCU5oAjSBmlYvKln0WE13+fXkxH/ucmMhdSRjVAkSbTKb/z+3/Is4ff8vT+F8hgUdbhmhXffv4xj+9/zZUbt7h97x3G1QSpJEkS//y267HOs2pqzp4+I1hHWpXkRYa7ktF5aJ4qyvN1/JxIppOK+t51zrcnbD94znjT0XvwWlPnmuXz57Q/07z37tsxqFlovI/Uuk0IhFSjT1eI6QR9MKM59IQsvfRRyYGk2LbtK4S9N1sXck9rYrSRNTb65YKLAdfOoZXCupcQj743+NWanSszqomirT1BePavXWE9PyZNyzjVGp7Dvu9JkoSubWibSHuu63qgUydIlTAejQbSZkfftzHzzAW8jU1Xby3G9LRtM5xvYTQaxbBmYyhGI2xnsKYnxrR6vPVR6RUMzvbEY58jhAtpr8dbg3VrQh4nV+AwTU+avcFkSmUjQiThE5CRsCElZVXxh//sd3nr7i3+9Z/9Jb/61a84X51iXBv9Myq9DMD0SmNcD1rgHSxPjznLSzqziZ3PJI1yPQJVWiDziq63yBAQztHanq5pKUqHEwpvDXkSCxopAlmiKDKJViClpV6ccH7yAik9WztbJHmJkpLGWoqyomlrmjoi0n/3D/+AyXSbm7c6yp9mjHPFwcEBakA3WhODyy50xkoN8sQ38EtK5TC9w5qaohKgPEILVFKiTUDJAoQGFV92Sa6oqpKd2Q6b1Yau7yOlZjRiZ3eLNNUkibocab/6YlFKXRZSl1lWxBellDGkOIghTTo2US5vcqkUSqUoaRHCoZSjKkfAGX0PvbWEwbSrvObF8yVdI+l7w8nJgrPTM6wNKDRSOJyzSBHpNxf5DBKPHgyibwCfYTKquMiGaNuWtokhcgEIYdhoRexoOGPo2o7edLErQuy8RcljHGUbZzk7nlONd0gyjbH+Mq/Ddh3r1YqzszlpWRGkZLHaoMucTAuKaoq8/RGfffqPrLMx1ahlbKAoK2ZbM6x3fPbJp+zt7qGkgKD5+6+WpJNd/v0fbFOk0WgdQsxT8Cq+sAjJsKFFMlUcw/vLzUIKByrDWxflE0KCeP1pH8CkSGMie4hd3beuzRiNcr55+gwlUvSmpSwmTIvog1BSUvcxB8V7j9aK7VFJcJZVA3VncUHQdD1jnUSgjNJ0LrCTRE+fkpo8SQhKUhYFZZKQCKJnCIPHE4QmET27o4xpGUEMk1zTN4aD3Sn33n+H733vQ64cXOHbs4f88Z/9Lfu3r/O71Zh2U6OTlFs3b3H8PAITzjeGkQo0xnBeW7IiJQSH8GmUEAfPxsRCWwHSvv7mn1Ul33z9efTleHjx+CkCxTtv32M5P6XZbJBBRIkxlt46hBa8+85b3Ln7Fh//4hfUdYxtOD0/p8gKtFL86Ld/xC9++SuePjnE07Jae9I0Y1QUSCmo8pT3P3iHs7M1jx89pdv0fLN4wHy+4qOPfoOvv3rIw9UTXIj+EXygMz1JOgKZ8O67b3Hv3i3+6u9+gg4B4XqOnn3LeOcKB9fuMj9+gg0O2w7SZRHQSUrTtcy2Z/zmb/+Axarl/tefkukSSQQ8HBzssVys4A1y5qqtBNEnWLsgL3OyTLE4X1NM433Uc0ZtjxiV+6w3Z6RZRZA9W9MbdGaNygr6VrG1cxOVtwjpkASW8w1lWeGcYG//GreuvkXwlo9/9QsWyRm7k4pbe9dJEs2VvV0mkzFpnoBUmN4ghCQvYrdYdh5jFDoROB/9h95Lkhy0LtluPmLVPUGPwQtLIgpQa6azCdrPQDQ01lNVCYITlAQrHGmWMp0WBNdQVQFjajyxCxvUm4V2v7pexmDAfLFG+T5KtnXCpq4B6PuOW3fucPv2bfq+4/DpC755/Iwvv7rP7sEOQceQT/Cczc8wxrC1v8N0usXJyTFt07KpW5ar9dDke4lmN8awWq0u1RJ5nmOMoWmaVzrygbpu0SqCqaJn1sbDXtdTlSWzrRkso8LC+pdh9FJqtA7UdU3f9xRZjhhyLLMso21b7ACyeN11kYvZNA2mNXFSFxxb0xFFkbGYz2PqgogH+AvDe8RwK5SKUqYLSX783/ylyieESFnrV2tMb6LnS+vB0P8SEnWhArkENERDDBCzO5MkGcjaAucvAlRDjMcYmsvBx7/XWocxgs2mochjsKlzAaQi+J7WGFbBc3XwV8UjZDL871GuGGWLr7f+bXnbZSHgXvrkXkIZ5OWE6ubbb7O1u82jB/fplqd4Z5De03ZrvvryC+4/espHH36fu3fvRGk0kOcp1vRslktk3aCQNIcLXOcodsbko4p22LurTcPpz76gvHeD8ZUdNiplc7aiWhtcoqldINsZkacJi/Wc+/e/YpQX3Lx9B7SmbzfYImF04y5909I6T7feoLRGl8W/01S4oPvBy6b6664L5ZIxLyMC0iFnq+sa0jSLmVGe4TuMeVFZVnD1+j6b9SmmlWy6DQKHd457b7/N2ckJRy9eRDvAcklvDJvlAtPbSIPWCq0V9apGCU2WZxR5TpCOTb2KXnwUOsmpxiOyVHNyfMInn3xGolMODnaZTCfcunULRMyaupAA2r7H2R4RAkEp2m4T86oSDU4RfBw0SBlrnMDAyPQO17dI9D85RPlump+IelwfosgEETOZQCBVwvXrV/mv/sv/nFt3bvAv/8d/xenZMdbHYMdUZSRpRqs0cgi5DCKOBa11tMuODZuIWkw0SZZTFCVVmuOlRPoob7Le07Y9aRozliQBawPN5oTwfMPD5YLxZIvda1fwfc/y9JwvPv2EPEu4fvctbr33IWUVZT7GBtJqymx7j5u37vLRD3+I0gm3b1/lvXffp6uP2JrN8M5hhvA+labx88r4UvIhRITia6562HgAjIM0TwhusH8LTQhJPGQT/URSSt577z3ee+ceWikePHjAJ59+zs7ODmVRRkPfvzXqhpdUl4tMLOfcpTzi1ZcO8mUg3AUuPZJN5GV3LkkSPNEceWEAfikVFLS14TSsOD2Jm1TbNpfZHYlOMCZ645wXcTLGkI0hA2F4+byMw/tfvv7+X/33MExnfJwDx8nXQH1U6iLxXMWWgIgaaz8UlWrIEVDDC9k7S3P+lKu37pAXKbJrWbTnHL44ZLla47xnvdlwdTqlGpXQLrl9PWXSPUTmKz4/rpnc/R1Wz56gteK/+q//K765/5Djo2NkohDWsb01oxoVPH/6lHfv3cKqK9w/0by/V5Pp2A2EeJCWIcR7z3u8N7FLJDxtW2Pt4G9D4rym72pUU7/0xb3BskiaridTijtXd9meFvR9zyjN2ZmU9JMerSX5gE/Nk4azTQMU9DbS3HwIrPoGW3v6PspWZ+MKHzwpILwjUZKdSUmRapabHpUUXJ+WXN+ZMitTdrfH8XBkO0ZpghQeLwU7WYby8OTFkndv7PPW1ojZzozbt25SFRWtMUyu7HD1/fe5fesqzjuOXzxHSsjTjLt379Cv14ySmnMcq5DQsWESEiCN/sGh87bpHb7tkcQog9ddD759SLAGEENH2fPk+RFap+xd2Wdntsfp8XO8F3jnyLOUH/7whyR5yk9/8o/YrkMjKZTAi9hNm5/Pefz4KXffusnOzjaffPo5bdthjUOVGR98/21u3brJL37+CV0Xgw1jhzFwerLgH3/6M955913KMuOTz7+Iso2+w7QteZrw/e+/zWhW8n//H/4V62XN+/fewlloNy1d/Yh23XDrnXsszuckdk2zWGJVlBPfvXebnb1dnj1+xvFhpOAJpam7nrbbkHYNN65dZzlfvPY1NfprCvHbeFOwaZ+T6AIdZqxWL8iyjHeu/geoXmMa2L92g+XyBGMsy6VFKcVoNCEkmlwnnJ0eYm2NCIFMVdTtCet1y80bP2AyzeiahBvX3+bwxQOWq1PyUcVstkdRVCR5hUwVCE/fO2wHeV4hBOgkRaro7Qt4mtqTJJq2hiIXpHpC6sf49AzhEpRwIDJ0ruk2cwSONKkYibskconpW3Sm6ewpWIFOJjRNhws9ZV4hsTTt5LWv6b+9LmTfxliMFRweHoN3zGYzxqPyEkxwdHJCmiQc7Gwx2x7T3W/58qsHVKVmXEW8eEgkZ8tTpA+MZ2PWm/UQrBuiPDhJWW/mONuTFzkhRDlQ13WXOYkXP9OvU+iiX9b0llRKjO9BR2hF8kpgKMT9sOnboZGXYE1EJMsBtZwqHT0baQzttdaS5/kbydH7vr/8HGbIiapSSaLkIBk19M4TUFyqk3yU+SklybLksilqhyIRQKhIMJMyGST1EZ5xqUZ5pZB4FSxxufcNjLMLa0AED0VfjO0jjEFKHb3ow8H94npb4xAElosVXdczm84IHnrbo3qDdoGu63Gux9sOlRQIFYscHwIoffl9vu56tZC6PAf5f1f6By+tCVpqZjv7TGbbnLx4ytHzp9iuRqmWzdmGo2fPmJ8tePr0Ce+8c5eDK1ewXcvy/BRrenLTIVKBDDXdsqdRntF4jFEJJh8xamvK8yWnXzwgmVYIIVG9wQkHqaSpKsoiIxUBLyW+XvPgi6/YnJ+S7V6hX53gesPi6SnsbVHPz1FnG8bTcYR48NLjFuWBL3PSIoTkTYKQhzOhG7xKwYPwBNwgTx5w9gNh2vkAKsYjnZ4sePbNQ/a2tmm6hqAylMpp2haP4K/+4i8pioKm2cQIk6pkOp0QpKRuW7a2tmhtS5FkaJXy8NF9PJ7pdAa+I73Igcs01hia5ZJPPv4cjOJHv/sDFmdL+rZnOqsosnQIPo6NDDkQKZ11YH2UrHb9UNy/RKcTBq/d0PDHmKj86ervvG7fedqKI18LIsrFLkZ6ER4RUZsIgQ2R8y9kwnq1wKiGamsvmiN1BCxoCWmSUrcLDIYikQQnML2n7xvw0DdrEhViyJuzBC/QSjOZbFFVI5qmpWs7MJ52vcA3Kw4Pn6GyZ3TNGiEVOzs7/If/2/8dZ0vDaFJRjCZ0TYu1AaEFWZ5y5949fvSj32Znb4/eGNIU/sV/+gfU9ZqiLMFaxJDloKQcQm0D/aD5lur1D/5da1GqR4uIwUakaJ0TMFjpSVNiyDCA8BR5zt2b15HekecZv/e7P+Jgf59vnzxFJ4Lg3aCzfRneBly+cGMiNi87FUJgvcN2HQFIkywO9J3gAqIaCYYCISMdSTuBkBnBB4oiIdCRqNiBRkbuv/ODsVSFYdNoCTikLkBD3/k42YxAnPiwC14VD7z2Wn/6L9FaIbSEtMQHiRYQpMKpHCcEvU7RUpElKpJjfKRsGXTsugwvd+8t80XNcp2QjPYQwPz0lM1mRZ4m9EVGbwxVKDk/Pma9tYUoU/7iX/8Ft29sM97Z4/jIsH+tYv/KFpve8d/8H/47hFT89Cf/wP/rX/4rXN9SjSo2m5bOOlgvqYo595/llMGT9ceIvIjB2AO90ouIkw0u4oC9c7SdxDpP9FVaurWk3gS2tgRSeJx7fX0/QJkkjLenlLkmT+N9s6pbFJpEClpvqRtHUkQUfjyE9zhjkQgSnVB35lKSkKcpe7PxEKwNmY5kn+Adm7YHBK31fPT2TX77o3vsbY/QMrCzPSNPNNuzHd6+dYXj+YrTWrHoW4Jz6DTHOU9WZEy3tweS5BxO55y9OKdEszw952mukERKYlGNyfOUrdmEelNzaAWPjpYkacYs0Sz6miAFXYCNccjWYNsOCGRvcMsKFxBBY3ARyep6lIiOhqOjI8aTEdduvcXhixdkIvBH//wPefjkAU8ePUQNeSdewO7ODOM966YmCI2zns8//4qDnR3+2R/8Dv/wD7+gSDJ+98e/ybpu+fO/+nvwgTzP8b6ndwalYpRA0/T8zd/9lPc/eIs/+vf+Gb/4xSd0puXajV0++ugdHtx/zN/83S+wNhp4666j9wHvLFmqWK9O+eqThtt33qLId6kbw829fW7cuMLJ8Zx/8+d/we72HnhJRmxK9V3PqBpz+OIFoLl3++prX9MvvvyCH350la3dt5HLNVnZIpyi7TyTUcFmCQdbd9iaHNDajnE1QooMr0AGaNan9GKBY0PbPWNxZEkSyf5ezFLTaQGy5vj0mFm1z+/+/of8yf/7Ps3ymKffntIsb5AnmnxURgmJCBRVwqJz2C7ulT4I8ipQVRmmU6xWNWUlMX0Y9llN3xU4HGmaoQQ44ekbS3AtJhgCKUIWoDdYt0GrAmlHTEYJ89UcnaZYY3HJOsrH/leQ/PzbKx3CcaWUbG3N2N3dZb1asF6vKYqCsiwx1nB4ckyapYynJbYzmHaDKjPwgUJBqSX7WxOC1HjiIdAYQ5IkLJdLmqZhNB4hdMZmE43rF3S+CwDFpRneuUtJX5ZlQ8EQ4zFaayLEIhjG1Qhno1QphOjzCASyNBYZTdNQlHE/vCCJrVdr2rYly3JA/NpU6H/pklLQm56+7/ADbSxLNXmq2TQdbWfoLUiV4PsO+PUiIBY14vKwG7OEYvEjh/2/bduoAhkaaRdaFDVIDC+kkWH4+3UikSJcKlj6rqfv+8EHYxmNRhhrcNYhlAIpB5x3DAp2PoANhNDTNC1KKCZbW6CimkGLy6oQKSPQwDsTD7CRjx6pdq+5YoFvLs833vtLOEmiS2KAL4hXglellJekRq1Trl6/w/7BdQ6fP+bo+SO2kASd4rwg2IbPfv53PJmMqcoRfbdBeke/laKRhFySKolQPc3ihHR/m3VZ4U5OuPLwBZmMmWZ1ayh6QyYtWztjuu0xobc8+eI+WTUiTRN029Guzzman5GPx8xuXeX8V/fJFksa40gslJMJF5ANiPAJ72JuqtKKLM3+V5H6+WHSZa2N75UBknTxawxS2KA10geuXDlAJxmL+QaNwiwOOT+fM732NsVkzHRrCzPAx/IiR4jA06dPSZMrABR5Qbdc0jYNSkqeP3/GMx8zI7d3duJnTFJsEOSZYn36jKrKuP/1A27evMW/+dd/ydVbV/i93/8dFucnLJZnCJGwvb0zkPo8DNNr53pCG3H0Os9xpkel6SAbjHRMRIwAAoFQGoKkad6gmLqUFPkepXU0OfoLgkrsXPTO0vYdrWlQWjKfz0mCpxxNyRJNkqaY3gzIX4HrDf1qhS/GZGWBUIp6U9N3PfOzFX3rKKqGrncU1ZjpVpSZbPoB0+tiOGM5njC+fpO7P/wxq9MjmrNjAoHTk2M0cOPGFRyO9vwoGieTAtNF0sdbb9/h6q0bSKWi6c0F0jQhzWeXpsGL0DM/6EKFEOgkGQ60r9+d8jJD4AheIWV2uSFI5WLhmQW0HvCTeLamE3KdEJzHO0/f9nzw/ntMdmacnZ1dbjKvaoYvbohI6VOkaXJpOl3M5yzmC5yPCN7Z1jaz2Qw5BBSKqI2LFMGBkCgEQ8cjY7Y1Ics061WLkqCzhDR5tesXyIuAMR6tKoqswIf43XV9HydhvOwQEQSvdgxfZ33xXCKlQ2nYdHO0ThgXBXmm8NLQ4+m7U6ajCVqJqAVGYILAeIm2llQnMT3eOc7mS5LpNSpnOTk+YXlyhLUtq9WK1bqOWWVCkqUZD775mnu3b7G7t8dJl/DLz094/PSU3xCa63ffYrYb+NM/+VO6ENirKoLpmE7HWGupmxrrAlkxobeOZr7gm2REOV/h2mcYJLgeKUJkyYVAsENDQ0hsCDipcF5jrUGaHmsVzz45BmcJ7s1kPpM8IU0EBEtjHOd1x9l8hVYJJ4sl66alSDM2GPxQvO5sbTExLm78IuBcoOktTdezO4uQiWANIijWfUdjIuzBIXAkfP+9t/hP/uCHHGyPGY1LhHCY3kKIU867d2/grOPjrx7zfKnIk4RZVYAzqHyf0WyHutngrWcx3/Di8IRHz0/RynN8cshkVDCdFsy2WpI0RSYpHfBsMcf4hq1UI4LmZNXDcIBpTELoDH1vohRWvL7ML/hYDCMCeE/T9TEMUIAInvp8ibSGDz94i76H//Ff/X+YL84pUg1Jhh6gMjHzxdC1Na53MZfOCT794hHv+ob/43/7H7LeeP7+Zx9z+PyI4AJpktAbizEdPggSkaB1SgiS3lh+9avP8bbnX/x7/4zTs6dUxYy//btPePrsOUJYkkTgXOD49JRRLukGf6u2HiUV58dP+d5HH7J/ZQvTOX71iy/iQRhF1/cUWUnXB9p2gc5SdJLQtj2buuHhwwevfU1VfZNvvviE997f4tb1jxDaUNcbWBpQAqUnhJBhrGWxeUJV7eDEiq7LKZISqSzKp4RW0S56zo/WOAFalPjQczA5ILiMw/YR1nr2tq/xe3/0+zx9+DOWJ8+Yz59x9GKH63dvIwT4IAmipxwp1nPLZJbGyINOYkyHFJqizIbGnCfNFN47RtUu8/qIxp5QZQXoQJoWeJnRzi2d7ylHgbYzeCTz5THj0T7z+TFCJtHbEgLGtNR1TdN/9+b/v2j5gDOWvmnQSkaIVIgenbwoEXC55xTFmLzI2GzWbE/HtG0XZXJ9F/3AaUqRaLIswTpPXTekSYIa1AzGmMvCCKmoVyuyLBnUBhIlo+wvTdMBiS4uGzbeeyywqmtmyQypNMbE5tPF74nTQYFO9DDV95R5ijMx+ylNkkvvlHM2ygqznK7rUfr1O/7eD96SQQUiGDDuzsaszkHOBwGtE5yzCDnI70SER+BjSKqUFyhwMfhQJM5Z6joWEi6ImKEj5aWSRlxk8BAtC0maRD/QILUPPmCdicWehyRJyYscv3H0vovfu9KXf1fARWAOEUbhnR8k3lFiJYQhlZLpdBehErrmNFoHdApJxFp4a94oZ+ri+4R47jk7O7uEMEwmk+Ec5y99U5eAiqEwCN6jZfzOb995m+lsh2++/gofjsmqGZlv6fqG+sWadW9AiogrDxapA8K4OLmgg2aFHm+R71xhyRbN40PSLCFoEImiubpPcpyS7k1RRUL98JzpvIXzhi5R5FslmDV50JwddVy7cY3syjb6+TmFdqxKxWRWwSsTuCzLsM4RnGUgGAG80XnqAmYhpaTvOpBy+IqiLykM92AI0NQbPIK26RC9RSaaRKWcvrgfFSY3b1FOdqnrGuMc+1ev4AZ4SlmWHD4/whpPURZkRRaluW3H2fEJk9mU6XRK8J6mrpEqQRca065JQ41rex4/fMyqD9x96y7z5Sr6/fHs713hbL6mHM14+OgBB7szxmUO0pPlKaazCC9wfY8TEmu62JAY1GBx+jooplSK73uq6g0AFEEIlE6RnpeHYAkuEDHBw5fmrCPRGU3oMday3qwYL+aMtnfjh8sL0BaHAQFd39G0LWHwuchE44yn7XuSNEc6T28MpVIIFbG9zkUgRVDRbIm31OszhDLYboMXgbIqCS6wrhu+/uoBWinG21sDUEJjVEB7zeL8nHq1GjxBcazvnY8GysGcGTMaYp6AtVFyKPRFBszrV/7VjkLLisTleK8J0hOCI8sVSr3sKsSRrWRUVWitadvmkmTUNA1Xr1xBCEHTNCQDwS+EQNs2MJBhohQgxTvP/HzOarWE3iJjzYNx0Qf06kZ08U8YCpxoGhyMniJhd3eXt99+m+XikwGb7/8dqcVoNMOaaEpereZRdw0DPeX/v0n0TZZqeoSI3ZkiQDA9xnWYWrIhIxGCRBja3pEk6WCwjXJUhUAogXAGiaBperLRDK8STl68wLUb0kyTpzmmq3G5HuQgkciFkMxXSw6u3ub4+RmPn59TFQVlVvDJLz9hNN3iJz/5Kd7D+vyIO7ev4Rw8e35EXmR4X9HXa5IymqBlPqMurpH136CdwauEoESUA4SAUSp2NYmboPUB39YoAkZA0DE5HTzuDfKQABZNh2oDSkLb9cw3LZ3xWNvS2xiYV+YJrfGgI6o/OE9V5UgBZZYilORkvqLIUwotWNebmA+jFXmaYXxg3bUYH7i2v82VSY5pVwhZYU2N7dpIjvKAStja2ubOncBqvWHVPkGkimv7OxQpSJ3QbDb0WtCsa86OV5yeLagKTZ4nHM/XzBdLyvOUydmcvZ0ZfWNY1pZN36OQFGmK8UMSu/E4FQ8JnbN0zkXp4ps0U0IMgYwmbEndNpRFNLYKQCiB8S3z0zOOz3oWiw0iSAQKOfy1bshnazpL17R0oaPTPcZL5ssTgt2lqS0//dmXfPPtYyQCjYifo+/p+zYSu2QS83VMF1UEHtbzmjQxLOeOv/i7n9FtaqxrUVLEBhCCZlMjfUaSBtI8wRuHM4b5asFq09N3LY+eHNK0BuN6QlBIlbJc1TS1ZTRJWM03CBklud2mYcPrAyjeee861rYcPr7P/vYdZqM7nJz8lHrTEGxGqaZIHTA01O4x9IFxsUfdHiFFgcUiAvT9kr0rN9Ha8Nlnj+hMSr3uuXZjBEg2yxNSn5HkMN7a44b6Pv2V23ibsL13g/G04OKQEVzCZt2wXluSPGc81ZgOzk4deQE6EZg+YC10rQdUxGG3inn3mIV3jLZ2QFSU5Yxyqkgbw6Y9vIzHsH5BbxTOxew+ISVtf4wQ27StY7q1+9rX9N8mtkopyXSClpKyyCmrCu8sy+WSvb09yrIkURI1qCASnZJnBdcPDnj89DmbuqfresqiwFuHd9EbujWuLuWuWmuWyyVVVV0WM3maMqoKEhfpb8vlavBEpb8mc3LO0fexeVQUBc5HGbezcf8e+pMIAVVV0fcdzjq6rqNIMhIlGQ977UWQfQiBqhphnWWzbuj7SBB73SWlihIp4QjOMBpVSBR1Y2jb+LNrHZVVUfQTn1k9xE54F5BCofXLuAIlYkNDaU2/6bFexr9HxIMtEGllMqBUGAowSZ4nJEmKUo5gHL0DYwLeJUDAug1FUWKNozd2EAIOEzAlo5ck6nfoI7Uah2RlDX2zob042BaK69UUrTMQURWi0yz6z53Fmxr/T+T3fNd61Q/1Kgr9ItBZqdhIvpD9v/p7LsiFcqApa5Wxu3ud0WjKg/tf8/jRY5puhcKDtXFaKMETUAGcFTEO2VkMCiESjJvHWCBSggwk8wXq8IzZzeu0tzXHSiJ++QCxOyEcL5g6SyocG5cgUxDGUCrHadNhul02qaA42MI8P0IKgZ5UcZ8YiimtYyO1bzb0DdHPJCLd9k2u6cXz2HddfFaVwpiXE0QpYuhyCAHjHNs7O2ztbNNbwPY8mr9gtL2HQSNV9MhVozFpmnB0dIQkMB6PaTYtznrqzQatJG2oKbIMiaAe5LXOWhIdqdJGWCa5J1fQtS2TyZjtco/NesXx6RGfffoZt29fpe8tQimOjo8w1qGTgsMXp0ynY4pSkOXRd9a1zaBsiQwAlaSXUt8L+4RKL6TG3630+e7QXnEh3RoYYiHq/BXEboIQ5GnK7Zs3uHXzOh9/8TnGGfq+4fj4BeV0iyxLSZTA9nOElmRVgc4qytkO0nuciTeoTAQ6TyCVBKFJcz3w5G2UsUlB5xzOBTSCRMUHeHVyFg3Wk9kQTOuYTMZxzO187KQEMVAQPd451qsV56fH5EVBkDHDKsq8/DDi94M5M5o1lY6BdTLEw5DpX5/oIwdsfo8BoiFOyZQQXqaQCyFIpECLQLAOnWSwqWn6DTpNKHxFauHG3gHn6yVN29I0zbABeBIlY/hjWeFazWrT0XdDqJuMm0GwFiEDaaYRwuODxVr3itHYX94DWuvBfxMoxiOu3bzBJx9/PZj7XmYPQOyUOW+ib6nzKAQecAS8Egjx6khfwEDyeZOCyosQsfEDsUdJiVICi0AaT641UoMLgeB6EpVivUDoHJ3mpGn8GXrbo5MSn+R88c3XdE3NwfY2uZZIoUl0RpaGQVYyBBh6x3Kz4R8//ppN2+L7wPU7t+lXG24f7BNUSlCaD7/3PvOzY9ablgcPHtK1HVLA0dEx1biikynL5Rz//Cm7u1cQqcQfP8CFgOkDvQwo7VDBIYPCi3ggcdYNxbElw2FQdFYgZYpK36xIPV7VONOjh8POprMs6zjVkCJwd2/Gj965xvlyzqPjFesmdl2bRY3wjiJL0UrFqbbzLNqWzhpC6KlyKPMMGWJmmpawM8tJFXz62dc8fX5E8I48VezOorFfaokQCWkqePutG2SZ5OHhOYvVilvv3yXYjqMXRxRFwvnJOYt5Q5Ln6DSG4W5tb2G6mixNaJuO1WqNMYZcKyZFxclyxf3jc4TU9AEIhirJ0CLQihiNIIVAvkEn1QeQXkR0dohdwO3tbS6yTZzzJGrMzu417j/6lB/85m9xdPiM+eJ0gAHFg5ZzkZQFmjSLG81/+vt/yN/95V/z0W98n5/8wzfkRca7d+9S1x1PHj5CahXDpF18bpW1QIsJPibZO0kICqHGpOWGvZ0Jj1ZncUNRipjhFg9vrTGoJE6cUqnpreP2/k129w/47LOv2NrZJclyVitNqjdUaULf9AOVznFyfkqQjrKqsH3g0fPD176mZZVyOp9zOl9ydPwVJ6cPON+s0EYym1xD0NP4QwIzhCgo8jFSZeANq7om0QWrxTmTacV605JkI37vx3/A1u6I+eIEgePBw09p6w3KjVGpRIkJVbWPR5MoTVLkhEHF3HeB06OI7jc2cHYKZZsRPAMZ12FtPIHKEHPl6rpnb7ei7cbMlzkPnn7DDSnxHBG4SpmnJMmEtC+Zn57Q2RaZTxAGpKgIRrPhnLPzI5Q4Z5xdxcvXP6T+eoPs5VJKYfoe5xxbkzEM06ksy5iMK/I0emqjOiLhysEB67rh6PkzjI3RKM7FA5IKjkJLThfLgXYYaNv20hcV950IVVJBkeYZbduR6OTXENB5nrNery+l7XVdU1UVXdcR82cUkjilueCc5HkBwlIUBVmWkQxF1KsmfohQjbZtMQN8Qr2BxD82JKN/F2co85y2bmNkiFRoTSR5Ck/vf93rlCQ60maljBYWolQtNj5j0bBeb4ZDoUKLSARMLmiASqFVLLTSLEapCGL2n0w1blPT9yYWVB6k0rRdN4Ss+qhkcQ558fu8ig1uGEBP8WxkAeks2jhEVVBOpoNCoUclGbZdgxB4Z+jrBa5r3siD/uq68At1Xcd4PB5Ij5FYnCTpYF146bHyAygJGAiKcV8ry5L3P/yI6WTKV7/6Kc53GN/gdcwaTWXA9QblI5NYCAnO42XMIfRdjQ8t3e4YPe9Zf/WIrKgwfU/+7IS866k3LdJDMckRIxgVGaJSeOVY1zW0PaePn2ENHNy9jnh+RC4USZLHzzE0/YtqRLueI2yH9e5yWnxBe3ytdXGGGhoVQil0kg4FapTNShm95cE7tFSURUpeFOQyx7ie2x/9Hlv7B9R9N0BdIqXSehejAZqWa9euYzqLsZZExCHB+dl5pC6OxyzrNc+ePSN4z5WDKyzn5+TbJZmKSg7r4lni5z/7Oduzbc5Pz/jFP/6Ma1d32JiOdz98n2+//ZZr12/w8Sef8emvPub3fvy73Lh1hWI0w9o+SmKdJUtTnDEoIQbS5UXhLZFKk6QeY7+7QP1uz1SIkpILqwsXeEEfu6suDi24crDH+x+8y9H5IU++TWjPHfVySddsGE9muNZycnbGuMhxOkGmJWU1Ii8y+qaGxRzrLJPxlOlkEklIUhJsiC8QIJECpyWYQDAOkQnyPKOqRiRZTgCazRoHLFbriPOtChIVyXRBCIRQkVMfYL3eRMlAkg6adRmDyIQkWB9H3wiEDzGvQIK3fsB8vwHKM6QXtiGkYnAoJXHixQVlZ3hhD+SiEEBJRdd3l5rrFgmJ5trVa3zx1X2+/uZB1LIGT6IEZVFw7do1rh4cUBUlRV5Er00f/ULBGFQiKYr8UkoQu6qxWBBKXk6p0jQlSRL6vkdpxegSWfnrUynvfQS828j5V2oIKRSxoOKV7iBw6Z+KHIvX36TyakSSJDGQUIhL6krbtehUojJFno5IdIJMNVKlZFlBVpVMZtvcuH0d5yy//Nk/Es4NT54fsZqfI4DNekM6rkDAdDpja1vS9T3LxYKmjrhvnGe9XtB2HRbFyfMnHNy7S2JqnO3YvXKNbrPg6dOnbBo7SK36GHC6XvGjH/0mW7Nt/vR/+mOmuebk+ddcvf4uaquDs6eUeYLXGWtjCLInkYJURgqTSOJk2LsOfI+Q+aUUzLvX704BvDhb4J0hGw4a9ZDtJATkWjCbjOiMoUPQe8Gqbmn6Dms9RZqig8AaT4ZD+ChNTNMobe2tRfdQ5ikqK6iKjM2m41ivePL0hOXmMVLAdFRw92DClYMpk2lOkiRY48iznHt3bzMqKx4+PePZkyNmk4pEC9arFVIERqOSIAVIT98ZkrQCJzGuJU1UzKzLK8ajQJkkpFnOedPSrGuyLGNWFexMJ9w62KfrDd9+e8h4e5e37r7z2td0sJkCkY7Vmf7yPRCEYba3y+7OPp98/hXPD094cfKC7334NlduHPD428f0bROtBh6sjb7HPB8xqUq2Rhn/+//6P+eP/82f8+Drb6nygt/44Q+49Zt3+Rs0T58f4q0nSfIoDUJhLOisQGvFjTtX+N4Hb/Gv//xv+PbRIz764G2+/xvv8+mnXyAcQy5UwHqLcB5nEjormOxVvPPBB8xGU/70T/8nnA3Mtg44OLjO/GxBWVRkec64N0zLjLY3hK0Z3vQI5fjgvXvsXPn+a1/TxfKYaqzJsuvs7l0DFHm+RThxiM5jckuW5gQk09EdCJ6j029jM26t2d2eMh5DVewwyhKgIk+28bRMZyXNskFTkkiD1hIpSubLc8bFlFRlGN/GcPfgQEja1mKdpTMWSDEG6o259B/MKs38rB+mIIGylExnCd4JqmLCybP1/4+0P/vVLEvPO7Hfmvb0TWc+MUdmRs6ZNU8kRVGi1C21W+hutA3DBtqA4QsDhmHD1/5PfOd7223Y7m6RkkixyKqimFWVNbAqK7MyM+b5TN+8xzX4Yu3vRGSpldWK2ECAWYzhnLO/vdda7/s+z+8h87vMHld0VCRSoxkjQ4ZRKauzmi7UiG7NsrEMhiN8SAmhphhM6KrA8fQuZit/4XsKzwAPwLkUKy8Kxts7zGdT2qY5V0pkWRYz2waSIATL+Zyu69i9cY0rFw+ZnRxhA4S+oDBacenCNjqNfrRhnnH/0RPKukWahrYq2T84IEgIMgIFZIDcJAgBSZZRdS3GyXN62Yb0t5lSGWMwiUKqgOv6TCoAb5Ei+ksQYNIs4phdh1aR5NVax2qxou1aCJKkP0zW9Yv7e2Jup8N2HYMsiROFpgERpXiC0FMtn0GhNiABZx1SgPexoSGVpPNdD1SSaKVZlxVCxuIzTaKMD4iyYCXRSmK0eQYoEGCbQN22tJ3rlTB59MczpCprynJ9HrGxKZqM0T0BMXql47Ewnl0GgwGrak0uJEqnvDqaEJoSrzSuKft9PmCbsgcbgE6+HDn9ZdfvQiZGoxHj8fj8Z9xMWWwPONH6mYxrPpud348giNLr/iiklOLqtesI1/HbX/xdRKjrCCXRSiF1wFtH09k+jNrhRCAEixIGIT2LoWRdZGSdoP3kczyC7a6jsC35IKGZpNhtjcoVovUI4chSRTqY4E3Fx5/c5eLeZUgULjNYpRB5dq7tUX2jsm4qbLCk+YSuiwHVL3OeUkmO9o6m61AmISBYLEvqyuJsybpuuHThAiF0NPUapTJsCCAjRE6FjDTfxhQpyWLK8uQEpQ3SC+bTRYwBcB6lM7Z391guF6jeVpKlCfP5DO895bqkazrKquG1VwtwDRJNuS7RxpBlhouHY1BDzuYlx59PqdqSn3zwM776jfeZnUaIR1dX/OInP+cf/af/mEuXLiKV5nS6JE8DCIVE0TUt2miQgqpckqQjjCkggA8dFg/qywvU3xva+zxSe6PH9N4jpMA6h/UBozWL+ZKrVwsuXHmHn37guP3RMaeP7lOtzpidPqGcnjEe7aCKBNICLWIQsC5GZCajXK/x1pGYmI4dXPQQtHWF0gqjM7SIHV2VRJAAUqKNAm9p1iuMCAzzhLrpKFcldRnzHMajMYNiSGqiNEsLyLMsdr6kph+8RRhCCPgQqYNKxayfzULsnIuL0kvkTLVNrPoDIF3Ah7iISaHwWORzY+dA4ODwgBA8znZRVy4lTdMybywYzWB7wqVLV3jy5JTpdIrtoh9D5IbhYMLu7n7UDRCQATrXUlc1UisGgyFFMYhmQzbepbghWeexPXBjgxg97wYK8Ux7HqJ0QEpJkD1xzsUQwSB9zEyQ+tzQeF49PXe9rGFyZ/8AozWojTTCMp2doQxcHG1hZCBiwlu0sEhvoS6xdkrZLZiGGU3TMD2dUbaG9WqF9CFSJ6uKLk/YnsQ8rySLXge8YzqbMV3V5ANJ05srU6NZz8/49cdrcqW4cPkKw9EQtKS1kWi3CT6Oxanm8MIFXn3lBj/54McgAsa3nJ0+Ye/gMiMV6JoFQkBhUsoKpElRmcAoifOBpqxwZZycIjYEpyjLepnLOY/a0Dydj7JRAsEHmk6wqiqO54J7RzNmZUvTdARidpR1ls7Gjd3bQNNaWuspEk2aKKrW0VZRp6ylQiYJdx4cc+eBYFVWVF1HcJ5hkdO0DV4CwTEaZSghWS1meGFITMKVw12OT6Y8PanY29tiNBggCo9tLKuypWkc1nuaxRlSKFywaKFofUOqDYMiYXuYcbxak0iJTFMGueHy9oTLh3u8/uZr4D2j4pCv/PF/wqvX3nnhe3pweIHToycI5yJaWkRplAyCwytXMWnOrbu3sK2lKRe07YpPP/2Yw8OLvPXOWxw9eMLxySNsZ+mchyAZDgq+9a2v0gTLzz/8JakqeOP6DbQyrBeWTz++yXe+9XXSTz7l1q2bdL6L03ChEUiGecL7X3mdIh/yV9//O548fUpVlfzkw1/y7ltv8Kf/8E/45c9/zen0GO8jhMJ3kmAUN955nbfeept79+7xi5//AiUDg2xIaBuePn7IK69c4+j4CUcnJ4jgyXJN6yxaaA4v7nHpymUQgg/+9mcvfE8HxRAr1hSjAQ8/e8T7X/kek4HDy5QQHOvsU4rskKqec+v2zznY26XI98iSlDwfU9VPgGjc10ohfUlTNhiTsSxneJeQj/ZAwao8QyUFMq2gWlKoLXSSoZSOod+VZ71uWK0XzOdrtM7ZnewQA3w7XFmRF2O6LmryB8MYtm4SwHn2dvdQ8iKzk/t0J1PkIPDtb/0nSMB3CWVzgm8Cs9mSbEewns6ZqjWvvP0aMtvF+Zrl4ilK7XNy9OKTqXO5d79WyxAzkaqq7mXvnrIsz8EFTdMghKJpOnZ3R2xtbTGfz1lXDa/eeJ3js1NWZckahbCBqk14/b03mC/XbG/v9tNWh05SIOKrB4MBQYIuy6g4EJJBUUQzvIxxGkJCkhici+CJZwAKYgB6iBENiUqfYZ51n8d4TgYUKGNIsowsy0iShPl8zmK5wlZREmt7c/rLyKeapqGpa8CT5Tnge8k5RF+UIEkiWdDaZ3S2jQICIWP+Zog+Ziki5EfqWBx47yKAQGmU5nzvJkTlhukjZYwxWGtjPljbYp1ga2ef7ckQJQXT6Rlt5xjuD5lOpyxXy3OCn3cOned9gaJiVpUAQlzHR8Mh0/mU3FkwCRe3ts63e51m2Kbuny1HQJAOdgj+5Zp+z1+bwvp5Sd8GTiFlwPloP5jNZhFCpS3j8Rj1HEY9wjliEXv51TdYL2Y8+M3PkCJOVlyfjXle6DqL0QrfWXSaIkVUTwmjaYPDJwaTeLIykDUef7FA7mYUmaapO7o2IEIMjw0h5gwWWUKeR0hOV9asGsv21iBO8fppZZLEZ7pcV+SjPaROn5vyvfiZKkIWNQZB05Q0jedvf/RTPvn4M5yvOTqd8o/+4T/kO99+B9d1mCBpvQcPtrPoLCcERdc0lKsZq+UpxWAUZbLGMBmPGQ0KhDB452PxaiQyeObTM6QQLJYrvHMoKSjygkFRYFTLelVRuo5LF/dBF1x5dcD9p79kOX3KZDhEGsUnH/+Wq9cvUa9LvOvo6gWXDne5duWApmsYDocIrbHtsm8SKaTaDIwkSqjITTAm0ivrhpjt9hKeqXhjw/nCCs8Sl62LIaJN3fDjH3/I3/7oh6zWp3z9Oxf4v/xf/9f89b/9Gb/40U0e3HrE/PQE13TkgzhqRwKJQCgDJj50ozS+4FUXgzNDoqibNqZ3C+hsizIKIRKkCwgp6Kyja1cI7wjBIoymqqtoG1OCprMsVnNW5ZprV65SpAqjFcM8YXtrK45nQ5/K7iPm0fdTEqli0bNJDMeHHgsZF/AXvdr6Wd6D0CB07DAp5fFYjJLoTX6AgbQwKBlo6prOdnTeEZDk+wdY51iuo49qZ3dCMUi4cHiRe7cfcO3aJd546wZporF1S71cU84W+NbiRTQ2DyYTBKrXENP/ip+37cPZNov588+BczaGg/b3RumYyxW8RQiF1C76dXSCcLH48yIWbARF3x88n1D9hyQl/1Mv6Za9PMEhkbQCmrYjHaS0tsT1xR8Igs6QJqbcS6kYjbcYHhxyfX/C3fmHHN99TLle9Z4WQVWVnE49gsCwyPDBsXt4SFEUOKDzgQxIE0Pb1HR1Qxc8rW3ZunKFZDBEmYLxeIv8bEm5bggukg2Dg7dfe4uf/fQXXDi4wsHhPs1yQZEMWEyfkhUT9HAfaWuk9Ojgkd6waBxWagZGoqVFahPzRLoOD3gkIojNoPOFL6U10vdY+/5ZSHvpqwhwsijpAkxXJaezJWkaPSMIQWo01sfntraWsm1IZYLRQ4T1WA91F2W3iRLUPSXL9/4oIQLCg1s3PJKCIk1i1HNwKCGwnWVVNuT5kCuXLjEY5Ny89ZDHD44QFw+4cLCLGWtG1vHo8TGr2ZyTszPyrCBJFCerMyajlCyxeBxbk4LhfEkXAkIHdkYFW5kmXZ7y8CdPEcFhsHz+rz/jUT7mm//8z1/ontoWLl19k5PT+5w+fEKiJYMk48qVS5zOlpzcvUvfS6ZsG4SL0pHZ8Skfr9Zcu/YKW1tv8KuPPkErydtv3uDNN9+iajrWqxXr1ZrZfMEgyeKm6yyLRcMPf/R3vPLuKyT5W3zy6S2cjYfN16/tc+PN1/jsszvcvPVzmrrCt12U5zrP559/znI+5xvf+BaffXaLjz/9LYmGV1+9zPvvvcNivuKvv//XsbHmbPSg+lV/8FjgsEx2dqnahtnZKdbWIDXXb1zhYPeAzz+7xWpZslq+OHmyao8YD16LYeiHktn0KTYEvJ6yk1xnO7vMk/lDjs4eIcSA2ZmgNKccbF8h2JLFYspkO0cGiyRnOT8hEYYnjyuECmTZDocXLrKaBx49ucfp2SPIT/CDq5RlxfbePm3imc/mrNc16+UK5wVtW+K6jpWWrJZrQlDMF3OG44K2bUjT4nziYYJESMF6Zbl2/RusqhKaJWmWsK5O2BpfxgfP1t4+F8orXLh6iadnRyyeLFmuG0Jxk62DbcbDyyhd0NiStnrxe/p8bg3ESBCIhv8syxgOhwTvmIzH58XUcrkEBKNRSjEaURQFrQukxYjX3/kWf/OX/wY/vQNCM750g4Nrb1J9/jHr1QJrPVVdR2xyWZKZKDNaN1XfvJXn31fdy7jyPI97YtedH5qfz59yLsGoGB+QZvl5Ho/WmjzPMSah7WJuoxCSfDBiOBqT59k5Br1pGqqyjHuLlLFp9xL3NAD0AArbNeh+0s7vqDOez4rcBPz2vIeotPEuAnSIgIyqLs/9Y0IZsvRZ3Ifpp3mhVxV1XXcO10i0ZmdrzHh7jPeek+kpT4+PsU3HhcMLFMUA6yyr5TLu2v1oPS+KmFPZRGm389FXY51DGY3wAT0ouNZnMUa/mImWi15rqXSCkBL7eyhpX3ZtzidK9VaM56SR8dt95vmDgFZp76NaIPq/23YduVbEylYg9TNfvJCanQuXOL73GbarkK0jhHj2tHUHQkR/ThIzvUIIGKPwIZobMgRCQa2AXNPtJkwujFCJpqlrGuep245UKfIsZTwcAYJE11y4uEUrNauzGbILpEmBFhKh4tkkTRO87TBJhnW+n25uPGEvU0xFuS0iYsj/9kcf8uFPf81quWY6P2OxrviXf/ZvCa7h1esX2d1Ncc7x9NFjpFKMd/fZ2z+gXJTYeomgoVxb6tazNd4mMYaqP0PmxYDO2UgjrlaU65L1as16GXOlJqMhZR2DrRfLGTIETk9mbG/tU9eWYjLi6998n2Ge8stf3eZ0OsfblkePHjNIDLu7Y6bHM65fPWQ9O8ZkBffv3OTGu++TmjGf37rNunS8+5W3ogrNg7cBkwk2hOckSSMy/WUmU8+P+Z/PZ7DO4rynbjp++IMP+Ld/+W+YrqYE4RBuwI1rV7n031zgT//pMf/3/9u/5Kd/1TIvH1Ou5zF80zsWp0foHUE6GCF1JLykeZyMeC2QQZJpjZcyyuq8R8pAmmiUUIjgaZqSqq3pXIeWOhYDWiJ0DOEaZJokGfcj7bjwb+3ucfn6K4y2dtkgJqPMLGowo3lT9YSc2OF3ffGWpAnOOrR5cROq0u68eJAapOmnOjiMTvCd3QwAEVLw6PEjrl26Qhc8w+0tBtsTdJoipKRI0/PFZH9/j4ODA5TSPHxyTGlbWgJpYlBCoJ1D1jWujUG1xaD49z5jiC9i18Wk+s2CtNGib37FjVb2BQrYzveUxzhxixtAEjtpLkHrgrqOIbmBZ9LALw6oXtyHokLsYAgZ8fXzRcNw+wLbezsYqWNXU8dOXpQ66H4CJ8hMgHbFw/sNj58c8/TJE7p+chQLSMd8HpGde9tjRqNxvP9CImR8zuKY+lnRqaRiOBjw2htvMZhs44JjOp2SJgZpNNloQGIMk8GIPMnQWcLfffABW3t73Do7Y5xrlG15cv82+RtvkIQcsTjBSYGULVtFRukb6jZgfIdta5Tt8EGANOiejKX0i0tSAIKP5tI4EFYI688xxEZp5mXLdF3Rti2tdSDj+9O5JhZfPfnIu8D+cAstPcNUMcgS6s5ytqqogoiY7daRqPjsaB0zyequ6QlXjmVT4JlQ1w3eRiiE0SmrxYK7tQUpyRLBxYsXezlMnNxUdcfx6SmNtVEa1HY8XazRQlG7QGMNXjjKqmGQJXgh0EKyP84ZKDhdltR1hQgBFwJatUi1eOF7evz0EdPpERcuXmQ6X3Fw8QL7B4fcufeQsizpt3Q619LVDVJqJDIanVvL7ZufceXSIX/yx9/CWs/d+w/5/vf/hp2tfd5883W2J8NY+JkUoxMWqxnHiylNXXH6k1O++v5bfO+bX+H+/fu8885rLJYVP/zhT1nOq/Ou9yb3TYTo73z69IS//uHf8Eff+zrb24arlw6YLUs++PHPqeoK+sDFAKRKsrI1TsAgG+DahjuffcK7b7/OUSoYjUeMRiMePH7MLx9/RF3WdLUjMy8+RX18+hkZr7O/G9BKsV6UrKeG7UsNW7sTTqeP+egXH3J6fEqWFBzuX6HRjly2rMopCMHZacmZWzEYD1E+JcsO2d1JUWlN8Iajo8eo4CPVzZ8gMbSdx1UL3HFFZztW00ilLasWoYe0jaVr5zw9uoNWQ1aLhqbruHBxnyzLCUFQVR15rqhLaLtAVTqEzHjrvXdZrG08eMsJZ2crVuUpxTgh2Upw3Yz2eMrW3j7jbY1LlpycPmS1OsU7TZYO2Nvbf+F7uskkOs/uUYKgNV4K8tGA0fYWHs/pfMr2JPqVy3JJVZUMhynbkyHj8QCtFG3nuPHuu1R1yy/+8i8YbRX84T/6UwKeJMtYVxVPHz+irluywYjBoCBPDU3TUK8rsP78sN52lqrpUKajbmqkjH7e1Wre02ttH2AbIqpbxwbPZspmkgSURKcpWTZAdRZjcvK8YNTLw4wxmJFme6thNZ+iRcC5hMSYl4rycM4RfCBN4zTPdb0/wzp0EiETrvdlbMh7GzneJscLOC+8hBRoGbMgV6sVWitMYmKTmgjLSJNIRYxTtRYl1XM+IRhmhq1hytHTx+higBmOEfkK2c7oupbRcIT3A6qqis01pQhENZLRJnoogeAsJon0v8FwiDJr9vZ2uFAU8Z6J6HMTxDiXmOsrcF3ze439/1Ov5/Mzv/Ds9r+c870ETlEUBXVdkxcF2mg6a8/38Odlg6HtuPv5LaQSaKGRBNqqRUiFSQVtF/NPhVQUaUJrHVlqkAK6povqjuBItGI4LBgXKePxkKZzhFQwNhlhuQYXJ3VIEeWn0nPl8halNRzfOmXYedgaElQkzgkhyPKcxXxO0/b05uemUS/D9NJaR/melnRtS1U1NHXLeDzGCTibP+Tp8Sl//mff58LFXV6/8SqL5Yq2CVy8dJHL169z/ZUrGNGSJBHYNF/MqVvPeDBhMZtSti3bW7uYJCfNCh4/vsfTJ0+oypKmrhHEBnUkTsZGtRYGaxvq1nK6rFjWCy4nKVdfeZVLV65xPP3vOTs7wbnAcrlkfGGf7d09pidHJHmCCJZqNaOpGtaLM7CWk6MTPr35GJMXMQMRSZ4odoUg83lfnELXeWxTffl9+z2P5zMgAZyPNl1w1HXDX33/R/z5v/pXfZowTIqC733le4zTPUy6Znij4J/8s+/yya/vsZwlrKslOknI8jH1fMFxaxnvHTAcTwhSEWxEKncd2HZFagyK3jyqPIMsw2jFcrlkvpjT1GvSLENLRds0LFYLrI3+jLQouHTlCrs7B3SdZ+vgkG/90R+ztbMd/Vg+4Jq46auelhNEDKeL7IXQa4TjZEwEQS+s5WUSu5EWKUApQZABoQRSOQi6x4Sr+PV6WZ7RhqZryScjRjvbkdAjRezQqzgKTtOUnZ2t2C0M8Ef/4LscnxzFoL8sIyTRKJp2Hb5paG2HNAqdfDFNfZMTFIue6BELIcRDVSAunNbTtRHZqpSirmuC7wsj4SG4fmwfv0dnHUrm4Br67Oa4WNH/jPGhonMvfvA3qT8vztadZ2c4ZJw70npO8NFHBjEnw4lIKnQh0EpJJSQnKuPWqef257cJztNUNW3bni+qaZbRtC1HJ2cYlVAtVhA8XRt1thvwRwiC8XjM5UtXuHz5MmlWUC6X6DwndBGtPRoMkEIyHA5pmoYi0wwmW9x//IgkT9ja3keGJRe3Uz6594CHjxKuXbhEIVYE39CFKGNJfNS6exHwUkdNeldRNh1BxE3L2pcbTUVfoaCREmMUbdfRdTZmjiQq0jeNxvWSSCnjhFiq2AXtuphPkg0LwLM9SOkAo5OYe6IV09WSurEYpdFKolW855ZA0JK6tdRN4OFpyYWdhsl4Gy0d1XrN/GSG1pLgbOwUeqjW61jwWctoXPRErgLajlA7fNdS24pBIsiyhKpraDvHurGUTcsoy9gdD9kbDUhch9OS9VpgvcC5FqlBiZcx98b8vNX0Kd/75lc5my64e+cuvrOI4Htqqj//GaDfGPvMvyBiMv0wH/D9H/+Uzz67TaoyrJWMt0bceP0V2qZjuaxYr2rO5rM+DNSyWjV89tnn/C//63/KoND8/d9/xsnpjNY5nO+bJV2HDBEZHDHNkXjV1A3Vesa3v/oWf/mDn/HpzbukmYl+FO8QtSVLUwgKrUTs3nYts2lLXmi0aXnzzavcf3DKr3/1KZ23eBRBaoaTIW01f+FbuqW/zmB4ASnv0oZfYev/iitXtygG13j8dMq9u6dMn0hO7ln29wQ29dSqolneRatAsjVEhwztE/CCyeQSCk/jpzQ1tG3JbL5GOM1y1pCNClI8rY8NsOOnDxEyoq+X6xlV1bJaS9pWcXx6xGq1ZnvrgDQZs7O7S92UZFna01Y9bS0IQYGKeUONDWztXCfoBSGUdI2ksx1aZSxnCzIzYNVU2M6xf+kyx0+e0rWCyWibsl6yu/0NWut4/ODFi/7nYUjxue3/j4xTibkUKK3obDSQ70y2SNOUtm05PT2jGBbs7+8zGowROsFbx6tvvM69Rw+4ePECQinmZ2esy5LpdAZCMByNmC1WSCm4dLgfJ0k2msOXy2Uk6oqINUds9uJouAfO96PN9991HUoOek9wvNI0oxhNKIpBzCYUAiUTjElJ0/g8d10VKbehN6ZnUd6jX2IqBdA0UTLo3XPhuUL2iHZHPEtLfN/EFTLuk9GnHc088TOJhHRnPSbtlULWxqmUjFLALDFxCm9MjykXzyZiNjbDgw8M8oSvfeUdvv+3H3Dv0RN8OqDzgVTK84mfNobBcIh3oJUiuHAun5RK9j4qg+mb2FJKZJZydXebTCcIqdAqFjEIh0xSvG/xzuJsh1Qv3px+vvjZZGj97rUpsDbEYyGityvLMooiNpU3dpbN9NJojVCKs8dPWRyfkqUCnZhIdE00EtBGEpQlyHiWyRNFkZpzSINCoE3M3tzem1AkhiyNdLtUGJIkixJ6DE25JE0TkjSnGI5oZw6jLLqz5IkhyCpGCYlYgAMsl8tzCNjvKnteRukTFUgB3Vt5Pv/8Jovlgnffe4fVb34DEiajMYt5TWdPqcsIpjg6Oub+3V32Pv8tq2++z1tvXKFVhsVsgQeGxZCyXGGShFzlHB0dUQy3KOtYqBeDAfW6RCvFZBKjlUajES50nJ2eUJgEIR3j7TGzdYVWijzNGY528Vrxz/7Ff4YIlp99+AlaG4rJiHSwzVYQFOMxeZ7i1muyRLGaHfPk/iNOjk6xNvD553fJ0pTjk2NuXL+ISQ22bhkUBU7Auix5/Ogpr377P3zfvnR1MEmK7brYsaR/iQnM50v+5Z/9a374Nz+gtk30SeQZFy4ccuPaawz0EBvu0Dp4853LvP31A9rliunxnOV6EQEBQtIuK7y3BAfpoIjozSAi/hlBWTUoX7E1TJESrI348tn8hKMnT1FaICqDlpquaTmbnSKVRuuEC+OcLM9I0gGDUcZXvvE1dvZ34zQhBKQMdD3QQSlNmuXRQyUkVnhsjAAnOI8SMh4YhETrmAvxolfwEHBoLVDagAg41xD60FuBiz+Doif8aISSjHe3sd6TAFo+y4DqugbvLZPJBCECSkmuXT7kteuXex21R5ro88qyjHWiKauSYmeENBrbuXM99LN09tgds30wm1AakHgvsDbSflR/H7XWdF1fRAWLdTVNWxJcgpCetm2wXazoldh4mvyzglF4umCj+fOFb2qD84HZOiAc5MLiFzOsUr3JNf7bVsieUqhwyQCCRGvJsvM8eLqOn32wEewQIpBjk4SNkJRdy9FsSVoMaJoKoQRGBbyMEpPhcMzrb7yDEZqnT49xMnD10kWKNKMYjSmbI5pFyfGjxzxxFhcsUhmKwRjnLPV6zsWLF1FuwEB0vPbaFW4+OOHpcJ9tPSb3c3yIn1PwAgPxMNM2WAlB5Qi3jiGIXiPDy02mqirq25M0wQd97hvsOktEhQpsokmSBCnb86mVCjIW3V2HEBJvO0SwCFnQVTVTv0ICWZ5xMNlmVZY0XYQbRDhH//yFqFRctx12uuKXn93jdDbjwtaASZFSDHImkyFZnmCdJQiJDxJvIctSEmNIU8l779zAhhhOO53O6bzg+rVDhoXh/r2nPHhwRvn0BKMEV3a2uXxhn0FhMMLTrlPGo+u4IHl07w6qLXkOXvkffUkkwkev29lZSRsUxWjEarHAd56wObCEjtZGQ7xzik5YlDIYaZhs7bKsBAc7F5E3Em7evEPZVvz2s09ZVy1pllOvSk5nM86mC9ZlTQgeGyKZaLaEk1mcbFrb4YLF9pImZ12czisZdwcZQHiCkCzXDU6OKYZjBrkBJMF7RDRLgg0xjwaFcNCG2CmebO2SDw+59/gp8/kK2zqk1rRNi1Eek6eE36NH/7JrpN9DygyjJVKX7F/Lqe0dHpwsoJuws7vHmzf+hP1sznAg0EbRyRVGGoqQ4LoxF69ux0IyOyGIhq7Lsc2EplrggCLfBp+Sp3sI48nHFcJBtVxwdDKnbCxb22OSQULrW6qTp6zK6IkQMqdaV+xuXyDPE7quYzo7i5lMWU5isugRSgqCczRdg+t2GA2uMlvfBhMwUrKdXeTRgzWTvRHTOymTyRVO52uWTYlSlsSD74acns7Z3dlCTyYvfE/PO/PnKoJwPtFIkwRtotxvf3+f6ckpRir29vaw1jLZ2qZqLUenM6qqowmGWdXSdS2Xr1wnUSm3bt7k6eMHnE2fIoRkUAyo6gbn5ly+dIU8z1kul9E3FWLuYVlWCBGnImmaRk+F1tRVxSZHKBaoz9QWbdshlaBIcwbDIVk+ZGtrLwIKVOghEJ7lcsls3tB2FW0TzwW2s9iuje+Fc30e3IsfUpumRfXNp8YGgjBYLE6BFypCqIKLPuNomo6ToNBPWrSM66l3hJ7+6VF0ViBVitIKG0R8D5C0TUue5hCgayP6OQhB03aUZR2pfsUWQWQcHF7l8aKlDQItDRJLlhpG4yGZG1C3Fts0GCUQ0qFViIfT4KhqS5rFSU2RKBqVEYTmepHEokMYVE9g853roVSK1jYIKUmK0Qvf09+9ni+ufvfX81ckJBqk6I/AYRPiG2FLuEBTd9z71SekKgFaRAxTJBA/BxsgKwq0kmDjuSH4jrZuaFtLkedoLTBZvB9pkpJnCc5rpKKfpDq2RiMoDM4HLly+xtZkTIegnUpUs8Iaz6lv2O5pxfQ/zyYq53lJ46awehmZnwJM7wO1rWN/fxfrNEcnU8ajCUZotoZjZq1DK0WS5ghZMOo8T08X+AC//OXHaOU42N9juiwZbW0hteDenbtcvnIFtKKpW5LMUlcNIUiuv/oaeZpx5+ZN0lyxN5mwnK8ohjm1BJPI2MCpQOqUK6++xvbFq6hs0PtxB9x4421u3XrE4f4e4yLj7p37vP7WG6hEIdIBW/mEzjqUUTjXcHIWlW2vv3GV4XjAe/J19nZ3ML2/sglRDo8SXLp6+Uvv2+8BULjzobYx0ch4fHLM/+v/+d/y4598SBCBRCl0kiKLlJN1xb/5q5/yv3vtv6DQhyCecO3iIf/n/+P/io//4Wf85b/+kF/9/Dar2ZosyXDes1rNYqd9PcSYHJXkZHneU3gkBmiJWlypAonWXLh6HZSibauYDVMMqKsKFywByXgyZm9vH5mkSKF45+3XuXi4h3e2p/MphEowaUKSxQkKwcdF1FcIZaLvRMi4sAiB1qb3TAVEePEOldGDvngKdE3EeiutIRikdkgsUkf6TsyBUDjnyLIUk+df0ABvOmXR/PtFw+Um0DBeMdzNGE2eXCBIqF2Htc/00wCr1YrFYnG+aWqtz/M8fPDnOvo4wWrO5YAEdT7tU0qhZIq1mrapo/SMZ4uc9kTZJhG+4eknfy+xSbmQcloH1p1nMkjptKayljSNoaTWRfqYMGmEc6BIiiF5kZHmKeVZjTq+SZ4aZlWJVIE0jV1OrWK3L9tAJ+bzqHO3LVmak2UFxWDE/sEBw8ku87Mz7p1MqbxjvLWD1CnvvXGdZVNzfBrlGItVlAVKAVlWMJmMefLkMadncw4OD8gHBW5xzFaqmejA43t3yF67ykAniLaJi6kxiBAweJSAtrN4laDMGE+H6EqUe4lTPzwrntoO554loMsegiJkiBuDlCSJoWnaSE1y/lxmYRKDloKtUWyWpCZl3tQkSuFXFUWSMEozoKFsWvBxM9dS0jlHY2O+U+Ph8VIgdYMxKYM8ZzLM0JlBJ4bMDEBGoEKkS/n+/iYkmcaYDLUruXZpQmIU2zv7mCTn4v4B164cM/z1bzk5XbK/t0WaCKwtwcD+9SuMt7bRScZgMubR3/+Muv3ycf+X39S4KVy4coXbdx7hXMd4NOTw8AJnZye0dYcNLk7kOstApYQg+m4zvP/em0iZ8OMff8Dp6RkHBwf80R/9Az6/9Vuq5Yr79+4AUNUxF6ex4INCCbh6aY9vfe+bfP/ffcjZ8QlfffddLhzu8KvffELb1jE/rUdRIyAIT+c8qUl4/93XuHHjDf7b//d/j5COr3zlfY6Pzzg9PcM6iw0drXWopP8EQpQDXX/lCq+88goffXyLo+MnXL54gb0DxenZgiw1uK7BhYDJXpw8V+woQivwFqT/Fp/c+zVJscL6BdVacWnvO2xvbzPJt8kSg/WW6fSYPJ1QpGOUySjLeyQmB69pGoN0BbhAuQCVphipGI0KTDZkZe8ynR1hK0e1XPDxJ3dBWAaDLE5qHaTJNjs7VzDKggwcP71L204J5DSNYD6Pvp+YERjIkwSjJSIE2qohzwPD8TaL1THaSFbNCap2eJY8Ppqyt7vPydkUQc3B7ht0zUPuP3jM9t47jIeGyWDAslq98D19vpja7Ae+n2YYnZAPtlmtK/IsRe3u0NQtT58+JcsyBkVB07aUzYJmXVJXNYPBmDQZoJWkXE+5/+A+q/VZpMmimM/nrJZLrlw8YFhk59CAzaShbFq80AgZYiwKDi0DSjwHySBwsLOFkJJ13fYqC0eucxCabDBCSsViOWNdylg4tS1t658rwnxUTXh7/vWLosC5jqatqduXy++hj0OYzxcxkBSHD6EP5I36n43/53mv+oaeuyHu0kvQ43+LXoIoSdOYmeObJhroQ6CqYkZlWa2xfaxH8AFjNE3X8Ovf/JrBaIxoS7AB4SxXLuzzre98D+fhzr37KOHpgu+9T6C0QikRMde+YXdrmzRL8MQ8rWw04FIRs8hCCCiT9nI/ifctwTuCd0ht0CZ7qXu6OZM8X1Q8D5P49//8BpqlgH6qI9z5OST62RV2seT0zgPUpMAMAtpE5ZCSgbDxljsPzqJEQCkTqZ7W4p2LfjyhMcLgSchHu4gQY2PSNEEISVYYinxAWa5ZlDWDUZygdF4w2IoWgXAyZ648lbck9BDk/5FJ1PNnwJe5NnltTdv0VETB8ekR2WqFDx2DgSJN4a13XiVNDd/8xjfwBE7Ppvz4gw/pmoqz2ZR79x/Tdpa9w4sgIC8yLl69hFCC07NTQNG2a5RyDIqcyagg0bC3t81sdoKRgs4H9g73uHD5Ilqr6Et3msneHgcXLqK1YL04o6wqjo4esX+4wz/+p3/EwcE2Ra7ZvzBgOEzROuZzSiRKS9I0YXtnh+29ktbWXLp8QDEocM6TFXGwkomYVyeJDfnf10T9PcVU0+s4JZ1ruX3rDv+//+//wK9+9UvSPCXJ84julpHONZ+d8Nc/+BH/4l/8E669eh3tG5oCBjde4/XXLvPP/vn3+O3H9/jzP/8pf/vDXzE9XtLVDVV5ivQWnTZ0tkSGAVoMEUbFgErr0QFIUywSk2XsXLxMvV6TaRWNpN6ydXBI27SkWQpKsypLdnf2ObhwSJLmaJWCEDhv6Zp1THKWMdVba4OUKRCQMk7GQJwHE3sfIpNeinOAwotcUnV9ino09gcZSSIEgXCBQZ6RJhIto9l3NBrFgsV7siQGij1+/ISjpyesViuuXbvKxYsXWMxmMVk+zTDC0NWW9XzNar1mNBySFwVGJ4RU44NHBQjCnmvJq6ri0aMnrNcxo6Mosj5Xo/ePIc/x6EJE+qA2EdXqEf2GoAlBRH6/7wN9hcQRSJVCBqJ8YXNPA5zPTl5iMDU/KymtYqhBrloQgkw4ZCuQJiFXOmqcpcZkBdIkpMqg0wySgk50GGUQaSwG27bDuxjw251THT1aBqyA09mCg4MD9rYnFINBlKkGOJvPSYoUlw/IjSEtBgQl+ODDDxlNtpnN5wglmWxvI2U/ys4yVJLggPFoi6OnZ2y9cRWhU3K/5pW9hKNPn/D4eMj4sGCoSjx92rkPGG1JhoLQk5Us0CBxqgD74ocpgCBElHf2eRreeULg2eHKQRc8tbD9xrXZ2DZYX4FRgjTJWDaOQgdmqzW1j6jfRBmKpIvSCBEom466s73Rmb4wczF0T2vma4eWkiAlmUlIpEZKG4EeIvqLQojyI5MoxpMhxWBAkRU9yclTqCGu7bCdI80VRZGxs5Xxjfdf4ePPn9K2UK9bunZFWkjsqKVe12TCMNjepTi4QPfkwQvf0zTNuHztMp98+jkPHz3m1SuXWc/mNFXFzt4uVdUxPT2hbRzeAUIipeDgcI+3332Hhw8ecv/uY4KLkcz37t7l6PiMr3ztfbzz/OY3vwIX82O8jeCQ0TDlG994hywv+Iu/+hHzszlCSH7y87/n9Ruv8Id/9C1+8sEvODs9i+iL/gNwQZDnKX/8h99BCcOf/dn3qZoKCax/9Rvefudtxttb3Pzss7h+SUHwkrZ1FHnKN77+Vdqm5oc//Cmda0mU4tGDx0y2J+zsbbNYLLCdiGGQ9sULf+8b9i/coA1L2kZx4cIuk8mY+w/uMplcZZgP0GmCCBJJwmrRMBwHimFC1xhUKmkbGJkLBJ8jZEJitpDCoXRASIn0m/Vuymx2h63R69TMSEnZ3nrKhz//McELvvbVr3H16muczDxVHQDP7PQBWeGp2inTWYIgiXh6iD4WpajrwGrpmE0XGCMwumI8LNjfvkLdLRhmBaGz2O4C9bJGb0vGwz2GxS4ieI7unXLpwg3mzSkuKJ6cHaHlixeoz4f2bg6rEMl5HsH29g7r9RxbeRKlmZ49iPIoY/pcmU0IrcZoje0szp7S2Za2qwl9oVBVFbbzPHr0hMPDw0jt0prHjx+f+5dW63WEFxEnNbs7O7HRZwyr1aqPmUgZDgcMipyyqs59U5u9XUgZ5YRswjhBSb9BIUWKo5IIoUiMRsu0L1g8gQzrHVWdktYv7u8xxpyj27vOnnt4vHf9wdydTxqca36HpMwXPgd4Jsdyff5dNhjiRYwmEX3R1fWT/lg0tvFn77Ouus6yWi1oE4MLllcvHdCULdtbY3a2UlIVOF3MqFZzMqNo63jQThLdy99zTKJRLNjaGpMmhmldo41ie/+AYe8t977DB4vvOlxXgwBnW5Q2qDRDpcUL39MNaXgjd3v++g8XHOE5OWCEj9Arr577w8zu3iWbr6lXFepySjuMn4cLgSCI8THWQwRLY11LxFCD0TIi5UXK7oXL6HyCNznNakGiowZJSMXu/kXG4wFtW6FPziBY2sZzNp0TVMZsWtHUDeuqomn7rFC+WDD+7s/6P1ZE/sdcrbO9qingguAP/+gPUEmGc1AUCeNJxuHBAVmaAf78jHp4uM3B3jY++IjYD5aus2xvbWNSxf7eDtYFjo+PSbXi4OBCnxEap7UST7Y1os4SdncnSCW58opDSEeeDUhMQlWVODyuDQgcXVVhez/gZJyhBVy+/NU4IAEgSmE3GXfeRz9iXdU8fXpMZ9d89WvvMxwUmDTt34/4PCltSNMc7xpSmf5eOeqXh/YSu4uLxZy/++BD/uIv/pKnTx6TFxnD8QQvJK3zVKuK+ekpy+ljTkXgB3/9Q/6by/9zhsklJI6WFSLkFMOCP/7eDt/5xnvcvnfMX/ybD/iLP/8JD+6f0vgS29QYl+BcSddW6KxASY0gMMgSqjripZEWi2KxCiTKURQSHwwySKSJgayui9OF69evsbe7jyDguhKlJFoZrDJ4SSSv9Cb7TQCb74kU8XAQ6XWCjaFRvpTMZzCxmyiDfhQbFwApJbRp9H+0HZgYqhkP8yoGzFnHYFQgPBw9OWI2i2a6mFJt2RpP2N/dR0nNZ59+zp/92Z8B8NZbb/Hd736X7Z1tgvRxUuM5zw7puo7j42Pu339AnhdkWY4QETG6Qc06+6w7GTvXopfMxUIzHrwFbesRGAQWKTROeDyxsMIFnBK4HkcbUZTqPCz5Ra/Sw4CKourQSuFlwAkPTiKsQyYJIk1j7pJzCA1OxPyy1lq6qqWpW+azM7y1JMZgBVjbgYxSpjxNoA2MhgkOhTGKyc4BWkG1KnlwOuPiwR6kBcNh3JzbpqRzngsXXu07/5aua0hTw3iyzWg8QZsYtri3v8+r11/l5PSE6apiPDlErm+znSa8ejHno8f3mQxf4d0tQyocLRCCxLmExkpSrREqQ+UZrRdMZzW2OXvhewpEuSOB4GJGxxcX7yiZjEHP9fnEiv7pNsacb25NZ7n3+Iiu6TBZhjIaLWJHte0sy7bDhUDdxrye56euQkqM6Q3E3jNdrvHOM0klRsduaZ4akBJna4SU5Jlmd3cYs1Y0CBqUGvaHEYnUmtks+kmkjH5I33YcTgp+c/MRZdtC6Bg3CYRT0qLC+yfRd4h6KY3/lVcuc+fuQx49PKIosthUwGHrkqcPS4rBiEuXr1GuP0eHQJZIvv6NrzAcjvjFzz9isVjGNyf4c+pUuV7wwd/+La+/+Sbf/e73+O3Hn1E/fYLSktev7vP+e29z5/4Rf/ODn4CKzSOcp607PvroEx4+esC3vvl1Hjx4wK07d7DOIoPkxtULfPVrX+Ozz+9y8+Y92rbFYeMU2nluff4ZB/v7fP1rX+HWrTtMz04wynHjxnUuX7vGnVt3OTk6oXGW3a0tCJ6qhOnJnO3twJWLl3j06BG162jrFw9Cv3bpVTrzC1bVMY8fHvHujf+cpurYmVwhMSNsOGMwjN6d4DzDnQIphhwfL/CtiJEZ/gDXjpB0SG2xYQ5eEWyGVb0cpbN0daCt1jRqRlmdsZwu+frXv8JgoLn52V0ODy+ztXWJfCxZzhY8enyTpj0lL/apq4qyOeLq1TcJ3kXkNAvWS8N4tIUL0NqOs+UDxjslxeg19ne3ODuF4+kJRZGxu3eBal0hsynlu761swAAuhJJREFUyjI/XWH9Q5zVuFBS5NvYUNG6jo6XbKb002XvovdVax0l2lJSDAp2dnd5en8JAV599VXatmW9Xp8rFjZyu6qq6LroZ1ZK0NmOuq4oe3le23SkqWE4LBgMIuwAoK7jutI2TZyQJgllWSKVprOOp4+f0nYtSZ6zf3CAlpLFYs5iuaSsY4EF8e8brQl9zpDREqMUae9LUr1PM07eY+MsuBjzIEUghD503jma6sWn0hu4E4BwjqqqGA0LjNG9lM/2agDPBo61OfQHQi+Pf1bcRtpY3IOVjkWZ6KdaWgqMTs4prBHsYwBxfmCUUlJVNYGIi98eDUjGY7SIkIjFbMrZ6Snz6WlUImDOVSrex6bzaDQi+KiOSBJJ0sWmw6XJhELI/gxlsV2FbRo62/SyeUGSDlDpkCR/cZnf8xj08z2j/9/Pe6ieL7Si7y42MozmC4Tm84mWd5zcvMPQB1LvaGtLk8QGV/AgpML1nmTrLEYIfBe94rKnQJu04PD6WyTDXVCaVgg611Ho+BmpxOCA0+WCndywOxowX5c4DWVZ8ZsHJ0zS2KyQnX3m/XuugPrdgmrzc27gYC9yZUVOlmZY62iqhuFozO7BPllWYG2NDx2mh70kqcE5i+0sw0HG5YsXQULARlS6jXFCzrWcnjylrhqc8wyKnOAbtFHRk991EXITHMZIQoifUQxZ7iNW+jOI0ZpUCZJE4r3svWbxOXBtg0kNPkQlmRKBgMSkBm2SaFFRCtt1HF68jE4HXL16+RyNHynP/RS4n/5qbWhbh0lfCo0eK+S//psf8MMf/ID5/IzRaECaD+m8pG6jx2Zx/JTV7Ii6nQOOv/g3/4p/8o++Q2sDt+7f5vIbmsuXt+NTiyZJFO+8cYk3X/2v+Bf/sz/iJz/5iJ/9/BPu3jvi+GhJva5p1g1iPSNLM/JsQEiiLwopaDrHdFnhAriqwpgVQhlsXWKbEmM0r7/+Kt/5zrd57/2vkg0GBOfpmogXl1iUSjBSIbUhKIdE4ILvP7Q41gve4fuMpo3vJoIWXtzYH/1i8eXuKkvX2JgVYfpuoHjWEWzbltlsxv7+wfnCMBqPef2N16mqlkePHyGEoKoqQg8ByLKM9arko48+OtfUdl33LMTOqN7/FR9W6xxlVXHz5k2ePjliPJn06NsB1rlY0QNta2m7WBRprZlMJkjV0XXQtpz/WW0Mtu4IOtA2Dc5WSNFr76WkxeN73P2GoiiEeCnLVKIUaRfN+V6CThKkiv4QdIJME1SSoNMClaVokxCkAgldF5gvlnSuoywjonUT/jgoBr18rcF2DciICi1GE0ya0tZrlOzoWtjf20EkCZWXKO+pVmuyLGFxtqScVgTpGI2G3HvwiIMLF+iahtPjYwbDIfPFkosXLzIcDlivV9y69RnFK1fYJmVAxf7ehNHxI6aLmifDMUXoCAGkNBGkYqHrHIEKV3YRWescjhdfUAGuX7vCarWkXNesq/qcJvW7EoqN/NNZS4Dz7Bkgeh/rJsoQg8SEgJagVaQP6UTjvIvRB1LG/IeeGrlB3G4ODx7ovGBddxxPV7gg+PjhNBbyPk7NdoZD3n71MkE3WDtlMkzZnhSMtga9dEgRgqY8OeP06BGj8ZB6XfPowRHWw+mq5O7pEhEcuIBRRwyLnNCBSTWXt4dsJeMXvqef3rqJbzxt07KzO4lyOt/HDoTAcn5GXVa89fYNjJFcu3aZ6XzOT3/6YZQp9z44gcQo2WfpxAPYrU8/4/jxE77xra8yGaccXtyFoPibH/2C6XyFsx3DZIDvlQZdF0N/j57O+OsffJ9vf/tbvD98l/t37/K1998mAN//mw9Yly2iXxtDH6VgtCI4x9PHT6iqFd/+zle4+fltXnvlGqenK374ow8jJEf2Ae82FubWdWipWJYr7BPHa69e59Pbtzi4vvPC9/TpyRGHl3bYLRKuff0dFs1NmvIK0mzxZPkLTpc/J2fMpYNvcmXvfUKoqbvoTRIyw+iMvFAEJ0AH1usZq1WJEhO2JyOSPAdhaRmi9RKzTKmqI6SC6XyBFmPee+ur7Ey28Srh0ZN7pOkIrRX3Hn5E21VUZcfh4RUOLxyws7eHCIH1+pSHDz/FNwWTrTG7+wdk+YQ7H/+SnQsNw9mQKxevMxpu0fm4H+xubbFQC2rr8bbk4sXLKH2Fxyf3mK1/w2rRopVga/Iqs/XTF76nm6ZZ6KIcywgZA2WjbYSApBhNEDqhWsxQhTqHGwDPAD4yUFZLrPWU66rfr1rWZUnX48YHuWF/f5fxZHzuBdn8G13Xkec5uRCUZcVwULCuW6bTKV1rMSblwv4ug6LgydEJDx/Hn9kY03uoHEYKxoOotNASjPTPUe36GBJv8V0EbDzLRHw2hVcE8lTD4MWnfc9P6+q6pqoqJuNX/keasyHKkp4LIbbud/HpAqU0qvfdVHVFoQwhWPI8h7ZjE9bbtNX51w6BmIkWIjQJoamqDmeX+K5Di+iJy4oYRq10ikdRdx5EjAgRMlCu1wjpSZI0eqdsjXeaIk2pQ8vrQhBshzd9Ppa12GYdRwPeo/MhKi1I8hHy9yCnv+wSQrBer0nT9NyS8LvTvPhzP2sGeu/QJsr4jTH9mUt8wXO0rtc8DR5xdZfByRSztnTjGDYbJ4EROEOIHj5C9NcJJFooggqUdc3N3/6WP/jjf8y169c4PbnPPLR4YsapSRO8gE8/vc0b1y+RJ4bOAa4j2MB0usBMEt67eoHPbz1E9YWj/J0C6vmCSkpJnkf7wYteaZbF50Qb8kKhRCC3LUYnlFUghBxFnKZqo/De4Yylay1aJ6hesdS0HYmJ+/xq1VGtVjTrCJvYvbBPkqootQyC1Bis6/BdJFs6KzHKRFBJsDErVURegDEZ+A5vuzghFJLRoKBrO7wUeAGZyXAhRk5YH5sNSZpEhDyC1CRcunKNCxcvU+TD57xmsRg1JnrYgg/9eTW+b192fenvfvL5Tf7ir37A7Tu3WbcNMisgTemEoGosddmxnk5ZzU5Yr84ItkIqwQcf/oj//f/h/8S6rKltxdvvXeF/87/953znu2+QpIpocZMkOvDmqxe5cf2Q//Jf/DGLecWd+4/57Wd3+O0n9/j8t494eO+Es+mK+WLK1mhEVg9oOs/07IR8ex/XthBgvJtR2orQlEy2L/POu2/zve99mzQZEJxDSY1TGiU2Hp2+I4GLqEmiObMXoeG6CEVomqoPgstAxOwLJV7cM2VdP64PkdxjhEfiUEGgeumwEAKTGJRIKddNNDEPFGVTs6pKDg4O+M4ffpuqqphOp0xPZ1gbcA68izlAb7/9NtevXwcFr7x6nXSY4ITFWk9jW7rg6AR0SnMyW/D06SldWeOzgvV6TTEcxkOEsn0BGA/P1lrarmawnZCN9uk6S6oTFsuK1geqtkOKAJ2hXi+w3TwaeDvi99g1eOK/44XHCYvxAvUy0slqFQ3zwhNCh+tsDKwNChUcgRaJwbuatlGENEenOW295OmJZb1aMZtOGY5GaKV61PmzzTRNI+lpXbdYF1jXDRMB7fKIrQsX+daf/im3HzziweNjZqczZmdnSCHJBwPKtmUy0oggOTs7Y7lc0jnHpM9JSSSIYHn84B6rxRTbWcrlksePnpJcmJCqQG5avvLKIR/ePeKehG9cH2CMgz7/yXca4cF6ie3ztoLwJOElwxBDiM9oYkhCzJ7YHPpFEL0Gvs8ICwFE3JdikKaO0s/zcFrRewHjOxYCSC0Y5QmDNImdWe+preXJdErrIg7ZORdf1NCLa1XErZ8sK47mJYuqwj03NTZacef4jIuTMe9e2eOVy7s0reX4dI0QksSkNJXleDbjyfERuY4m5OOnp4y3JiyXS3xdYdsu6uEl1E0HPlAkmrFJmOwfvvAtFa2NEkbnybIMLyASPONBFTSd63hw9ybf+eZ7/OzXN7l5+1Y8zIaY9+N9lBtLCVJFuaXsDd7L1RrfrvnH/+A7/Nlf/Tvu3X1EXTfYtiUgsM6jZTTquxBBIkoYlMy5d/8W/4v/8j9h9sZV/vanH/Po4RHWNr3UNzaZpIgAh8RoGtvigmC9rkhV4PU3bvDB3/2C07OIqZYC8iLHB0fblVjbkRcG6wTWW+qyJDEdf/idr3D7zuMXvqf3j3/F7u5X2d66znq95NHjOdiLPHz6MzK9zetv/NeMBgmLs6f86ON/xcULlziaTZlsX2I7fx0vPWhBEDUej8lztpOUlFcR0tOsT0GNkMmSzt4myVp85zmdzlBpfOi1TiAosqxgPnuIURl3H36GzNbU1ZqHRw94+71vMhpu8/Nf/Jg0LdCyYnH6mL3dQzrRsKoEu9sZb731DmVVsa6WnJwtyZOMqqrJ84zgAh/98lc8Pr3DtVeusrUzJsiCwW5Ok60ZbI2g2ufkqcOkwxe+pxuvlAzRX/IMCS7obbBkWc7e3h4PV0vquo6wkcnkHGS0Xq+RdYRHNE0LIa5XZblGK4XRmuFwyGg8YGdnOzb+WkvTNOdkwK7rSNOUPM/7hpzi3oPbVFXFq9cus7e7Q5annJ7MODk5IYTAcDg878wHAt635AmkSQwIlUSDfjxzPyMWe+8R4YuwgkgyjmtcYgxm/OIH/83kxHtPXddYZzk5OWFnZzc2S3vFx0aKJgTnMnzZH1ji97qZQvRN2c7FPbpnLittovKkb7Jsgonh2fQihE2TI/6eMJqq80jhQCkSNOuy5fHTI2rrUUkO55LC+DlaG720eZITlEcSab/DLGOcaDrbRnuGULi2ItgOpEAohdTJ+YTF2hefSp+cnNC2LZPJJHrQwqY4fuY32/zczxqA8b+Hw+EXKH6bKVcIgenZFLO/w1kIFPcf0SFIrgwIiaeqeq+aAKM13rV4fMyMa5sYCeIdA6MZSEe3OqWcJshyjm9rFsD+eIKSgk9vP+Tmoxl1Y3nnxmUQkrrsGA9zhrolzwZsTwYkmTkHhW0+w+cpfkLELM2iKL4wrXuRKziHUgYhFJ2zWN+fkYUky3LapgPXnX+OEVgBJomeOmVikDGijh+x87EZF1qW8yVZMWIwHKJNbHZIET26xieEJCV4h+jPBFIktF3TA2c8bddhTIpQkbkQv89oyTGpxvdeS5OktF2LRDJI0zg91bqHi8W3oZCRRJlkab+6hV551vtEPSgjCCHaYfzvCez+0qrg//H/+e84Pp3RlDUehTIa2wVc1dA5QbVeUZUL2mqJrZdxV9ea9WLOhz/9W5Isx+QD6p93nE7/B/7kH32F/+I//y6vv3rYc/HB4yPusNCMBxnXL27xJ995i7rtODmb88u//5gf/7u/55OPHvLk6RlHy2OslQgpSWVFul2wfzjkq9+4TF1e5cnDCmthtqyxLpDi0VLjfNdPK1K8dxgdbzA+hp0FQIa+mBIShyN43+tCo3fKO4sLsh+Xv9hVmDj6JhDzgAYp1jqSNImZU0r2eQyq19YnWBtNqp21nJ2dEUJga2uLYlAglcTbQFu31FXNarWiKAreffddAGyIoaTOxTyEpmtpuy4eVK3F1i2rszntuiJYR13VMam9bbDOkYQotUp6rGjTNNR1zXg8oizXpFlKZgJCS2ZLS20FOpEkWbx3rvS4NKOpHdZCFgp8iAj29WqFd/FFeJn8jsFAIlVMd0+MRipJkqVInRDSDJ2YmO2hDUIKrPcEoanKhuPFlPW6Q2nN9s42WiuyLMHZjjzPWK1LQvAYbUBWRKWuJE81+5nDpCNOlzWPnp7y+MkJq7JEpb3eXsK6XFO1Fd56hHBkRQyaLOuGzkVN8rrsjdxSsqhKUmNYz6c81J7swpDdrEJJwaVpw82jGa9cvMy1oUZKgw8NTqtz3Lu3ns62WNsh05cDUBTCojQMlGagFS41fUczbibW++iXc/5cR04ALQW5ibkelbckiUBK1WdPeQQeHJHeV9Uoa+MhXQq0d0wSgww+To6lQIQINVAiFmO50RT9YakpDJ2PFVzwHiEFqbOE2Ywn0rNerME7Om/juyUlXRdog+DR8SlKSbyDUZHy1mTCG5evsZ+dUZVlDPdMBWkSQyetjweXcvXiyGkpDE3bxKkcIEKc4MVN3Z9LDB4/PuW9oFEmZ3d3l8XZFIhTrCgJij5GKRXed2il8c7FIEcknz86Y2v3kNmiZP34Mc7HsMmmbdH9Zqu1RiBQ0qC0pGkcq6Xj4XGN6yRZUlC63iuq+qJZWJJkgAwGXBuBOVKQZyOOH89xQRJcC14hpMa1HWgiQTTPyLOMsnQE56i6jrJx2HnJo6fTF76n33z/T6nbz7l3fJfp4nPE6n3Ozu5w4eKAQVawVYx58OhX3H3wK67tX+Pa9UN2dy/FaYoqqVYdnfc4D0mSxcN2sKRB4pxG+gsEM6drn+L9CVWzwKgBZbVA+Iw0lSgT16/J1i5np4/Bw+nZQ0bbSfxc2WJne4uPPvtrTmZP2d25QDU9Q9sOu1Wwu3eFva0d8oFivHWDs+kUZyWLZUmykyPlgFufPeJXv/wxf/fBX1E1a77x3Xc5uDxE+oLBwOO7P0QbSzK4zMFWzqI6feF7Sn/gCP6L3qlA7MZvvLSTyTbT4Ql1GeV9Ozs7WGup64rgHda1EYhg4xSJANvbI3Z3djFKxolClhEQ1GVJZ33vg4nxCkliqOsKazv29g94+OgJ3nqUFGSZZjwZslyueXp0TJIYtvdiUdY2EayUppq2axABpFfQY8d/93p+Av58iPymU+2eA0G86LVRiTRNpNjZxvL4yVOKYhiLOy162i/PQXz6j+P8e9p8MAEh1DkkyDlH27YoLXBtS+g6ggeTGNIkxTlP3USKcQSJeKqyJk0zkiSN+5oPCKOpfcCva5quo2k7gowwLJxF97IqIWK+5HpdoqVmmKWRzieiF20ZLFvBEPOyJLapCCIeZE0xjsCveo21Lf4lcqbapkFr8xxxMTm/X18okr/gKVK9x1NC2GRDSvoym7opefrwEcoH5KpErhuWUpKVlnR3RGMtuIC3lqDApAmhrbHBx+kRAWE9sm/uPrzzKUniGGqFdZ7p0THpYMyj3z7gB7+5y2T3gHW55GBvC6MUbbnGNktevTzh4uWrQINUgdVsSrh4+O8V+0op8jzvJWqx0K1fwtsXASgBrUQM3m6r6DeVGikFtrPnz5ZOUtq2ITEpSvWgMu+QKiHt18TWN0gpWS5X/PbT27z+1rs9pVKQJGnvU29jXETX4l2HTnNs12d/6T4uSEhSZUiyDKnV+fTbGBOluD6gRULkESiE7PdWbeLflxodc1uiV5WAUKpnIITeurD5+aMdRulnIdDOffk9/dKV4fHJlHpVRt+QBGU9ofPYpovZJW2Fcw1d14KLmFHvXFwYXKTj+QCuranLFU8fHfHTH3/Kn/zxe/zJP3yfN1+7xDBPCMLQR7+hROx2DzJFfsFw5fCP+Wd/+l3qquHk5IzT0yXLZYdQkp29HbRSZMMBDx7N+Nd/9gmJKbBdy+xsTtt0jAYCIfvuq4CAR6B7s3y82c4HrG9RSJy1ON9FiYrWG2cPyE1OAb3078Wu7XERcaxdTZrmKGliJoHSMdm6R6Ruvj8hNUFEKVWiTZ/jcYq1lsFg0D+ITQwytp5ytSLLM4piACGwqtas19W5/t0RkELR2GisP3n0hAe37uDKOi7Y/cLi/bPiZpMEH7uKJcvlkrJqEP333nlHwCBFTqIkxpRoGQtw40ZYu0IZS2ktqVBYH2UiY1MQukATHKVvX/iejreTiLXXBqEUyiiE0ucvv1QeoVx8DmSKSXKE1GQmZW9fcLJ4EjXqIi4QTSVZlTUCQZ5E83IxHDOeeB4/fYpQ0Ug8mQhO5kec3rzJrz/+DXs7B1y+doWubRkWA3Z3dpjNp+R5Ht8Nb2k7x3KxRCnNcBiNm1JFSUrbWYbDEXW5JrWB2dMTjoucdLdgbCxvvzrmzk8ece/JjOv7IxITO6zeS7xQeLvRs0MIGsKLS1IA3hsWtImOOFLXxOaDUFE33ms03YY6FaJvDmI3WMoNNhsQot+sQPULk1YBLQJKQKp1TyhSdNZTp/q8I6yUwhOfSQmx2FWSPNEYLei8xrkQkei9BDXPEhKjyFNFloZIBrR5XItCYC0tdesQqYqyAA+JcPjlDGlytgxkmURJSNIEpRVaKWzd0slAql688D+8coNbtz4lSVPCZiIuBTKE8/VJac3Xv/51Pv7sJr/+6De8cu0KN954i0eP7rNcTONmHQAlyBJDU0V6lMkM3/7We2zt7vOv/+0PaKqO9957h8lkm1//+iPanrZYV1WUOYmIYdfSsDXe4bvfe4/ffv6Ij3/7OW+++SbbB7vc/uwO5XpF8BYpA1JoxoNtbL1EKc/W1oSvfeMbfPLZQz7+5LdcunSRncmYe7fvgYhrpe6LYhlACYVWHusEb771Cltbu/zkw5+RDV5cltI2M85WNzmd3ePBZ4ZxesQ//tP/HJ3VTOenHE0/Is3nvPP+BcZmxNH8Qw62XiNLrzJbnzDeusx65Qhe4sKCzk3xdYHOAlpJQhaQiWG1lqyrmq5NSQYFrYed4SH7B1cwMqduPuHk9IhXrt1gPm+QSYkMgizJ2N3bpxgH9nZA6ZzDCxN2brzG0a0jDi7tMR4OyTNNVT/FqIzrVy+xLDvm8yMe3LtHoi/xq19+ymef32a5moJy7OyNWFdzMllAM0CFltGwIfUXWa6OSNoXf/9FT3bcSGihP6BG93vfHVck2ZBstMXp9JS0n5TkWcbFgz2qaoBzLXVd0TQdTRuN7cPBgPF4RJbq/uAi4vS0s9GL4h0KQERpWVmt2N/dw1rHcl2hpWR7K+YqApzOlnQ+kBU5Rmtc70cCMEGBjxEZgTjB2UiQN76u85/5OT/SZr/cHKw2x9fgX/zd77ru/HBve0O87Synp6ds7+zEJq63fcEaD/lt20XZtI4/Q9fF76WzDoIALUHGpooUIEKH8AqhJFVb03QNeZ4itUJbTXBxUij7frCQnhBaBCpiwr3AOeh6hYcxGtVTjJES66I80PsADtbLNUZpikE8i6lgqZuan64XbA8mjIh7UvBx2hFBRjb6pLXBugbXvbgPTfWHY9nnYm38tpuid/P5Pp8htTkcxz0sTtCFiIWUD57PfvJz1sspVmrcak2JYJwY3KJC7Y8xSUJbt+ceHm1MlJzFoVekvyWxMdNYi7Uts/kCs73DclVyenLCeHcfqRTDImN6ekrIPNP5HKMUrqmwbY0JDanokFqRpyntehX3YJ49q8YY8g0IrlePWGu/cH57kUv0E9uua+PUTj2bqiZJQhvsOU8A4lBEKoUMAknv89Px93WSAor12nJ0suCr39pCJynaRF+TQKAMSBPP6NIKsqygFk1sjKuMrm0JRImqMfFMJtUmn02c+4DjxDWa4EyiYqNgU1QHkCp6o5AS2wS0NvEM47ovTPniFQjBETl1kvb3UHy/tJhaLSp8a6Mvw7k+xDHqCK2zBOewdUuwDqFSfNcgICJyNxS4EC1G5WJJV5WUsykP7j7mL//6N7z55nW+841X+Pp7V7l0uMOwSJA6ToaE0ATp8MGj04w8hZ2tA8TrUbcfQiA4z9my4ae/fMgPfniHxULgQsu6XLO9HScSSif9Ayh7czt0rsVZh0kSpIqp1sor2qbCGI2USW+qjOQwejCFs12capkX36S8UOgURBIIQdJ62ctvArgOyRDnQOl4mGTRcGAbUqHjARnO5XabRVkh8fM1Tsw4bh3ZaEhS5LRNw7KqOJ0tGAwGpEkkBVlr6VrPbL7g1u3bnJ2cEJru3IgfUdjuXG6xMRFvZBfaJNSz5bkMy9MSiFMW7zsEivlCYDuQNonjWbeg6RfquKmCDoZUgdQe3754JpI0Emk2RZRC6Y0EIhJzhJBIL8AFpImhyQJHaz22X5zyPGc4HEatejFAhDiqFn0hUJUlAeIYPc0p8ozR2LOqVoS84ODCZZqyYj6bc/XqFbIkZbFesVhXeCRNV5GYDGfj5+49PHny5HwsHzujcfInZWA4HlCflNy9+5AsucLwwi6XtivefbrgN0/OKN8cMEgrtJJ4BR7wcrN5qP5rvNxkCtnhfI2wCtVr7UMIqGSDUHHPtOhBRonMeWEgCDHNMEoBiV1AJWNgtSYWuklvvrbWYnE4E8hFJGZuUMWbM4OSAq0lmdEUaZwaSZVGb5yQONfLcdIEYxSp0aSpxBiiNxIAQVd7ynVJs6X77jvUTUscOLd4HUgRKCkw2sfcFunpNDhtSNMXn0yvl6dcufZKb9xuCQKUtQgkAc1gkHLhyiV++avP+PjXvyZLTSyiRiteee0N1qsZD+/fJnSBaDyP92QyGfCd736Tx0dTfvoXf41tHXVZ85Mff8j169f5B//gD/jFz3/F6dmM1lq0iUVoliW8/eYN3nzrdX7+y19zdDwnoPjkt59z5fIhX//mu/zm4485PT1GEMjyMUlWIEXNjWuvcfHidX7x97/m6Okc51pu3rzJpUuXeP3dt7l1+xZ1XZF4yDJN2wWqumN7Z8yN11/l+GjKhz/5NeuyoqpefPP/xUf/mq2tlNnxDticV997k3uPf831y1cp8hGf3/vvKJItvC8ZvnaJR48+5xf/7iP++A/+OatmRZnVJGof13VI79FcQOk9lFEYAOnpvKRtO47PjqiaU5p2zuHODb7y/h/y9GFJ5wQWwe07P6c9vM5HH99kVXeMXMrOlqFrp3z02QfITlPPahYccfDqITdef4vRnkamEGRAEv0YnW3ju+1nHB8/osgcZXlElil2d/bZubjH2++/hdYOpVc0tcVaTZFep1pKGlej0xefojxPktv8t+hl8FKKc5+r1prt7W2q5TblYt7Lt8W5hK/raozRGNPCqnw2PegnKrF4EefS9rJqSJMEhGc4HLJcLtnb22M4GHA2m/cHZ8/+wQ5FUZx7tIQQHB+fIpBRwq8Ek8k4whZCOC+CNpMcpdS/54uKvogvFlq/O914mTXVe98fTl1/GIy5QfPFAqkVg2KA0opgn0EehHhWEEgRizvnNyH1faHy3M8UfcBt//VcPxlSGB3w2qJ7L0EQvbxPhF621wfbCx33Pu/iQVgphEwQYvN50U/Gn72vbduxXq8xRsc4EiVZny14MtzhkndR3scGthVw3pLk4+hbti0urF/4ng6H0e+yvbN9PnHf5GtqHYv1uLfG73PjH998ppuieSOdO7pzn88//AV771ynOpsi1xWDLCPTAlt2rJYlRVHQlE1PZYQ01VG26NoevhD3O5lotFE4D3XrWDaOsm45ODjgxo1X0EhUlnH7aM7YCMpyiZQG17a0PjYrHjy4x+WrlzAmqkLoPeZa6y9I+pqmidLtvlhUL+FDc86SpoN+Osq/9/wLEaWktq1BCEySRumpjmAiJeO6o5SM0CJn0UnB8emSV157g7fffx9lTF9PxH8/0SYWbUlG6z1IhUmzXg0R0KlA9s+y7+W+SiqQ7pwaHb1eHusi9TBJclQvaVcqNmM3DV+Bimd/bRABmn4t2pyP4+XxfnM/VYww+pLrS3+3XK1gk0OkYzfeKAG+wzZrbFli6wopNEFG3X6g14/jEVJFXLZKMcZg2zXT0yPK1YLZ6SkP7t7jxz/+JZPJiNdevcQ7r1/h6pVdLh2OuXi4Q5Gb/mAsgSgTauqa6bzk8cmcTz494ta9OU9P1jENXIKWPi6e+L66FtgQO4wSjZSxm1HXM1xXo7MBSkiUNAQRzZzet+AdtbNIkyB1Hj1TMkGp81nVC10hSLpOYjuFDYHGtf1Y3xLXQgsoaBtkiEXHcrlkPI5TqM0Yu+siMEFrzXhri85JnhwdcW1njFKK1WoVD6hdx3g8juno/UJT11HKt1gsIn2p7Xr5kI+SLWtp2xhW+HyGVdu2nJycsFwsSHV0IjsJVadxEHHoNFin6NpAXSq8E7QWWge2i6ZU24XYlUgUtesQwZG8hHxCmYht10YjZJRPxvR4j+hR257o+whS44VCCY1rW8pVE4mRJuBdwPaZAlJGPXkgHtSNjF3aNCvwSjFINYOsxJanzJ7eJ/ENIhXko1F8eQcDRmYci/ngSfMUgcSqWIxKKRhPxpyenmK0icWaiEVdWzbURvCN736LX/z0Fzx9eMze3tvsbI1590bJLz7/LU/OOq4fGAIuFgQ6dhaD9+cbbPDy9926L70aYfDaI4whMYK2aYkxYRoRHFpEmVhUn4hzDbw8p+4oVP8uRry8wgcXPXUbjTMQvIiLYYx7RSQCG54dZpSIMtPESBLtMCr+20KbPtcMCA6vNmZcS0RNaIKTdCEgresPg2CEYJgbhoWJRtm6D61tOwixey1d7KZ2bYdTcbLSWUds6b74fa3WSz76zae8/tbrbG3tMT85wguP1Irt3W2Gg4Lbdx7x9x99DN6RyXiP63LFzY/+nsOLF3nvva9x795tFmdzEm349rffYDTe5ac//RUPnzxGSYnR8VDTWrh16zbHJ6d86+tf49GTx3x26y4CeO36Rb797W+ymK/5t3/1Y9reQBxEwLqae/ceMJ1Oeeedd7h/r+DxkycUxZi93TGvvPIm9+7f5ft//bc426OugyN4uH//AYvFinfffpvbt25TlyuUVuwfbnPp0iWapuWTjz/j7HQKG11+8+LkuSyfs1gOadYD3n3nCscnP8MJx9MnP+Ng/zWuHnydRA+YLu9jW82l7feRsyPmp8fUXUu6bUAM8a6lbU7xYk6mG7q5Yisfg4po76ar6MoSISfUVcr1V66zO9ljMT2iLjus75DUrJozBjsTTJDsTXJefeVdjo5ndE3F3v41LuwsSSUYCvau7BLCDDBUyznFICVJh0BGUQguXrjI55/fZrV8yHAksT7lq1/5T3n93W+TjdasFsegJHk6ZHJ4SNvNUckMu/Bk5uXe/82BfePxFVKdy7GjhyJSO8ejEdX2Lq7ZoLdBSk1PTIiHpcQgJX0OUodzig0x1veSYdf7U9u2RWuDSaJMLM9ypBAsF48o1wt2tkeMhgMSrWnallRrXNfiug4lE0xq2N2dMBwOmc7ndHUVm7+/cyj8ssJos/Y8O1j1RddLhKG2bdvjskUvr302+VqtVnjnyfO8V4b4Z4c4FQ+QG3m14FnRF/OnnhWUUkjqOvocB4NBD+LQICpsF7vywQdkP5pSOq6Zbds+kxKGZ3YDRF8GSR2lxJsGqo8Zlc47qqoE4djd3YlUt2JA3inu2cBbJqXY0BH7wGFt0rhdAMF3iN9j7P+ya7I16ScVEU2emPQLZ514kI4Eyel0igCGowIlFc6J3h8TJV6d6/j8332Aazu6x8cM7p8xsmCU4mx7guzWtIs1Ms3RicF1UYnlbR+Z4yPh2IUYyaLyAtfUPbVYUFtLkmcxp8p78iLl2oUdJvv7tMsFZyeP6Ic61D7gMNR1y6efPaRpHSaJn39eFGxvb9P179tGNbR5HpIkIUlePAR98/lKIXHBnfuhIVo+BICMzQjf4/xba2PMkJCxsdoXXEJp2rqiGIy4cOkar7/5NuOtUQ/9iAV6jCWS50oGZRJcAG2S6C/uOoRQKGMIHsDH5qgPaKkjNMYHTJLFwYkVEXClTFSX9VmtUkqcj012pQ3Bumg6BrTR6P7dTpIU5zq8j0TnJIlgnd8n8f3S3+3qlrZcRD+DSmjrGpdo6nJJu1rhbEvX1UgRs0mUjC+2kgKlctAGJSKEXyhNnk9odUYIHVW1pqkrZsfHnBUDTh484aNf3kRoTZJqLh9ukefR5xJ1mh22azk9PaNcW1ovsEEzHB9ikgFBeEap7BHiFtd3ZpusQxpN1xNYbIhTIJ2O8K7DB4XzcSoktCG4AML3uUkCW60ZDBJU/7K5EPDuxacox2crbBcgKBweL+LEzxiDtw5CjZQZRqVIGTtTq2VJ03ZkWW+UTAyJ0ThvacqalagwRlIPJQsaHjy8HwEWSpPmWZ+6Huk+bRtx61VVcXJywnw+o+lapHdo+qmVd1RNRdEU58SbjUQBwNkOIRwheCL3IY5CAw5kH/TaBbwTeFsi3IJUWIwBbwQ+ixpYJARvoAsvs0ehlUQrTWrSXhsr8MQJlOy9XlqAEB6pRY8Y9QjvqKs2voT9BpamKUYLvG2py5KYdh4wWtDYgNZxJpMpR6JrJiPDk/WK5WxJPtlGa8PW1oSt7Ugn04tVzPjodeEmScjynDRL+q4LTE/PqOsalRgSrTgcBKanjzj4gz/mjddf41e//CW3bg7R8hIHe/tcmtziweMVX7s0oCggGxQIleCFIHiNUH1QsXy5w1QQoJK4IHopUJkC72mdj80JITH9tGqDyd8g07s4G++nbjE8t20sTdPhAkgN3XkXMWL1axFIUkOR53TlqpcMS4KQKKMJqaFF0jqLCQLjAiqEmK0SEuzGmK0kyisyB1K0gIsd634j0GrzLCg6C1XjWHdQdeG88y2CQCHR3qHxGGlI84TWPpMzvtA99dA1FdViig4d+xd2+wPiNqv1mgf3HrCuIigm1QotFEZEKYvD8ujRPebzM772tfc5OT1ib+uAe/cf8ZuPf8z0bIGzDkuUeUglkd6DkKyWc378k3/HP/3TP+Bgp2Cyt0XbwY8++CXLWRVz1pQi+Pjst82aICXTs5af/eRn/OF3v8KVS/vsHOwjrOQnH/yE2WL67HM3AuElogvgBYvlkluffcof/MFXOD4+Zm9vh5OTJR9/9DkhQJ4rtE6o2oa27cizFw/urOop00cS7xs++s0TTk/OSIeBN17fwzZntAOJMRLkkmX5Y7bz13njrbei9Kg8Q5kt8mQATtLZAZ1LCRyRDQq8FDR2xWyxpJVLAgUnR0dMJvu03ZIHj25RrjR3bj9ASbh++Q1O1gu2d3fYO7jKYrZgvj5ld2cf7xx7W3vYdguJYFzsAI6qLJEiYbE4xrltDnYPGAwLqm6B6wxXrlynWrV0rWM03uVr33gXKz3eNbRVbMTt7Y0pqxXKeEJYUhRbZC8H8/yCN2PjM1IyEvpET3brmoa2rpBCkmQ59NP8um3iVKP/+/P5rPc9RDy5c905sa6sa8qqJk0y8jyjKIrzr290zH4py5KmacjSuL7m+QAtFW2fT4O3jIc5e3sH5HlGkmiatomwC6I/5nkZ3/Oo7A3B93lJ2O/eh2dd+Re/nxs1idL63He2mYx0TUsrFc5GGt+mINC9bFEo0VM/Q1+sCrSK0SWLxeoLhVeSJOdSt41USytNnkus7Qghjpd6/gZN05zTgp/9OxIln5tIPleA2r7ZGr3dEbawWi3RWjIaDTFKsp3ldG3F7USxK3tysO1QSfQyR9klBNdh2xeX+AsZ/e6hJ8JuQAmb+7DxupycHJ3fa2tbkqKIU0C/oTdLnt66y/zmbUxt6VrHVgcSR5kXNFcP8b7Dr47pVgsGgyFd0+A6h3ceKfqw8xCbjSrLCCp6mpESqRVKGybbO6xmJyzmc7QQDLLoAzqqBKt1TTpIUdrghKF2LUHlTM9mcd+p4/RpMBqyt7fH/bt3o5y1l/uladqHgOsvPN//sdemEeJ9B/TAqXiwQgqNwKPQqCyNvj0fmyvOOpROzp8jQpSFK50w2c750//0nyF0lPFuYnkEDiEVuicx+tCQpAUxpkj170APDhEKlfQNVxHPJzEHLkYcaRNBEhE6E88irs+Vkiqe2zwOvMD078rmbEs/TdMmNhyUNwglqcsVwVmESs49WP+h68tLLecR3lNXaySRIoWMZkxvLdiW4KrY6Zfx8IFM8N4ihCOVw96nE8dqSIVWMUwy4LG2w1ZrVvMzlmcRpiAkSKO5nxYkaU42GgGCpiypyzUuONLBELwgHWwRwpLhWGOSaC7zdYWWUSZxNj0mKxKMzeI4r78Z3vr4MgfZhybGDhgBOh9f7rZakSYZdWVJkhZUF6cdPSHnRa+q3SzUsZMQfAy8tcHFal1UGCERYQzCEUIEN9RlQ5Y2FEVBURQMBtn5JrBalRAE4+2LpHnKdHZKkiQMBgOC9KQyI9XpubTCOcdsNmO9Wkd5QJ7ipCAIhVVQNQ1JL/PbUGLgGe5WqpgNVTZNv+g7JL2+VkiEfxYYGkJFCB1KSHyIkgsjNYjoVXPexS66fvGdP00KEhNBIULE51AS8y020o1e6t9Tj0QMRA3Ra6QSgxMR8uGcQ+DPKXbapOeGYZXm6CxFhMCw8OS5RuqWj379EWUr+ea3r7C7s3suPSjLMmq4TRz3x00qdvhCiOCTbjLBec94a4JwnsXsiG/e2GZS7LOcP+XGa69w6/Yt7nx+JyaIf/tN3nh7wU9uPsRO3qfTjqZzlGdL6qbCORU/x5co+DfXzrgguLjwdd0Xu1NKCqQIdK4PgVQ6IvB91MIL72n6nLTEKLpgcS7q7oUXCB/wAlwv8dE6mppxgaqsMEJj0ixOCXuppRa9r1CJSIjbbPxCoINABfo/H5/HzUDfBfBS9vkgEtNjxc9piMJg6ahtBwRkCH2DSKA8SB9pm2kQOBeQL+HvK6sS5wMqScBHT2eW7fH40TFdWyO9x7ddpB8RD1DB9ZhqGcM5u7rCCHjnnff4xc9+xaef3cbhSBPTN0M8znc9ArlvbsVuF1JZ3v/qu3z/b3/GnVsPSZI83nsp++yUFoLFh0hhtAABlLK89doN/v6jh0xPzyiXcyQRVytCNK8TIpYWEWhdzXoZUe6T0T4/+8lH1E1DmqcgPDlFrzRoMFriw4v7UBP5Jgp4dP8e27sT3vvK+5TrBdeufI3ReBeUwvoZKp1y1v6S1h1zbecCg8Elll1NogyONXU9p65OUOGQ4biI3equQUjIJ4KTozMuXLrK4YVDvNecHN/lZHbEyaOC+bTk7bcPKYqUfO8CTZminOTi9qsEanZ3xnhXkuU5cpCgREHbOdan90mzBMkWnhn1uqHOJJ1bMNkZY1LJNXWN+dkC2xmC1KztCq0y8nzE7q6mbKZI1ZDrfZTyrKuWYbFD9hKWyWfUt3DejHJdRWctna1jcVNWUS7b1bGR5okB2sHHSQEO19akiWFra4sQwvnhxVpL10UJUNfGvUYKRZK48+nRRsK0odYKIbh06SK7u9vnuVGyPzSnacr29haDYfQKA1RlPGjG9as7/7mezx7aFAcbI//mZ94UDs+jp19W5rfx6my+ziYCYnOPzwsUIeKESj13II59nr6oVf2+bJBKUlUlGwqZEDErp6oqVqsVWZaT5SkCHXO0SAgE2qaN5DUlzpH2m+JZ6819iOe04KNkSxt9nnXVdd35MwLR9lFVVYxq8J6RyRiLhNOzRzw9eIUdGyM7VC/dsraNntsuxi686LXBoa/Wq+gN6+/ZpmCOsu+UyWTCahWn33Vd9yj1NE44QoixFNMZeRcwCBaHu7TOMzydsdwdMprkKDmgdhXV6WPWQZANBixnlsZ6hBKkSsVCRCl0nmN9QPSwsiBiXlKejXFdx/TsDKFSBolHOs/R06ecLkomuqCel0htaIjEw2J3l7qNXjrXyxetjQ1xHwJZmpKm6fmz8zIkP4A0TWPGZgjxzCv6BrSKJyvfNVHKKKPfERffay9E74+Kk01clJJm+YANidN5H9VrSvYExYikVSaL/qTgYj5o30jYxPsIIZBag9yEWsep4/nX6w94UmrSNI9nz376GoKNFgOtCDLKkyWcy/YE/RSs//9F/7ZDhoQkzQk9IGsjS/wPXV9aTKVGYWsRJyD1CtuWWNuilUEaTfAu4gnxdCGO2qQUCGVorUW0FVk2RsnYOXAh5jsEqYnEjR5ErmzMmXGKti3BSGpdYVTKqHUYk9A1LeuqRSUS0Xm0TBAyds2VhHFu0LQ0tmE0yJBZDohI7yDETCCTonRynnSO9wgvwHtct0InGQKHUvFw4YJDJQltWyKMwbcOozRavfjDGrsg8aC2uZ7JKThfbHsvIyEQc59GQ7Isi4e/frS66UBkaYG17nw8u3mZ4oQoGhg34/0N9rEsSwjxxdSDHAYZIsTqvbEtXd3gBu58sQcoy5LHjx9T15EukyQJnd2kZffkI6HxrcC7zZTCgDc0rY1dDDr69ff8UG6brs8AerFLdFHzLXU018SvE2WdOH9u5t0gYUMI4MG3oLIM5xKMgma1Yt21CAmr5YpqtSaIGkcgD4JcJWAdozxjbz9nOM64dFUj/BlaFxxcuIjvtfYbz1kI0eQ/GA7RKlKq6MfjzjuMMezv7eG95+TRI5qyBLnLYDikOjvj0a0j3nnvPT740Qd8/smnjDJNno/wZcPp42O2hxKDw7h4wPYiSi98vwm+1KUyfGgRwrNZRzRRYxyzNRzge89TAB+nv4SAdTFs0GQKETxGKYSI9z1+/iHCY9KUzrYE7+KEsYcVBAJKxywPGeK6EoJDegk4tIpeoejfkD10I2qtz/0IEkIfDmxCfLgDLqL58cTAnBjOp7UhS6OsR0vZh3WGvqCJYdTOxfdFii9fVL/sajqLyRKUEPz/WfuvJkuyLEsT+w5TcplRN+dBMzIjMzKLoqu7qxsyXT2CGeAFgoEAeMA/wwN+AQQjglcMpBtNq7J4ViWLjMiIcO7mbuxSJYfhYeu9bp5VHdltDg1x8XB3Y1ev6tGz917rW8ZZvHc8fnZKVdW4wtAs1zRNSwoRVVqMKURek5OkxFtDVdWUowk//rO/oXQ13/v0U75+9Jhlv5QA4w5iTngvuV8kmSK+d++Ewu3zv/ybP+fu/ftY7Xj65IV0vZFznVWi9z1KOTQJXVTcOpxy6/ZDHj2eM5nts9ksWCq5v0HeS522UBIx+TrjePD+LZSb8rd/+1ccHx+yXC8FShQi8+UGlRVlYQXf/A4Nqh987//I+eErPnr/jHqk8eoRx/vHnM2/5qdf/CmFKrm4es3te7eZ1L/Hk8uecOvnTKbnTCbHJL3keP8DznxDjCMK14HyNJ2hQGNtTcw9JoNzFxTGsVxZbh3fZZPPmJ9rbt87YlQZQvRoVTKpDqmKMUfH4uWYr845nJasPUzqKd0mU5Wa1byjzCXTyQmqTIzLinF9RJ86bFGQQk9RZabTKe+9X7JqE136Bp8TJhegFbN9LdCaqqDtGiaTD6nqKSGf3ficquTp2p7gezbrFW3T0GzW9L4npSB+HCTw3geJEbHG0jXt4C/QaKVouyDPaWUpC4cxmhASIOQz7z3aOEajiRB2h33EFv29jfvQ1nHnwX0BT9SVTDqixGw0vSfkRNKw2jSsli2bTUffb9jbm7BZbXY+o+tF4nWwxluv/dqGdLtBTYMP5l2u0+0m0FpLWZY7edZWSrhVf+iBbjYajWTzOUjilHozXdMq41xB5z3LxZKyqkBBUbi3PGAxevoOjIlMJ9OdKiXlJCocrXdTsO1Eim3nP4ufKqn0lofu+jmSNSbDYBHQSmh/V/2KcTDo1vDrixfsmQpd1LiyHmSOmeglJ6h/B5rfdqN94A52G3ZzbYIgcncYj6as1w37e/vM9vZIKdL3Aa3jgN3OnC/m6NFINtf3bqO14mJvQjkZUVtHCi2j/RkFLa8urjBWM57OaNcriImoJBDelBXKlagQiAx+buuwxpAyjPcOWMzPOb+8oq0MBYonT1+ybiJKLXl1uSCg8SnhXMH9eyfsHRyxmF+RkxRP65X4zLYEvzfwBHn/3uUIIQx77hadIcdI33vJHut7fNeitMgJY04DLU8adgq1K1Ky1tjts2XwJCktWVEmDwRNEnEg6IVBiUJ+E1b9xvM2NMqt3U2RtyCKnMTbREzD9xMZX8xDgHIUFYoaZIjkTAxeogaUQlm7I3tnELmiGSTNMQixeLAMfeu1+G3/qIyYtjUZleT3FDY0bcDYEucKzPANtnQvDagEpat30walLdY5dMzE7CUrJsjXtKZE2Yptoja2pKwtRhcU5ZjR+JAQE0Z56kEPnTCMRlP29g4pqpJJZalNplmtQEE2lpwN63WHKypAy7QsSShYBrSSFPUYAzn09O2C8d4hztVoJ1SS+eVL2aBTojYLyrImpIB1NydPBXGZiKNrMOpvtc5aFQMcQSQrRTWmqh11PWI2m3FwsEdRFHRdx+npmYzqc8a5SmguBKwV/9f1h4EZNKOSTD9kXIRE30da3wtZR7FLUydE2nZDCBLgu+1apaRp1pm2MSSdCbGXz0uakCIhJIzNpKTIRHzckFNL6Lx0oWKgbZdMZ5IDkgdZGKZg1edvP3HfchRVhdIKZx3OWZSRBUzmwEMnchjDa2vRxpJVYnPZoJ4sMErRtR2+74cuhQUUMcGqWeNzovdxkEqUVHWF239INynZcw0nB1/yuq0wTt6bwpXShRsWgqIoqMpqRxuKSTD1RsnEbDwas1gsWFxeUABHdBSrwAMX2R8FFqHj0wfHfPH0NT/72c94cPc249mEUa0ZF+0grxUpWIoWH8NA3ns3ok/UmmykaNrRrZRMgLa+nJyjBAYL4g9t1E4WoJQihUxhDTmCSuJ/skYPU36RibqqlE6UkolVjJGMRRPJUWN0xhmNNQZt9dBRHZClA4VRNmAGQ8IQRYaULaAJQmInDQWVSQmTlEhSB4RtXWp8FAy7GSQ1OScEL6TRWaaKxlq0u7nGf7lsqOuSvVnFyb0THn/9jH6zodssGI9mHJ/cZ76MJC1ywkgUycNwvRwfH/CjH/2QX3z+ORdnr+Sc2pL3HrxPf8/zzVe/BtPQNg1xWGems4rf+50fkJXj3/yHP2fdeObzDffvnfD7f/B7fPnVE+aLFb6LKB1JSu6XorB8+OEDfvjJd/jl5y958fI1s9mUg+NDKvsBT58+JkQ/bPQG1LBWOGf47Puf4Yzl3/6b/8C6aVhdLvnud7+DdYZff/UVKWaOZhP6PtBE/6Ywu8GxP0p8Pf+Gr7/6FdG3TCaRk9l9Xp5dsV5rDu/sMZuuyF2L9yXEnovXTxiX+5yfvaQsM7ePP+H45CEx7PPs5efEtsGYKUU9wccGpXoe3P8Q356RukizSnQqMNpzFOWYew/G0K/J/ZiH9z/AmBHj0R5Wa5RJaB2wLHFpgbUdui4JQTPbu0Xynnpc47uSvf0TiBaVOpbL5/gk6gXnZhwczMjLNVdnawqrIEuW2+VqTm0O6f2Kwk3x6ZTF6YqiWt74nH75xU8kGyog0vlho5FyIiATaJs9ZPEol0VJUZakEFkul4QQdnKzthsm1EVkVNfEmEUNYsUA3rWeyhbDdFo2UTK1GZ7PJMbjmtG4piwk/4bBmxICrNYNIUkT4Oz1gs26R2vFweGE6WRE10g49XXk+XXP1PXN2va4/nHSJFQ7YMRNj67v0cPUqSgcSmXattl9v5yzZOMYTd93jMcjnNMDUEIKKIWAgEzhqMuKV6/PaLsOlMZYS9/3OFegtcHKYwzYqkSGgHWkia202hV4WwXKtpGlt1ItFMYMVNUctuosQBFCpB8mVNYk6sIyKS2VhpAsgcxYac42G65c5GR6hLIFOXlS6HfyvvAOxdQ2H0pruzuH16WJ8ktTFBUnt+4wHo/fmrim7PG+o+8DZlLx+sO7BBTHh1NKDU1dglKsL+ecffGIYn/M4cxy+/iQ84srZodHKD2j3yxksFDowcfjUFamUdpYjLHE6FEUaOMoqj36zrNYN6yvrmg8JGVlAqU0q3VDjIm6hmbTM3YFMQa6zRqjFMtB3reVZ27fk+2v/A6P/q0fTmXoO5mWbuEeOQVS8BgnkCs1/JsovIYGvxFUOUNDUkaqQzMh9EPDYPB3D82JLTFz20gA3nqfQgi4IV7lOhxGDRNlGJrlAFq82Iq8kwcy+D23ObLoAYieJdCXGOhDu5PHZySmQCmDNoqMJv8Wr/S37gr6JKNYg6ZTmUBGa4snkEJLHPJNbFlAyqicxOdgLSTxzFAI/tskqUpTGiRXWmQsKIMpK+pqRMpQkyiqEmsMdT3CuYI+Rvq+oxqNUcbgqhGH+3tUVUldaEalFn2ndVhXkJRm1TQ8evacTz79HmVZY11FCj0ptEL8yKKxTBmUKxgVtwazbKIP0m2Z7h0MrHlH127IKlCPxuR3kKTkYdNxvcuTc5a8LQZ5QU7UdQkqUlYVo3FBVZXMZjOmA+Dg6uqKq6srnj17zuvXF8xme9y7d4uqdlTlGKWEpKKd3ba1hgeUZ71eEXyk90lChDG7TpQMbRRd59+SJcSQxSyqE8bIzyo61EDWHpMipYOcelJjUKkj+xWQydkM3WcZue8WPaQQ630ihps/pNyDH4n+Plu80qQYCVFw0ZICb0jeE3zAYrDZ4L1n3iaizqzmF7TLFaEbwgNzomkb1m1LSFCORsxmY1xhyDFSqo46XVC0CpM9f/TpEf/5C89isaCqKnkYDiTEbSG72WyAjA9vS00ALi8vZQMSE8eVZqQ8JaCM5mCs2et7bj+EDyczfvXknPbVS/7gk/fZu/UQmy+J7RVZK4wCZTUqb7M2bnxKAbAEtqn3MhiXhSgPRYnvA2yvWZXByMTKJLmGUkpElcTLBGidySrLQAhBnvucKY1FKYNPMjXKGkYucvfulLZJXFy2DBZrFAorqEYikg2ikcIoA1lL+HZMuzYQPse3/QY2i9cvS/hwzIkwJNvLGiDAG6UyWQ3NF23IRosv7R306I1v+P0f/JDZ/oQvv/yGvpNiROfMZrVi3bSMZlN+/w//CU++/jXR9/RKzK8fvPeA2/fu8Vd//fesL6/Ailyx7zu++fpLpgeHfP+zH/Li2RNevHhBXZV895OPqCcTfvGLr3ny5PluuuZNwddfv+D8fM0HH33A42ePePrNI5S2lOWI2eGYH33/e2it+PHf/Ipls0GlQOdHvHzyjHKc+M53f8DTp4/YLK9E/qMNd+/c4oMPHvLom2c8evSEGAIGS+gSn//iS+4/uMsH77/Py9NTIlEIYEXNg/dObnxOLy5f8YPPvkPXGl6/eM7htGBa75P2LelYMdrbJ5ULlheG3FWMy4KUKlxRIpdt5vzsK/YPPqRtr5ju3aZtztmrjlguVgSvsJOKJ4/PuHf7rnho78DlfE2pMu+/f0jgCW48o947RrkaYTYpqsLStitMXtB3mr67IhQapce4uuB4co+9yZSUPWEzomt7jO7JBJaLNUVVUNoTMhU5aWqnOZn+gJhP6Zs5s9kxeIsh47uW9SJxcKumrkqsvfmaenW1FBldFukeaht4mikcMolS0sAaVnJKq1HTqVznTbODFYQQuFqsSEpxuL/H2MlzIA1rh3UOa2RCuSVytq0EfiotBX5pFPiWpBUBUSI0G8/FxZzVSkKAYZCfacX+wZQ7d4/YLETapdUbHPZ1BPL2z9c3br/pndqqRmSicvNzGkPCFG5ockXJbtNvT8JygrZpGdcjmrZhPC4pisGLA7IP1JLPFVPi9PQ1KUumn6wlEqtSFAXG2MHfJIjzTdtAjrS+E5kkb1DrW3/R7rwMypJ0zSetbUJpwdX33tN2UqSKhF1TGM3BuJaoCz2jmtS4okAFy4uYuF/Uog5IomawrsR3a5kq3PScbqcZvGkcA/9gf5Vzphp8mTs6otEY5QZJaeboaI9Nf5ccMgdOsVksORrP8Cry4qdn7F+1bOYN69uO9z99n739fU5fvaK5WtMkmNSOOivIklckladojPTws2UywUe0cigD603D66sNZ4sVthoTlMeVjlGST5fCQ8AdOQYW52eg5P66TiKU9237692kfjGKYobhOR9DwJVy/cUwQJqswdkCZRzKKFSMxCBT6lJvQ3KFQBh8QGuJP9pCoLaWE1GyvAlT1sM9ZocJ1PXXF2PYRRvEazYGNSi95OOUqFNAir4hR0pp8XRtp15pOE8pDrJDa6FjiNYpdwRwEAuCc8Vvvfe/tZgySqOMI1grMIlohCevpCjIOcumJaSdp0qRyTHgTIlSTjxBRrrHRmsMjhx6rBJ8oytHFEWFq2qSNhROMx0V4D3GDkbClAhVSemkqJhORhTOIM8KRec9GUXSBT5bOp+4Wmw4fXXGajnHGOm4JGRKxiApir6FOOhazTDJyDIlwgrpyxg5ka4YC8EwRoy++S5V7vsBcTn83ZtFvJEi0wgoIuSGW7fH1LXDFTJWFS21Yb0Wv9NiseD05Smnp684O3vJnTsn3Lp1m74PxCQggCpWWCtM/77zLJeSWH95OWdxtSGlLFpnYatRFA6SYblYUlXSRbPW4VxPpiXnJSZrUvZkenLWWO1QKHwM6NShQkuhI1lFVPWmW9K24omZTCZDh1H8Nfkd5BNnv/iZND9Si0w7pJOYVcYNhUsOrdwaCkH3GgudoWTKedfRey9IzyQj7bbtiCFy69YJn3zve9y6fUxZljx79ISp9dypIlVhCX3gdz+4xeOrJeTMZDIhhjc0nH4g7sjkUTKFtsS5GMMb/0DfYp3hZAZ1ZTE6Y/Gk1JKNwo4036vHfOd2QVIWVyp808HRQ0ZlJvZrWfj8QNxTIhF6l6PrZfQt2WOIMFkPMAdkqmq0Iasw9G0k/6ltW5LSFJWlMpmqKMT4jFzz9SD3WXcthc2MXCIlCR02hcZYTUqKs7MercE5Cey1WnyiSstEaysXVENgbyTjjKF0jsVqjcLK/RwDcRtyiyb6TPQZpSVXxAfo+0xACjpylImClkXYGYvOdgj9tmh7c1LSH/3TP4SQefr4mRT7SaQpWkOKGR86fvnFr8nR8Hu/+zs8fvI1IXk+++wz2vWav/nLv4IQiX3AqgJlMkpnMoHT02c8fvoNv/Pph3z3k/8VMcGvfv41j5/9jLb31zDS0HtP8JHNZsXpq6f8/u/+DpNK8fTpKz777GNO7tzj88+/4uz1HHAoFbFaiJ2h33C1fE2zuOJHn/0Ov/rlz8k58NEnH7PctPzFn/+EplmLbBCIsR9kHIZHjx/z8OFdPv3uh5ydnfLew7v4zvH5r7668Tn91fO/4SPzGd/77D2m0wm+O+f580Q93mN6qDg4OGYeXlMe36dIiuVyTg6etrtgtn8bpTSLy2eMR8fo7Hn18jlRL5i4I4gVJhlMHHG0X2NdQcgKUwQOT/YwuaAqb7FuSrqmH+7lyGx6QEg9jY80mxXBr7iaQx+yFEiVaPmd09iyZDFf0Cw7prMJbRdIOVCNDogp0LeG5WaJwtK2F8S0xrNks7zC5QnT2W2+/PqvuP/wPUajGaNyj7PzRxzsHd34nPZtNwBmFHo7mUh5KPwHKblSiFEqD5KygDYlo1GNGkBEKWZCiGQy86slXdNy7+SWBLgO+OKhDUIY5ESQSQSM0pRGU2knC0cSaFCzWbPY9MyvVpyfX7BaLjg+PsR3iaoqGI9rTo6O6bsO3w+ktfxm2rQtoN5Iv/NvFE7qrU15Sglti6Fr3t74nL6BAogMCZUlByf1UrQk8Zt1vWexXDIeT1C4Qe0Rhkm8QauCrDQvXr3k8uoS54rBc9XtCtgdvCIl/JDrBAJYyimJgqIoyCnuJojbonLnO8oynd/BN3Ia6HFDKPxAYHPWUBRCW9PWka0hZQ+mJgfPfjHmpXb0fYNDFEw5ZfpmQdssdiS6mxzXJ4zXZZzX4R5b2f22YNx54YbtsdYKa0toeo5Khy8jq9eXvPrFI8p6jNsfUcwbjrSm84nVOhBDz3h/nw/HH/P5z35FKGqyDiLjznnwFA2TPS3NZDtyRB/JOhN8R4yeo9kUExTPXl2RlaKPicP9fZRpubi8FChZTDRdg1bQLpcsF8u3CqnfhE38pmz1v/UoBtS5Hu6Dru+IMZD6FrI0qGPwUEJiS9TTpGHfE1NEa6kVUHI3bxsxabjGtWF4/ooloe9aUpLQeWUscXiuayP7dmOH7zEUWFopye7Umjzg/UGRU0JrNahb5D+tRVESQxiuZzPIBTOZKFLWbV5WkplWyuCcBa3ofSeF0m/xTXxrMVWMxuSsd288KWJiQhlP36/FmzDQU+Jww+YkuImkNhgiGINRY3Q5Et1i1hRKkVLAliVlPWZcV5R1QRcSI2cwKpCsElmPgoyiKCvGo1rkEilATASjaP3wGnXGZ8VqvsHHTNMHXOEIoSOFBltWaFejSBLI1m/QWqFtKYVBn7FFJWY4hE4YokYlmda0mwVdt2ZUz8jlzclTo3LwjSHoat9tx5MZ4wLOGCrr0FkzPZxxdDRjOtmncEL4kU5f5Px8zqNHz3j58kxkdiHy9MkZzSaSouH4loTGFVVms+4pCrlQNuuexbylaTouzs/oug4f/AAQcIQoRt3RaMRi0VBVDZOJxhaIadQnUpPFijTsjmWhlgU8hEDMa8pRwAYIQeOMyLAAnBrT954cJCMn+IhJGmXeIWdqOYTu5sGPhfSDtBFZn0xXtwstJKTTc7lUdHkqspOiIrQtseuGhcqIlCZGnn3zDYurK05OTiAHppNCCFIZjC05ObnDeNTjyXSbzRBKKKNprTXOWjZtS1VWhJwxzpFCIPherlHf47sNTkU+OrLs1dIT0cpg3KEUgNGTIigTSUkyiXycs9xUpNkdSvsC3y1AO1KENKCH3+XQ1hL7IL4jlbE5Mysth9OCunRsGk/Tgw+Wpg+QpAOqKfE5kEIgaUPb9eQMPQmdFT566qJARUtM0ISMKzWutITo6btIQvxlWjOg5I3MbmOWe7+XEFlr1UAP1VhriMGz7voBNiHNgZh6YrLDQinXoRhaDT4E2rYnpowPET8UXiCSHqNEvqJSQhmLtaV0uG54/Plf/y0f3rtNMTQvlEY2UUOXTCeIXWS+vOTJ4y/41//dv+B8seaXX3zBq9MXmKyxSkPhCEDyEgFRFo4uZHIKVKVFq5L/+Bd/RbNsQImUUYpOdlLfvPWZKfjl5z/n//x/+h/I/9zy85894j/9+7+g8S1WOaxJKCPNL5UjfbcgRs9iMef8/DF/8q//mG+ePeeLz7/k7Gwu6gQEWZ9VJmoxeKMSRjli33Hn1oyicPzy82dcXJ5jzM0BNJNxgTVT9g5ucbVYMR2PsaHA1lCPe+rJPiHe5fkTzchp9k4e0DXzwUzt8Tpx59ZtXr74O1TyECPT+h4kK+umNsTOUZoRVVmiDVxdzHn44C7r9SXzxSlVNWVST9A20naG2awiq4am3bBcr5jUt7lzp6QNh6ASs1lNDBqlIut1T99mClPTe8i5pOnOcaZnVN4nKkuImvX6Cmd6nr98ijMdEzfh+aOvuP1xz/G9hxTlAdPpjPVig3UlrngH5PR4eD+Gbm6OYRe8rdTbE4DtJrb3nhSGGguZ5kjWj+Xk5ERIX1qTsmKxXJNz5PDwEHKg6wSvXwwEOsGiIzCmgRedBvN67jrOXp9ycbUi50xdF9R1SdP1OOeoKoma2Gw2u6yq6xvM39yAX/99+3HbDfeumEKeYf07kOdkIzmsycOEaTwaQVa7Sd5Qa7BYLJhMJrjCUesSZ0tpZGsnTZDVikePHhNjQinxNQv5Lw1wD/+G7mYsOYUBE27Q2hCCH4BSYAcIx45qCJSF3W0sQRHe2hBHmqalHo0onGU0qtjbn6JipA2J/dEYlKZpWwpXklcrFkrTnbwn7+cgfd2qHMI7NP22hRKw83e/VRgO1+z1AvqtSeQg3opEtC25fPGY6fGUq0cvOewzqVnQXCyZpowtEt5kDpoI3qPIFGXFnQ8/4OW6YVoXLB89prMdyjmc1sSs5HcfB/u2NPUEbuOxKTCdlnz44UNOz69YLnsuLi7ZOzgQGqZSbOaXJN9L00JDCOLHvo7q3t6D76pGAVFhKCUFU0Ya7SmGgeqtUWYkuZY5orUlxECIASeYXGnJ5wRRrhdFElmwtaIcyUqQ60q8ZNuGrQ/iqc7DEEfIlwatNL5vySFgnCGliCGTfI8qHCSFT4nCGQmXVxZrtmqoQI4GroUMW2uIebjXsvit0vbeAFIMA1wjypChF+/Ub2ukfOtqO53WOKUgzFAo+mzQSRNTK7kNgxFVD2PMnCNJiWlbYYgxE7ea6rKiGtVDfoSlKuQkVpVjXFf4GKmyYVI5fLPBW4tWGmtlUjSpK8ievhUvgHKWZh1IOHKWN3C+3NBsvGhXnaawmqqaoG0pt4yClJWYIHOUsM+hIJSiU27MEKNcBFqmad4LcrMqx0LTeYcrdjbZl01NzsSY6fU2/2KY4iA/h7WWyXjCeDKmquodbEIpxXq94fmzV7x8fo7voa7HQ3ZUz3rdcH5+QT0aMZ32qNUaVxZCCtKG1WBc7PuexXJD2wTxoGhHSFIAtG2m61rG48nwAGDwOzWirXZWZCkhkrPBJJlVxBAxSTJ9nBI1g9IiPYtDKreECErHrPdroCRlhXU336A6m1DDdaeH8S1a76Rv5PyGaCY2KlZd5txPSCZT1hM2zYam76kKh9VqpxHeaspj39OsVrgyc3A4oR5NME6kJbpIFMUz1u0aUiDOE2VVDV0URbCWPnj6vsEYS95AToKWbzeDHzFHbk8TH98uGTslsBRTIL7IiA8tKQdCkAUZBQWRyeaUObdhfEw1dhgg+kRKQHoHnBcwssgk1kjY7sgZjvcrptMSYqC2Du9h02T6wmBUQeUUy01i08dBpsBwj0GZh8yU5EkERqOSwhb4JEZgVxpU0ITYUxqLdRqt5b0ji2pZqFviFzFK4QrB6kevaDtPVgpjHDF6Qhiy5pIEAwt8BFm81RsIiCzmQE7UZcm2wxVj2m0kJ+Oavo+Evn0nK9p3P/qUFNdCKRr2VaEXOUIIAbR4OTVQlY6Lqw1Xi5YcoEANjybxlm39sGqY+jutOT6Y8OD9D/mrv/oZHzx4wNnZFa9fvcY5jbFZunlJpBzbL2CtQxtL32bOr5acnp7TtGu0LXDWDIWYdAJ7v938SOc3hsjlZcvrsyXLVSM0RyXQoqJ05KTJfZRpaVZM9xwPPnzI51+cslk19E3LuCreKRPtwa0fcHn5iqOjPVTYkGPBdz6dMds/RLuvOV9AXu4xm+xRuowrM3v7d+RhOcpUrqVPDfXYcnj8GSEFVufn9JszsrVMZg9wdozPmqQD680Ka2suLl5hipYcDa9PX1KUmvGkIIQpX331lKzW3L99n72ju1SFweVMFTVdv2ZaT9lsGtbtnGiSyEl1wOmIcZnlaonqeihAO8XB4ZiLi2cU44Jbtx+wePWKSX1EVe/h+46unzByJavVJXU9wZUHnL9awndvdk5V8sP7KPfM9e739U3p9v9DCEQUre9RStP1DTFG6mosz/yqwNgC3/foLES1pl2h1IwcepxKFJXkzYQY0ASssTv66m4znCLj0nIwrUk54YqCyahCK0iLRNNudpOUk5MTNpvNW4XC9Z8d3vZlbAvE68S+7eelLKb1d+n6G60pnOTjpCxy/qIsCDHv6HgpCTjI+8SrV6+ZjMdYq3GuhKxYrxuWyxUvX55yNV+I0oZMzBk9dO13npehuelcwXQ62mHWt+/ldjrVNOLbKopC/Edm67/Nu+mTEI/74bnd7/Kxul78acXGMptNMdWIYjTDGlj5ltfnc3yTeE3k4tZdJrNbInULrUDNgh8a8Dc7rvuktoXv1lOzhVpdJzVu/yzvrdrJV602fPr97/Plv/1T5s9fM7lq2Q8B7TtaGa/QTg44u3eMurpg6hPjrIihpy4M01CgMbRBo9pItg16MiFsJWVA03QCCslZZJox0HVrrMucHO8xX1yxJAmJcb3GGcu4quiaBhV7jNaMDvawhf0vNgHeQd23O7ZN+6w1MQxFek6yl1IarSVzVruCPOyfk5EpjjxLzCCZlw2A1nqQ2Q/PX6T5mfPW/2wJvX/Lv7e9R6Wg0oM16A2FkyjS96gMxjjZI8Cbez2nAYilMFYNEyn53N73w7Mp4VN846NCpqxoJY9GNQT4Kg3qHT1TI5Mo90qy3gdnho1pQAWwXTP8YA05yA0q+nPZCBbFGJU1xtS4csJkVDM9mFGXFTqHwbOQsFahkmfkpLsUoic7hY0aK+JsrE4kv2K9XIphvahpmshiHehjkDDNAd/c9z0pR8Z2QlFYUrcm17VkLcUk3qfQ4WwFpkDrQRlpBAMZYiSqTI6eFCK2HmOMxV2DOEjH+2ZHWY5kg5YzffIUbnszJEKKECM5JoraMRrXTCZTJtMxs9lU8JMpcXl5xcXlitW6JcRM6mSRc2WJtpaQRLuq9FYnLt0lNYybU5IbNoSGjMfHTOoMVTmVkb9RXA8mjTESc2S+WNB1rejYVY9RCu9Bi5aHdr0UgUb0eB9FZkUWras15JAwWsI9jVIQouSUmRHW3XyKYrXcpEZLH0QIbyLfzAhNTtCkUuH1VHy1SKz1HsYq9g9vkS4vsEZTGoh9x3q1oqgKRqORwAgGLXvhas6vIocTza0DGVUXpuBwrLg4fU3bTfApYvS+dEwylLOCbtMwGtdE31AUNVoZui4xGk85v7hgYuD374+YloqULQmHUg4fW0KMJFXgY5Zci5TROqJNxAGj9QUbdRf2P2Cf17i4QLl6SLm/+aEilEpzOHPsTUqqsgAUy0U/wDSUFHtRY3PGmq3EQjGtNEpVpABFKbI+8jbPxUqXO0PTibna6G1gshDe1NCSscZhTYS81U/LppykUEr+LiSPRxGipo8K4wYEfsqkzCAZMOQchgnJ8AKTGFLLqqDtA6nX+H74XkpgGVswBjFTMKxZ7+CZPH3+ku9+9z3SDC5fn9L7QE4QeiGTLZsNEPne9z7ko08+4u///qc0qw33PviI46NDnj1+TNc0Aws2D7IGgzaZ7373fY6PT/jTP/0bnj+TXJV79x/y/c8+44svviREkU7nlOn7SEameXv7E/7FP/tdHj95wc8//5r33r/LdDri8ZPXoCDmiB4Mu9GLNl4bw3vv3eXDj7/Pn/34L2h8z737D7k8P+f8/JyYFesmYDXsTyecnJww2x8TcuSrr1/y+vSMutDcvXNMWVSsFpsbn9NRtc/r9ht0bPjwwT1aXvDq5b+nae5QTZ5RzH6fcn2LZhyoRyWVUeR1YH76jGo/MbtfgunRpSW5ir3RlH6xxhoIOlCMFHUVWCxbCQDtr+g3My79FXvHgZQLqkkPuUYby8XrFxRuj9FIc3H+hGgdqXpI7TLr9RnRR5a25eLyMSEvmew/IOYlbb/AukzTrQmpoUgFOS/pYkQnw+3bR1y8es3erSMOJ+/jQuJy82v6dcPps0d4X3D/I4cuDc0qYOubN1M0RtY93nS9r3f0txvWt4AOGS4urggBLpcLAPb3WvYP9hkN5nRB4VvxQGtFZSBmjXLlTpqVkhJPCaK4kOmW/Jtkzmnu3Drm6OQ2KcWdJ9W3G24f7jGbTUFrqqpis1kNcIK3p2jXAU1bCu71idWueNMKZc27G1BhCChOQ0PD4oOncPaNLzlGeXahyUmzXKw5ffWKo8ND1usNTd+yXCyZzxds1u2wsdW7TWv8R4oSCXF1eC9yR200Xd8KpMmINHPrX9lS/XJOtE0jIcLj8XB+ZF2MUULNy7LEB5Gp9r5huYKDg0NGkz1C1tgMVb1HO++5uHrNWWw5vbrgg707tN2KdrOg7TtSCCKxu+FRluXufdtOqLbv7XZSdX1Ctb2G5Rpgh/4mKzavL6ivVqiYGcdEaaEZOYrgIWteHY+o7hzRzyo26wsJjC7FM+j7HlvW7D+4T9+u8NHje8k4TUMOE8O1KkHzmr39Q+YLQ449ziRu3zmm7RPrVYO1BRZomyU5ekqtsZXj40+/L3YE3m5wwLagevv6vskh5+PNxC/GiHGOMJCRC21QxooXaRgM7Dxh22emtRIrweDjMoYYooTC50yIHc664bn89s8thdZWOhwxVoq3uA0G1powNG3KokLofWYXrJuzPLsFgCGywjT8LoRKJZS+KFCxN/J3mRBbF8naCEoUJCxYqV3A73/p+NZiarmYM96bMZvV5BzROZNiT27SIPkQKk8aUMyiBS4pqxlaO5RWjEZjppMpZeFE1jJ4WmIOlM7IhWY1xiT6zXKQ1gSy1qgc0QZSCrTLFevlimpc45Pn9UXDxg+UNTvgQLMhIvKxojAczGaMJhMkXFBGydZojBuLdEDJqFKh6JsVbb8mhUA5mqG1RSPd677b0LVrnC2wZbnLDrjJ4X3a6TpHdYlWMmIXw1wmDHkYk+mI6bTm6PCYw8MZo1GFMYZXr17x7Plz1s2aqDyBBpKMjRlkNbYscFWJT5FZWVOVIyl8+34XHCgGRvmZYggklen7JVU5wntFUcjPtb35++DpupaYOqyBlCzKaowSbaotHSNXC90rFOiul0U4pAElLRvhjCzAMSjKoiSmSE4K0s0lKSLCkM831qELR2ZLmPNoFJZEUGPWZp9vrhLnusIaSYtXGJx1hE7R9Z7Ye2LKMt1BUY9GkmtW1VwtWx49PeXZy2P+x3/xHntTyVj73//JP2HRtrw8b9mEyHrd0LWeVXRQleyT2DeXlKVFmQ7fdHQpkvsLKjYcThQfHe2jsyeTZCMPuw5mRgLz7CDXlOwsTciJijlmk+iKD1iMbnM4KbG6J6d3k/kd749InacuMnXlUAji3tghjyErMZdmj9EK5yzeJ8BQumGDYAUukrLDuiS0xWuLfZkjzoj/iizF2TZzSh6Egy9TSZEMSSY6OeH7TNsmoX4h4Ahj4I3W6A3iF4YO2TWaVd5urLRBZS9NhAzDDIwk25rd6yyckxaDufkUpe9WPP36G0b7h9y585CLqwvOXp2hUkSXmjt3j/nkk485O7/kP/3HH5O8QBq++vLvmU72efjBh8wXS169fEJMPVZJ3skn3/0B61XHj3/8N8znc3JOGGW4OH2Nyol/+kd/yNffPGYxX9P7QFkF6qrks8++x+HRjJ/+7U959OSMmBJffvGUk5MjfvTD7/H82UsWqw0guT8290xmlh/98PdIWfG//Nv/wGazQQGb1a+5e/cOD957yIunL5hMCj744GMWiw1n55d89egJIUa6PpC1QifHy7Nz7tw64u792zc+p9Nqj/1xQU6Bcq+i6yxudIwkbP8Jy9c9MX+NLd7DNxpCQ1Ce9SYwu3UL7RWZBavmitg/Rd+bkJwZaI8FPi0wnUHZBh+GHMXiArXJ5M6DHjG2FpVHqGh5cK+m7xJVaVmtO2K/IttD7GTE5fMVk2rE1WLO40eP2TsoqSYb+rggRUPTdSRTUNUTKufomhW2mGJNSa5bFq5m7G5jzQTfnzEd7VM1E1Q+4/julKoIbPwV675Bq70bn9M0UDWvezKuF1C/WXQopei7Tqiki4aLxRxrLfP5ksVyw/7+AZPJGN/3GAVt03DroJamyjAR2n7dbXEBg29hOLab4m0+TVnWtF3LYrHg6uqKvdmUg7198foMe0k9SKWuy/euw3+2f7d9LdtjV3TtXvub0N2bHgISyPjgWS0DZTVQ0IbixFrLer1Ga/HYpqw4e32OHs7LfLNitV4TQxok3GKu307sc4KsEnkw9Pd9/0b6lwRBnmLcNVm32TsM0rgttbftWvq2xbqCcsBQG23ovGRXxZBIUQ/NKBiNRLrvQyJj+ObJM7738D1WvudsvuHZ6zPaseWybwndmn4zp+8b8rZI4+b7qW4APW3zpoRY/Kao2m7ItwX59YmO1gJFk2epITQrxqGhDJlCWRajEYv7dxgP07lqb0RYrQm/fkoVG1Z4ONGETY82jvFshk6J0BVslisWlwv2j8aSy5oThYYc/WDNH55/1YjVQoLLUYo7t2+xrJdsup7ctqw2vfiLjOHeBx/w8Xe+x2qxeeu1XH+t1/9800OKnTcTou3kGSPn0IeIKRRmgDJ4L6A6ZSwMxD14M/WVKdFAxcxaVDmD5F4piVfYPl8YGhjALhtOru03nIGYrq9DDIHcb9aMEIIo5QbyHyqgrORLbd/3GPwwmRXLjlYSJB6HIUQIAZUibkt/hnfLmer6QOk9pjC40pHDiOj3SBp88MR2hdWWEDqhaRgtsj5j0UVNPRqhTYkdOh79usdiMJUTnHPWKJOxWtG3DcGL3EU7i9Kiq1QJYtezmM/pu56IYt21rNtEP2x6VJbg0BCkWtXZUReO46N9iqJEKUvGDIjRvMMmKgVbYk3SiqKsSU4W12Z5QU6CqazqMWVRSmhwbHHlzTvT62VCm0A9EoN+6L1MGJxDZ0cMA+e/UOzt7bG3t8d4PMZay2Kx4Ouvv+b09CWr9SXGxgFRqbZxOZSVYX9/n7qu3yKixBhZr9fikfKe9XotOVHeD34mMee1bWI0qtl6oLZdnJxE0rNbhHZjZUW20MYEpkbpESZvMEYueFtIZ1sNBKMYxZiZtUJnhSsSTXNJ298cN6+s5FolZ8E5tJPciKA1TdA0XcJnS1/t06YZTZkZu55mvabbrDDG4duWrmvpNmusgpSg6zzQMJsdUI9qQgi8en7BarWi7Vr+2R/c4dasprCWSWWZjQvuHkwHE2ZP07asU4W+/X3UxTMmF7/CGU1MgeAhh0z0AR/H0tHRgx9KRVL2OO2Y1COU1vTB77IQFNsmiRQQISdUVCxXz5mreyyLE/aLFTrevNsP0Gd5OG66THuRQDXE0FFvU8J1pios9bTEWEPXir8iZsmf24VvFqB1IGeEZGQMaihILBmnBHYDmaQzVSGStK0EYLURclRKGbIhm4SzMs1NUQGFkPl0Bi3SPp0tYZDPXjebW2N2HUKFAqXpvQQUGiXNiJw1YfBKGi3X+8CmEYrgOwR4WZ3p2o71q+fMz865ffs9bt+/R2iWHN8+4fHjZ/zZn/07fPKMy4raWPrYk6Pm7GLB5dVPuXfnNj/4/u/w5Zefc+vkkNt3H/CrX33N+dkr0kAiRStc5Ygx8PL8ksW64Tsffcx0vOL5y+d8+NGHPHx4n/m85Wc//YZXr85RKpJST9P0PHq84NXZSz77/u8y2zScn18xnY74+KPvgWr4xS++5MXpK5laDdINnyKPHj3i9u1j/tW//md0fcdf/sUvubi8kvcqbaloGYMhh0gwmovFAmVu3vn/9S/+Iym1WF0zmh4wX604OjhivTrlyeOv6FanjA4cxu7Rrhuq6YxibOmDo4lr8iIxngVK9jh78QrFJaNyH+MqSqeAnvV6Q1kWFEXFRt8iFZnJcUvvO8pxJbj0zTnee45mDymMIqorbBWoVEnhelqvOT55QL9Z8PrqJUU1oSxqfLekHmsoD/C+FcVJbJlvGsrRPqNKcgTPzuYcHz6kNjOwDZQZvOFq0TKeKprVmrKegdKM3Ji+ezdj/29S7X7z2EngtqZwrdnf32ex2JBSom07ujYQA6yWGyZTCdQ9OtiXZ9wgO9tu5Ldf8zrBC9gVddvn0dbErhB6qAKmkwmT8QiNpu06lJXcml2He3g9W+n19YnaNZXPsB+QCfk2CFeej4qUooSZ3viQSVCzCUynU7QqsNcas9tiJsQoiOwEPkQu50t8CHS9rIFaGXLe9Yu4/u7sXmeWj/HDnso6R4yQs8IZtys+lJJ7su87mkZiPFKSBrUxZsgB0/gYOb9Y0GwagVmlOEwfIpqCUVXhTMnPf/oLFos5zarj9XLOcr3G50BtR+AcfbMghB7fNpCFvPouGZNdJ9CNcgiuHY1GO4LktvjfFtDXQ5i374dWepCSarr5klJpSp2JKrEpNJbA6OEdshHowWKxwfUwi4HmV68JZ2teFQb33oc4q1leLNlcLejmSyqfUVPQY0cXA46KQmtROoBMV8hgC7pNS+wFxFVVFQdHB7jQ86vPf03Ulv07d3jw4Xeo6hFnry6uyfrUP/gF/+V79r/qUEo8ylqum5QCGXmvqrKi6zy973HG7TK9dqHROyCN3gEmtr47ay05DWALZLK19UEaY9Aq0/UdaheqbXZxPUprVFa7+zWmhHOGGL0MeZQUWVtfdAxJPFbGilVBCWFR/F8i/ysG73pMAaUHoF6O6BSxxrFpZP+k8kChLr7d1/utxZQ3mZAiNg8Bu0Zhy5IijojjSIdMjQg1OkNZVvgcJaXYjdDlhKqsJJNoIGG1wTNGyG9odkjDqDTZlWCsmNdywllNDh2Lywv6rgdbcLloSYjRzWoBABhdEPpA9B2mKMhoZnsTZrOxbC50JAekIFCRHETeowFtFEoVaDOCnMh4YrfBOo3SFRhHUU0oyhHj8SE+ePpw81wEDGgbqGqNs5rCGHIScphGE22B8Y4UMn3b4vuevu1Yzpd8/fU3PH3ylMViSWlBa0vnRSO6vQDHo5qqkimWHR40fd/TdR2b9YbYB9puw6qbo0uYqjFdJ/kUWfWk3NGFzQAAENRs13X0fU/bbQhZRrc5yUY0Z+l0WW2IwZCioqzGhCRhbCn1pEGSFJKYqFLMgnPNCmUd5Qj69uY3/5/9bI1zI0aHE9x4hC1qXl2ueP76ivlqg9KWvb19Dk/GGHVJTpludUkmMyoK2lb0yCe3b7NZLtA5s16vUEqxv3/IaDKBJF20cW3Zm51w52DE8XSM6jt630PhsMUIVyhStLhsUAlMhMV6Tq73YTqjQMyORVFjUsZ3jUgtVCLhMGgwGeNGaC0ERqsVelwRlUxwrLWoQqGNBFf7nNCmoMfg3Zivl45l73C/ZSz9246uzyQfScmg04BIz5pktDzYY6J0llAVOKdZrVo6H8UDZ8CaiNZQFCL3DH0mZkUOiRyjRDgZhffy8NrRTlWP8eBDJiVLImDNNlNKrh+fRUNtjZIHesrUpcM6Te8jMYjkOGpDSOK1UDoJup1iIIBmgk8DYF0RGDZOKaKGEGirnUBMrCZE8X/yDjK/3me8Chil2KQNT578mt/73R/Qloqf/v0vuLhcsNxsKGxBMJJlpIJIGhOeGDNPnz1mNNL8yZ/8MZ9/+Yj//J9/TAiZnCNOg7aKFMXIu+kDKTVsNg1t+/f8T//Tn/DR1QnPn5/yn/6//0nkwFYy6pyJpBCF4qgLfG/46uun/G/+1Q8J4QHZlDx+9Jyf/uwvCb6VjQjIpog8yClgvdnQdmsePTrncn7FttOTUxw2qfLxKSliSPR95vnL+Y3PadufEkLD+cWPSfb7OD1HNR1lDrz/4BM28z2Wi5ZRcYS5BZPJAX1a8fDhEZGnYCIX5y84rL/DncNDxjZQOPE16tySTMZNSup0yGYZ6bpT8FPaGAntGGM6Uh5hzB4pXrG6OkNNVyQWWCrG5T1817JqNmiriTkzmjnqw/usV+dE79ms1rhRgbMFZ6cvOZhKUG1Vj9ls5vjQsze9xf74mPV8SWOfMJ6MMbpgsq/xyyU5a3ofgIgxifn5zY39b4qWNyCd65MjeLvIAdnUT6Zjbt89QjnHfCFytKZphrDYHgn5jkxKQ1VVu83uG4nPVu4m36Pv+10jZCtD2x45RgyKSV1RFxJs3bWei8sF2YnaYL3eyPdMW++MhkFODNL4QdtBBgQxyhqQs5jVt1Kxui6A+E64eWsswQ9Tc6V2Eiet9ZCVJL8vlksYihy0puskw8eoN76fOMC+9IBWF+myyLNSHjJBlVD7tufOFOW1yZ6Q7TabFeNRJYXvUJhY6/ADiGU72VoulzSbFq0sMUTJGDWGEBPrdYO1luVyNZzzlqvVN1wtl+jKMTrYI+bMfNOgjzQqaplQOoezkhF10+O6xyaEsCuqtr6frbIG3mSGvSk0RHWQsgTJ3vrRj/jxl7/Cni84PH3NwesF6tUl86Zno0Ve6lcdB0niO1a3T/AG+rKgtCUaRffqktGiY9oHrFakEACDj5HOe/RQOBilQcv0cLVek9F4nwgp48qSBw/eo7t8wd17x4xPPuDo9gn7RyeDeuNNo3t7PbyZuL67HNWnbV6TgNJi6NGA0xoNb3zovKE9SuZTIvQNSoGz9eAzGujYaGLM5NQNMKnBa0USSFESX22CXbGJthDF1pCTgNtSFN+iMlZ4DUZDDngvckBjDORIaBuZeBk7TK4sCsHLp5RQtkAZQ/JrUt+ShwGOZJFKwHI1RNv4LB5E81vu/W+/irserzSFdZTG4rV0EcxoIhI/NCl6+uhJUWh4xQ4fXGBMQVWOKK3GKSsbIq3pQ09RaJQXlkrIBTlbrBN/i8pDgGf0tJsN680KU1S0fmjH5ExpHT5knLZ0MZK1GLMtmrJw3L97i6P9A0ll1opkJfcqx+FBEQJkCSWzusEUNbYohKCmRhg7xRY1vpcFSyuDrSzaG3gXL4qRELeycGgEn521BCP2XrrzxibadsXzp8+IPlBVNSlmzs4uuLy8BDL1uCQpjdIWlQ3WuEEeUbwlRfAh4P16gFOsSTHw+vQU3/ZYwFgxX4beS7GDgmyoqtE1DXWm7zwhQMLgUyZmg8rbVGhNSpoYFb4fHkrZ0eeWLgXi8BDOOaPTMIalIKGIWXS22dz8wf+XF4Hjg4L9bkRlR8Q2cXGxYdN4uqxxKbKeX6FRuLqk92ua9ZJpVfHw+Ba+aHly1pN8wf7+MTEFqtGEqq4gKa7OTvnhd494cOcW0+oBpMBsZCl1IGaPK+qBVCWSMTcqcUrTW6EjVsZz6fYYubtM01qCo70ndiKZVDljU0bZiC5rTDlGFzXKuQE9blDWkAtH1EY2uq7GZ8umi7QRNm2iywmtHHbkCeyzWd982gdQqCS+qxDJQdKmcoosu373QPJ9R9f2WGPwMQ00zEihDc5YwSWkTIwJHyMMi6jOYEjoZGVEr7TkTsVEbqWR4mMGLRrnnJQYQ3McinkAJWZcbclx23HWOKswOqGTTMp8zEQ1oHCzBEtrowYP2mBUJaNJWKuprJFEe4CsUEHIRConIRrZd3v4ywKdSTFhS0cfek4v1xwe3mK16Qap4WCojhkdZQ1TQETRZ0WzCayX0HeZ/f0DXp2eoZIiFtJxyyFhcolTita3xJQoKsPFxZJXL6+4OL+k6xpCikTfYpBNhrWOvu/xUTrhm82akKANmmePT3n99JTsAzoXbPP21NDZz8N64PtAXdRUtuDW4RGvz16T8+DCTOmNdColdJZzUpU3903MjixJnbB/6zsUtkR3x2TTUY0n6FHBfB7IIbA3HeMqS+lqjPEEBcnsk/IC303ZPz5CdTW+uyJYS5c9uYf5+Sv2bx8x3f+QaqyY0NK3mcszRaEtqA7frBlVY5w7xCiHNz3twtKmjs7NGU1FQWHyhLI8IoSOJ4++4dadMQmPXwfW/QtMKKnHFU1csX9wgNaWaa3wqwKjJnTdFZ15yWgqcQEXq47QNlifWXVr8kj8dzpF9sbH73SdXpfwyfus3jL4v1XYDFKcjGJ/b4+6GnF5WfH85SuatiMMiHRtFOvNhoPxAcbotyYG22fE9V/bze91gASAGiT4IYo3N8bI+eWCZdNyfrag956iLBiVb8iD4ruSgklnTVCZEBIpeFJMhBgG9co/PDabDX3fvVPH31gzFGp5wDS/WQ/cADxaLBZDAP0wrdv6lAaAwu7cM3iA3zq204qhGAxbT6Xsu8bjMQyf1/dbiIScQ+uG6JRBqSLqCtmgb5uxVVkN/ikpeqfTGZvN1jvfcTW/Gn5OuLxasHewTzUZ08VAYSzzxYLovcSADJMxPeSG3vTo+36Xi7QtzPu+pyiKXVN5+29vJpPba2mAmySRlu0fHvHBD3/E00ePaNcder6CrPHPzsjGEr1cvzorvHZ0d+9SzWoqA6XRZO9xXeRg05JSC87SNC1dJe9dT4NVNShPWRiyEvy8M5pN09D1PZO9GUdHJ7RdoFlJbuXJ3Xs4V1BXlTT9toyC35DyyWt88/83PYqioAsd1liSVqQgE7QEeC/NBXKW68MOr837nVrp+mH0EAkTEymFwTqRdxPZ3Xs3PNSv3++ZYf1hiFdQcWhqJyENB2n+2aLAFRW99/JszkmCd1MkJQHZMEystpE1AsUAGMK4jZB9lVLEviddkxoXdiAW9t9+Tr91V1DpAkIi9j1lbSX0LA/I5RCxytJHIZ4oFCTxrCitcFVBWdaM6gJbZFTssTjqsiRESVaXLKWIiYGyGJGiGrCGoFWAKIuOdSUhiQlcgSCmvWAUU4xSDPiEMw5nDYf7E957cJeqEiBDjgPauVAoLxpOZeVGisnTtnNys+Do8BbJCxwjdIEcPdpWYrxDsMPCr383PaobKmiF8PG3F8/uTbElfe5YLJas1+thDG5pNnLDCZ4yk63k62y7RNuvszXUykIjRWTTNPjQE0LP+ctL8lzkkHpAS1c5sc6tOEWUparGu59XRubQbBKbjRTLIcumSDyvihASJEsIRvDLORPxkgGgh87EQEYRbOUgsRgWheK3jFC/7dgbT6mqqZg2nSX7nr3JiFIpMbn6jpwyvlmQNp66MJy89z7vv3fCR7PISE/4y58/5/MnZ8wvHUlHui7QtA2LywW1CXx0+/f53h98yLh0ZJ3x0VOQsHZM4SoJkFUKVxaYshB8gg/UuqQk0GvQ1W1q9ZrsI7EX4l7OhqQq/GiEcYagCoJ2BDRtBExB7xO+7whNIGxN0v0SpxQ6y2Y4ZDBZur6kiCsP8LwbgKIPWTphQ7iePLzlYSJ5JGYwdUY6H4awPE2fE7HL0EjA4w7ZmqURYYwsaEapYQGKOK1ISFZU3yXaLqGMwpWir8sxDRl3cj0Jgj8TkoTFamPENKoUzok3Dw/DrYvm2kYsS8hf6Qy5EP+21km8YMZSOEvXBvpO5ERWCZw5CTOD3/D9/jcdXcyoYUIzGpV8+NF7fPX4Jc9enKK15vbtO3xWjXn06BtiljVOa0l61/JH7t474pNPP+FPf/xj5ldX3Hv4gM9++Blff/UNy9WanJJMhtsGMIzGYx48OOGDD+/wd3//BYvLS+7fv8tnn/2QX/zylzR9J3KKLBsxyeDrgMz3P/2U9Sbxk5/9kvu3T7hz74Bl+4qm25CGgFW2hCateXDvFp988jF/95MvePniNXfv3+Hgex/y9deP8P2AZwdELy/SyoO9KR999OGNz+ne+B71nqMeT7k6/4ppvkuxdwvf9cQ+s7f/HvtjRVm3OEqqwpCA0XiKdiOef3mGVXvy3oRIUBqNZeTGrHrPeGTw/ZImX5GMo3CW3FvGE43JMmUoy4QrPU2XiKqn21zy+uyMO3fewydYNFeYUNGFDcdH+7jCcHJ7j85fMJoY5q8Ce0eR9arn6sU5dz48ZNNG9qYTIhtUmtL2PS+vvqF4738m5/fJ5/8d88UppeqZL1acnV9wpzzm+OQYv9G4+G4m9N+k3F03am9/XUeM13XNuChZLpeUWjMujylKy/PTV7RNwPdJvJFJfIDb6dBvZjxdL6au+16uT6xANmLnFxf0faRrO56dnrLppelntMFGhknJWjaCIQhhOEjR12eheeq01fCmt77/tvu/2Wxou3aQA958k7qdcr1FQxxCSLdTOVfItKYoIl3X4q9NU7Y/T9jKp63g40OKIq0a9IpbQ/9WBr71SucsOYjyfqUBImRompbxZIJSlpgkiFcmEpJjuS3eeu93Ex9jDPP5fNjUu0G+JY2y/YNDOms5Pj6m7Tv6GHDGgdasVpeS8+gKKSSKClfcPGrmuqfn+pSzbVs2Ax7/3r17jMfjf1Cwb4vr60XWR+89ZPHrX9N1mU1VoxSMvGc/RVQMxJAolKG3FuM0s0lFJZYqNhcNhISymfneAXE2JVWO5FuqnPA5ssmZohr8uAN1rqpKUhLkedised08IgbPtIh4nEjmlGI0GtG2/zie+zdhFO9yvLm/jTyjXYkPPSrzBq8/BOcq/UYBJZ/LICFFFB7SGaRrGiEcb3Ugw72/fZbLXpidtDTnPBRqSvzEeYDeRD8oomRya5RG50zewiKMkWwuGBqkmTRkom2lfNq8mbCLX9rurgNrDWREzpvFIyZBxb/9vv/WYkoZRcwJ3/eUVUVd1KQukTRUoxJbGGznUfUI33uSktu5qiqKusIWVrrEKg2JxZ52E/E+UZSlRFhoR9cElAo4U6Ari7IKkxK+F1JfDJIUjbK4ukIbh+oDrhiIIsiozxaG0bjm7u0j3n9wD6Ptzrjm9EANMXaXGZFyoqhrNBnvWy4X5xhtdyPwvK2CleQTiWlOQbh5JtLRXklVaZSWr2EG7r7WisJqwUljcErRtT29D7KZjjIetWUFKtMn2SymlOhpULFDq0IuoaCIfabdeKHnpcxmvSbFyOr1nO5qjfKCNfc+A55xJaGEy2a9y6KQ/LCE90EMpn0i9BatLdEkUpDcjKy2cb+akCGFhhBbtMtCEBrQ1lnrAVwRB3u/jMblYrvxKeVffqDpVEPQGq0i2Xh6syaOeg7vTjjYP8H6BpN7apOpb92n/N4/I7QLjuNrJqbgf/svp5x8/or/1//n7zhbd6w2jXjpEvRFwZ/99DH/4//6U46qRC4qcmfYnzi0SShVkLSR68NYGU8bg56JlFEnRU0l06TZHl2TWS57Nr3QZCTbIBPaJckvyMljtcYqUKnH5YjxgegTXYqgIpaASZG46SiTAieLX4gdnQ/kYk5X3br5SUXyiKL3aKk2hjTxBFlL4WQGRGvOYAYiFpmEo49RJIKDuF8NhZM2Bp0HeS+gg2yqtR7Qq1m6dTKtMoQ46LCRTCmrFT5kei9S4EIbVJa8ED8Ye7NR5GwxLkJSdD7jh1s2pQTJk7d0wCzy0xRlseyCyJEUg8FaicyyYChqjNkROG9yhF6CiO/fv8fB4Yyf/uLXzOerwZel+NWvfs1kNOaP/uiP+ebrL3j9+iUx6WF9MHz3B58wGk349//uT1mtNigy33z9NfVkwnc+/oS+6/n8818OneWOyd6EP/y9P2TTrvj3/+6vsGzQxvDkyTOWeys+/uhjnp4+ZzW/2m2aXKG5dXLCZ7/zA548Oefzz/+ccjTj6vIS313xwYcfcn5xxtnrF8MG11KVJZ9+/7uURcHf/PXfsVitiESePH/C/v4e3/vu93n+4hmLhcj5ck6UpeXjj97n/r0HfP31oxuf04P6NuvVN1yFb7C5xlRTYvBsek/fOpQaMz0syfESvcmU9Qgz2aOwY/rmgr3xbYIt2DQQg6eaGIq6ZHWxIaCoZgXO3qXtMiGvuLpcExtLOR1RFxXzxRqtDPNly9NvHnN89w6ogpANXQzQa5bngdHkCIWi7RckvcTWFrImqIb5ekU1rRlPb6FSYmKmKOVoNhFXJEx1BS6xXwbWYUS/+C59e0mImrL0mKri1q0jrJXGge8TXXPzaf91ct/1rv5vejOuAyqslWdnqmpi36KU5sGdYw6PDtlsPO26pfc969WcunRvLfnXO+lb79A/Rit7IzOUzVfXBy7nC0Z1zXgyobm4oig0hwcHjCdjagOvLy65XK7RTqBSeltrwLB2vDl2Cgqtqetanq/ek7JsAv9Lk6v/msMMyhzx3pVsyWXW2t2EJYY4hOVmOZfp7XMPsna6ISpF7tmtN+WNj2b7ArefE2NkuVwSQqAoCspSvn8CQsxcXFwxHo8pq1qsG2mQ5g7vy/Xp2e59GSYrfeeHxloefF4eHwNnFxdklSWPylrGVc26XeGKmtIUw/VSvVN3anturr/WbQaTMQL2WC6X9H3PZDKhqqqdl/y6L3DbzL1164TgDP29I6qDKaHvyc9OsT7hipbYCsRjYwvJ3suJ109PWS8b1LrnICkyhnh8TL1fkmMCb+kWFyQiMQX88Jx0rkA2fNLQbtcbfv3FN9Qmce/+Ea/XiuOPfmf32oqioBtyMP8xYt8WtLSLALnhkXLayT3toK4x1on6IKZdAWQrtytQt9dFjG+uGUWm71uMlsEBKWGNwKVQanefb3/uuC1wtl8zbRv28v4aoB+IfraQYjyFHpUdaCuIdGPEV50UMUWC70EnTFm+NemOMQhQqazIQQ0ZmQMxcKD5WmNIOeP7bvi3b5f3f2sxFQbdcPZQh4AtPcpJYrBVFhsNRVWCsmw6MaQpDVVZYo0hE3GFUH6SEiP7crXGaEuVRI/pjCEExSp5RmOHSVtMokh52j6x2HSElCmcYUsJNJUF7VAJ+hgoajHBHxxMuX1ywGw6ollfYUiS0WAKbFFJNyBmtIaUZVpSOENVH8qURBviYJKTjzMoLR3UlLPk+MSbe6Y+++iuoMVNAiOyHWsEQ6t8xCZFaFrRcxZm15ELOQ8YT6HixW0OSIxC1bMFRpdoHKHpufIXO5MpIB6XEIjtggcPZsOCOCw+vQQmKlvQ+32UUky0wvQd0fesU6LTMDue4dYelJGHttEYY/Ep0fsgVLWYBu/UDK3KQYeahuwKyNmiTYMesoKUGjTEv4WU8m3Hj+5PQTuwBm0SRhfktC8ev8JQljXOHQgVx5bkyX3avX1yuGSqNYUrmRrFf/9P3ufuYcWP//prvjpt6E3NZrNgfn4hYb4eCeMbT3B7FdGVeFsQVUGfIilo+gB9UCQfWV5dQhpkYWUk28T6xWtcbKFrcDkwcpoBgiMTU6PRhUHnCNEL0EVBLjPZKfrQkVAEwOoC5Qzr15eozpOUaJqtD/i2Z9o1Nz6nAHt2q3ke/JIastFkJZt7iYAR+VzORsb4OYgkL2twb/DKetD1vxlkDOntw42ec4QsRlFlFVllOS/6zee7QqAFMQeMkS6301necyOFjwqIX8oYTAn1qEAb6DfdoNkW4AwYUkykmDAGslZEuSWxRuHM0CnMmcIYkS8PwWnv4pvY2x9z784JL15d8ud/8VN88Ggik8mE2d4+SmtePH9O2zT80T/5fe4+OOJnP/+cO0eHfPc7H/H89DW//OVXECVvS/rp0DZrfvHzv+fO7Tv83u9+ys9+9isevP+Aw8MDfvrzn/Py9AxSz/64EhNujsznF2zWSz786CPWB3s8f/KE2WzMx9/5Hm2X+fGf/j2rVUM1GlMO8qjFcsnF1SUPHjzkcG/Co8ffcP/ufe7evcuTJy948fwFMUWRd2hFSpn55ZJ2/RUfffw+k0nN2dlrHj64z61bd7mcN/zkJz9jvVnd+Jy2y0DnIn0/Z5z3YBRZbXraZUl2JUZ7jKi6GQ8QhLKYodBYO6Ye79N2UGjF5eaUzbLl4LYhWct4NqLfrFhfdBSlpok9MRrKiUVXkSY2dLFjv67ATrn73iesNhcc3trnIEYKRowOjynLmrLao6w1m/nXtO0le3sHlLYkKsfhLU0qC2xVceDGqBAIRNr+nJBfsFxscO6I/VstxeaPMeWYemqpW8XybMm43EdPIuu+4eKsY3m5Yn9vcuNzCm8XVNs/X9/EbeVSu6IrvZnoWGuIKVEWBdPDPVLShC6wXq95/PjXb0mvrk9qtkfO/5AmeH2ClYcmzeHhIdqIzO/W0SF7U4E17c32QMFmtZRu9SCXU0am1/laofCP0fy2UARrJcZhOq6JKbJY3byR2ne97Kdygff9gHLWIpkaYleuT/+2vufrVN1tCLwdcunSDl+vyVswTkaeu0rUErLeijqg6yXWwg+SqGo8RtuC1WbBurlgb3+fvdlUvCVKDb7SQFVVuEI21M5ZwgCjkiwwobDFJMVgVBk3bHYFDjLFac2t1KN1jXOVvD5rKesxtrg5wv8fex+Bt4KLt/lal5eXjEYjJpMJo9GIrSd8K53MOTMeTfg//F/+r2Qktmez2ZA3LconfvI3f8Mvf/kFMUOvFVMjAcrrZ+dMVx6XPYZEpzXKWkZVTbfcsFk0dPMWZT26shgUqreDV0tocZdXVzx+8pxV0zNSBt8X3Prud5ntHwHyPKuqiuVy+dZr3x5v7sM0xN+8Q3c6Cd1RMP7S2HROipE+tlLE/MZ9K3ChN/ewUoqu3aBUJoVEWTqUkZielIVW/JbfS78pyuRat7vsxRzDMG2S6IDrk9PgO3KOwzS3ou86SIEcIr7v0LaUPUYS8FVWGh+CQMeGIREq06wa2dMohfeBmBIxCYZdtijhHxSvv3l8azGVUiL6oXocfiUUSZlhk6wGpLFmZDRGW2whxU5hLX27kW56D00XWc2XbFYLUohUowrjHIUbYV2Fc6CKhImJApEAhajpvCIrQ1EaGFKjGWR7QpEyxJypyorZbMLJ4YRJoRnVNQpF8C0Z6ZZk7TBuaKwL7gHlrEgGMbIwDIUNGpKBHEX2InI0mUyV4+mNr9Pz5QSUGISViZgBIS2m7Ag+oNtEZRSjaoIysF5vMDoyGo3YYmO3MiutFNn44UI1pKDYzANd2xPafrgABkkZUFRTRuM9+XuViCkwigf4HqIqqZUmpUhSij5twRGJmA1FvUdRWuniZ+nQ5ZQwrsDZTKYnpp6UHTFoYhw2rioOP7dkD+wfTRmNt5txj7NvJB83OWYf/g5JW2w9ZTKbMpruoV2BsRZXVVhb4kkYW+CKgnWzYb7qId2iSBXKr2WeYhy/8+kh3//sd3m2yvz8ySVfffmEi9evuf/eA5bHH3M62UNZwSPrFiajCblvSCGTmjUp9Lh+TVotmK3XJN+hQ4eyGv/xj9DAtDlDhUBGU9gCUxhSUjLxMEqKQhR957F2yG9IAe87eUAaR1ZWNgZjLa/p5StiL9NL7TKq74mbmz/4AXyM5JQxGswQjG2HxUWoPcAg91TbSkkbKVqzkqIoXUuc1yLzgjdTc6UUKhvZEAzyu212ijLbD9Rss8MwitoYMVkrmZ5u1yGtxVeVckIbBmmyZloWdGNYrzy+V6RBr5eyTKxiDMQoMzVSxhPJCZKSCW1QGZ+2kX0Zzc0BFD/8nU/5T//xL5hfrZhM5OdXWYqirhNJzd7Mkdjwk5/8Bf/qX/8THtz/lyzO1/z851+wXK9RJg6mXkUETBbYhtawuDzjOx/c4n/3P/xz/uqvHvPvf/LX+AGZ7Ib1z5gsniqrIQUeff0Ff/wv/oiPH94jZcUvPv81X3z1hBgS1ggZMw/mdsEwB148/4Z//d/9Mz779GO++uYpf/03f03fpqFDPmzElayZWWe873n18gV/8t//U2L0/PrXL/n5T7+iDWvGRSkd2hsepj6B/JqZO8T0FZmGGCLTyTGL+IoQoWsmaCJ+f8KodISuJSeFyi3KGnzXknPiYP8256eXdMvM3t4xKWzwbcR7w3oz5/nrU+7ev81yMycsWu7d/YDR+DbOFgQfKMeKYEuU6Tg8PGKz7vA6Uh+MSU3DxeuFNKianqurpxzdOsRNxoS0JjQ9k0JxdeUpVGJ8AKG7JJhzRqP7jKt92vZLivIIbWa07Rlardls1swGqEaOUNRH3L07YnG5vvE5hX8Y1Hud7np9I5VTIubEfL1h/eqCuqpwBtq2YbY3o1aKsizpsuLsbM2oKqjKcidJv97dTgOtVEAVQtbMw2Ztew36IRsppUhRlPRdx6uzM+q64vbxIaPxWO4roHeOuirFDxXCMIlSb70ueHuysd1kp5yEYFYXFE7T+7Sjl93k2E6MYpQJRRqC21OKVFW9O6/OOnoT8du9F29PzIy1u/ORh62lUiAeoMxu1rbrXA3fWw+od6WIKRO6Hp8zphDITts2LJZz6rqkLOT5SSsWjr7vqepql/uTlcYMi3jMkvPJ4KWqyopgGTTWMBvXNG3DvelUGu1OJnNlPcO4AuLNCYlb2dn1ovv6pnc7/XBuyCqKkdVqRdM0jEajt+R/MUZcUVDUUjhqo6gmM0pboY1h+vAB7ej/zcXZpTyWbCB3nrFP7G826BRJ1nJ+UKEqS/KZxRfPMF1gHAM9a9JeKXurHAlaY61QFp8/foKyls9+9Cn5yTn33vsIt3e4u1K3No6uk0b+diK3vSa29+VvSmFvcqg8FKY5bLfaEoFkLEUl56ooLUYpUvSgZV8ll2ImhYgrSxleEESCZ8T7LTaltymg1+871ADYUoNkNfakHNCF0PgyIrnLwZODeGFVYem6jeyHksKpTBe8UIX7FqcqggerKpLKGC1FUk6im+/7QIhQajUAwSKmqGRKhUbxj08Cf/P4rU7qwhbU9UhMXDFRDAQXQkZZsM4QQ2JS1qQoIWoSB5NIKJousrzasN6smb9+Rr++IIaWuVZUoxnl+Ih6ekg9nlL5itgrUgleGS6WkU0P1hSDKVtGftoKNQoVUYVmNJ4wmU64dTChUJG+aWV0aiusKWVECcM0KpNIA5YS4cynIWtAibE1JjG1Gm0IKUgie/BkFNa5XS7GTY5NssSoMFajk3jC1HAhOVXRNx0HNlKmFeuFbEy2XYDGrwYTr0NbCf9NMYAaRsZ6MCdu1dM543PEqkRKhvPG0uuSzJaCY1BqqxeFrCxZbet+UFGh6WhNgcoWnfTuIkcnprMxMTZAz2RSY4wW5HcbuLpSJCwxR3KWDaOPCqVK+tAwKY34WpDNq1E3XwDW09tCxGl6JrpnQkNRCC61SBoYgm/R1KMJdjSimlhy+R7tZkPwAd+syKEjZChcSTXN/P4nNR/NMnFzxGRUUc1f4q9eUttEZTN5QGqrlCmVofcthco4bTAochGJBJTxKA1tu2Be30ZpTe0sfddhsRSuIBuDMgY7+H68b9FK0XvJPtia94VGNTw8rSUqTbW/hyscmxcvaDcbgWAUFnutU3eTYzMs2IXWFEo2NTHL9CalSA5xCOkbipNBGsIg4yMLAVBrgx5gFnobkk2U2ksp6VIZBUpInikLCMJaQwheDMJDjLzYUdUgKZWgcJUzWSuslq+jh6lIzuLN0yZLk8dlUgAfvVzDCpLSBKAfoCpJQ8pGrsxB4kfOxCzNm4xCxZvf/19/+YwP3/+Aq/1LLs4vSLEjZzVIHzQKIw8zLeelXXU0DTRtwJYW0wtVTJFAZ0wepI2AVSKr1tbwi89fYkrLeFazWrUkHNZI/h4pgdG7dUepjA8dfbC8fHHB5eWSnIduLYP5P/T0PZCCdBu1ImA5fXbOkycv8FtKWRaM7XYTp7UmDgV5TonVouPZswsePT6l8z1kTdeFXZF9kyOXgZk9onT3yCPo0xVVfZfz0x5dQvSGxkKdC3nIu5KcNVVdS67PqEbFNWG5ZHW+xpUlhUroRaI8rMguMD40ZDPhYn7OatlQ79Wsr07xqyu02SdRQwFj61GFkudj0WGUZrY/xfcNTViwXF2SUuLWvU/YrOcEE2hWnpgsYdPhjaGqFV274mL+mlLX7E3uE9MBzrRoc0AIFU9f/ITV5pyjO2OWG89kGri43HCwN+Li1ddUM8X+0dGNz+m2y7/dqF2fIu3O+/bvhvd6vlxxPh8iTkjs7c2YzfaFBJoDMfaslpfMapH6bPNorn+9nexn+0trfEyy+Q+CvO77fvezzYzB6IwPkXa+IMaek5PbzKb7ZKD3kapw9EmgOTkm+AcZPTDsBBmMUXSdJ2wi0WpGxaAGyRr/DkV/HCwHKSV86IkxYQdJvXPFzuPcNp1Mo4YQXmvMNbtWxvtumD4ZnIVCa4nZyJlOQ1QGFwxGCYnPDJlUSge0FmqZsobopYNvtKUuCsl9ipHzs3MO98ZM92ZvYBRdR45CPg5ZE5TkU0pTOEPI6KRxxjIuKrRNlIUj+jXp7Kc8HB9wUJSialAK40qUFgBG7P5xH9B/zSFeqTT4Xd5kGF6fZm6nnCmlt6Bam80G7z3j8fgtz3lCpqxkRVkUOGfIMTEeTfiX/+Jf8h//w79lNb8k94HN1QqbI8ZmTu/cpp9NyKVjbKQAdV1gv5c92EoXnCWL6SPjQsAGRVVSuIrlrSNqNeLk9j5ny45ytifP+gF2VlUVzrl/kKN1vXDaNdnftZhScm/1A57fGUcGgvc4OxSuRsi6fd9RWvdmGh08OQ25VMM0VEBKET1Mo8Wb+6YZ45wjxTA0Zd8mE+acSCGgrCVFT/D9UIB6aWgPPihUJnqPypqo8/Dv0vzQSiIJVPQkBNmuh8bMlozoCkdOQUJ7rcXALjx46936bdO+by2mcgDjhLYVk2ygUZmIUGKqbHAx45yhKKTytAPHvUuBTQisVhvml2es12d0m3NS2BB8J0Fy/QbfbfDtkhzuYazGFgfUUSR4r+crQh8ZFw5CEGjEYGhXaGxdUlYl4+mE6bhi7BKri3MujWbTeypdonKmtGlHFRHPRKC0BpQlxYDO0mnPyITEWUeWvRbabHWgadhIOqy5eS5CTFE651kTk8IP3RylFIWzoHq56U3GqYEepMTcaYyhix1GR5IJNFGx8p5xUVBbKJLCOkXQUcKIlabtPYXRBB9ZxMA6VqAMMWnxhSiwNgoWXa+oRwWjsUMr8Ms1KmrCRgt1bzdSTxRV5PAko5iQYkHGo02D95GrpaaLGp+jFGdpK6sQyVqIacDtCqI2xkB6hwVgf/1LjrTcDHmpcG2x00xr41BaY6wmG0Uzn9JWH1Noj1k+QfsOFyJjDVaJh81QiH+nb7g/jZiRQylP6E5RQ8q2LQaEf0xkBVo7Smekm5dkfE+ErC3BW6wrcGHFpXsAoz0K3wxTXch9wu0XpKQEnRwihIhKGasdMXiMUzhXk3KHzolEIGeN1iXaFriZQ6UAL18T+o6gpdh6l6O0AhIpDDiN6G4RuanRDKj7hNKQU5T3MW27yHIY8gCcGCZXpCFnYvBKKVAqoqNGa0POEZUTJUMA4HbxBdnraEh5mC5tSys1hHRmhQ5baUuk7wN9D66UQshoR1FA4TLOaYyRwmy11ixWHh+2qetbj4JovXOWyZzRCUkEuPmG6tmLx1TGcXz7Nvd+8EOenz5nfnUGefA/DBk31sJ79w9wtuRvv/g7lNIc377N3fsjnj9/RrNeo0joLD6uRGZvWvHxJ58wX2z4/IvPyWg+/vA7rPrA4yfPsErOfQYp2hGoyIcfPaSwY37y13/FZP+Q73z3E8IvE6/PLnYTxOAbgougoHKOTz/7Pptmwy8//ymHB8eMRmNevX6NSgq1M/IPb5nOnBzt8f1Pv8cvv/iKl6fnHB0eY5qWZrNBOUv5Dg2qbnXK/tGYvo10/RodLRu/wZiS1E5weky7GaAHuSNiSCQsmmp8i9X6NVYrVGpYzCPHJ3epxiVFcGhlUayx1tPGgv29Q8pyjz57Do8+hDAmeIXPG4zLUGyE/NQoirqn0Pt0iznTvTt0mzV7+3u03YbsGwgZ6yD5EXHdMxof4OwhXXfKsllgqzX9Wgz+2i5Y9uf0cU7TZs7nz0nZUtYFKZa8fP6KaDKvNuccnihspTD25tfpb+Y9bSdHv0nZkw2RfNzJrWMOD+Hy/ILSaupRjR6Kpqxko7LZbLh9ePetKdc/mE5lCEmgRj71QvJKcVh/2H3sFrI0mUwoiiuMNRwezqhrkY1tN9jj8Ri/HnxYw4bzulcD3oT6gpBHt6+52UQm1RQh1gY263fY+MdAWRSSBbX1tiAQp5wzvg+ywe+l2SNLphrCQtWQuSNHzBFiRCcYjaZMxgW+bdmElqAyrckkAlElgpaNoZNuMWUhlohk3S6gtO89o3pE2zb0vefs/IKclWROVhUSiqqlsZw0NmWRU6UkHnfjUMqQiwLlNPd4yURVXMYlwcDv3/2IFIdnlnEoLWjrHD2hu3keolwzsAVqbN/H67LIbTG19fpsr4st7GC1WjGfzzHG8Mlkwt5UsiK7rpNQ+mHvVRSa4+MT/vAP/4j/5//t/064WJBT4jgGknOo2yccHE5QOpPxdJcb2TObyOZowroeUR7McLmnWZxC6rFWCtvG91T7xxIiPB1TTmekQQkFUkxtC6mtOukfmxT//+PwvR+ARHIvOCek1eh7ClfL/W8EaW9tAVm89WQhGBhrCSmhrSYFyXTaBvfmzFvQtZ0Pcjt9znlX2G7vS601JFkDfN+htYRoazUUvYBWYLUSmWncBgJLZpsdqIMpCo3R993gCjHEFAa5vCG0fucLDCFQD9ENYl/JvzUP7Vt3W0VRMp6McFVBVrK4SVGsUUZefPRC4jLiTiN2PSkmYlJ0XeDq8pJ2PSes5/h2IZsfrbBa/DKKgEqevrliszAUZYW2GpMyTdvgN2vGR7ewzkr3WltcUaKNYTSZUpaWybigshm/XrBczKnKkZxcq8heSCCFtfJGK0PUW3mcIkaHssgJ1ZCjvGnbsbhDYXUFZAol3YSkbv7gj3kjVX6oSGoILo4CTuhjLw+SnPAaQhBZgNwsYtBPyuEjrELHeZ9os6NOPcs+clSNGBFJpicjZLKkE11sicrQAT6ZXa6GygZjEvvHxQCRkJvDuIxigx0nFucelUbkjHRsttSvYPCxJ4ZMv7YonSlrgw+OdQsBR0TOpVVb75d4Y8aD7FBrRYqBrut+q7nv245JVUISGaHRRl6DUTvIgQ8dBE1Oik0oeTl/yYnpuaOuiH3HxJYUWeGsPOhM30LyxNBhlcUYmcjgLMnIg0mCqIHUDwZaSx604yLbUmQrVYi2QjCrujWT5AmTW+SrJzijUDkS+0DuA6YsB2ltjzVglMjZgjJYW0JhUNGQ+haFHyQn4lXMrkQfHYBPrF+/Bt++k3wCYFI4sgErvAkpiAY/I4DxGW00ZWUxyuJ7QwyCFpFrPBB8Enke7DbYEn8gIbtqaLmKVGhYGEn4zg+p6Qpt3mwsksqQ5V6wWibjxgwUy5BoWkljRwmwAqXJnUIloV4lwKmt9HDojFkoHVgtEqOgMz5CjkYiaXTEFpITk4H8DlMUqzMh97x69ZzLy3Pu3r7P4f4+p69e4HsJbJ3Nprz//kO6LvOTv//FAO+B02dPqUcjjo9vEQ8PuHjxkhwiRVlw+949DvYPeP70OcurK2rjWDYdn//qV9x78AF/8Lu/y9NHv4DQEbUUlrfvHHL//l1enV7y5z/+a0KMnJ294mqx4OHDDzi5c5evvnokG2bEk3b/wQl37r7Hi5dnPH36C1IKvHr1itl0n08++R5PXzylX17JOdJQVI4PP/qAuhjzdz/5FZeLK0LOvHj1kju3jri1f8LZ5QX6HTYCVt8m9WN8zCjn2LQBrSqsGWEr2ewTHVXp0MYTcqBfdeQ2oouM0Q5rapyeUNee9bwn5I7ZLFPnMbGH9foKVR6yf3CMMiW583TNHrkoqI2h7RY07SVNN2ez7qntGPQErzoav2Rc71NbR3Uw5ux1Yrm44GD/DqNZBXFMWRxhy0TuMwlNu94w0pH96R5dN4fcEzH02eLKEUezHlfsU++N0MHz+vmcss6cHLxH8M+pVSa2ixuf0+sd/m2xA286/W+R97Qi54QdutaHhwc4PWzGQi9KlhxZbzYDDl02gzEN0+EEMQXxQASR46VBhssw+d7CUa77pmKMNE1DPa558OA2EovwJlPoOolwK4Ulvy0vemPmf7Pp3h7j8YT11ZqsSgLSNEvc/Dqtq4qUoO263SR/K93abuxjiKQhB0trMzwzpWDYqjdyzqIIMJoUFRfzNW4CB67kyFk2fcPcGhrv0U7RqkCyW1KyxVpLURa7jWjXyiTMWMNsb4/lckHvWy4ur2j7ntHeFDOuoQs4LehpO/hoOt+LaqkowJW4IpNZUBcF7++fcDLZJyuFH43pgmcymuKqMWpocubQCy3thsfV1ZLpZEJRynWV0puiqhyep9elgNd9Odevj7quCSFwdXVFjJHpdMpkMtl9bNd1u/vh/Y++wx//83/OT/8f/zM2BIGFFSXKaUa1Bh/o1oF01VBkg6kVq+M92jZRrlrs4YjV0tBeXBAOLK/MikUHH+5P6S/npARJC1hkWziNRqO3MteuH7/pZdxeIzc9UhK0OAy+PVcQgpeBQ86D90ihtKUoRSUiLAIp9qwGlPjrfO8R0YkbgE/bnCx2xZQ8u/1OKaG1+JpyzpLNNlCove9JvqfPCe0KAVPkQdqoFDH05KyG5+UgidV2d5+nGMgpUzgHeZDyD8PofK15sT3egHC2+W7vMJkq6xLjCpRyUjVGyUaRLyudeZ8zOgnxQg/d4dAGNm1Pv+kIzYbYN6Qg4XkoCcIsyrGEvbqSshqRtaLbLJmfK5S6OwR4alQSXZEyBqc1tnDUoxHGaeraSYZV7mmXazZrkWwVhcUiJ60cjUk+oNDDRgiy1vQxoSKDDC0CDjWQSIx2QzEyvNlqCNUdpiib1dUNL1N4eNcJdnsNq6YHpdHJoomEYFG2pk8dPgcKJQu7PFOSGDyzofWJiz6RrebIGsiZhc80ueG4TEyShLvmlFAxSUiuUoARylocboqs5HvohhQVfT8h2xm+X2FLWCxhvtFYDZEhKXp48HSdYrVqGY0jRQ0pBEJvWFw42n7gUUfZnEYln5vJJHqsc+Jz0YbYebp1/5Z59L/1qMspiojWAYV4Z8qixFlDjoFgNDkZ+hSJaoSxlj1WjFMkYamVRpOxsccMEz0MOFehYyTmQSuvDUU1Bq3RSkiRKWqRfSrzJmdBG7ClPAS9RiV5WMTkGfs53P4+bE5RvYfOo1UkLDcUxmKqAl2MUDmSg1CVbG/AOFRdASP6do1OvXR4UIILd4PB8+iQGDxhMX8n+QRA8IGcgjQVlEGZYQEEKaoVUjZlAQ4oq4kyM7sm1dkGfKZdtopMmgaJ2vD/AAnJkBKTqZLCdljDtNFYN5jHUxbJo004YykqIxNZP/g6c35TwOVM6KMs4oN81Rstf9dlcpCclcIolBk6xFqmUd5Hcpb7KIQMQZGy+m1r6rceVlvxg2VLCp5nTx8xmU75nd//Ps8fP+bw8BYpKR49fslysUKpTOmcGIFzpmtbXjx7xsHBHh998gGbzZqTk7u8Oj3n53/3c7QRjL0yiaTkdVy8vmK5bPjRp9/l9NUzptMx+/sHzK/m/P3f/oK27YauIDLlCw1fffFLpocn/OEf/JAvv/iSBw/vcv/2IecXV/zN3/4dbdcOBZZQzpaLBb73vPfBQy7PpUN4/8FDynLEo0dPOTv7arieQKWMSonz15eYY/j4o/f56punNz6nHse8CbhswUnshUkVh/v7zDcvafuW6XiferTPy5dfMdmvyE0i2cD06BY5djg14c792zSrrzh93hJHmdXiCbN+n1G6TY6aorRkDD5DWkW6pWJaGLIGpVrKquPismd5dYVXLetNT64FWnT6/JTxaExRaVw5wo4M+4cjQpfJOrB3MOHs8ks2i8xsNuG9B/dp/VPqSSAtK2xdce/h93n6/C95dXpKXUaqaky/9qhCM9u/T1ltJBpk/CGdfzlsiG52XDf1X+96/2Nkv5gTKWeuLq5YbXqMVsxGjroS5HXvPWjF+dk59agmKUMfEm3X77wq19f/t4q1FMlsJadv/1w7kptSlIXsUfq+x1rLum3EcjBM2Aziq5S90pY+Js0h+X7yvd90+aHrWgpnmM8XHOzNMKaUeJgbHlvMsmweZWwbQqAPPabXkDXWOSJ5B6IAdmCP6wWgGTzTrTbEouRl19L5hvcO95kYmKJZYdgYxTJHesVOStu2EqS83mwIA4xCacV6s6Ys5TWWowk6ZTZNRxMj1eEeZeWotIWmF7+M0WhnyNagTaSMzxm1gQ//f+2d6Y9k13nef2e7S1VXV68zw1k4Q4qUFDtAYEOIEVs2ggAB8jFA/lobSAIYoCJACWRRkSyJQ4rULOT0TE9313aXs+XDe6u6ycgS3PQ33wfoacxgUF1969xzz/u+zzI/4QeP/h0ZeLW54E235DeTPe54RVnU2KISJkPXELp2RxO9DX7+859xeHDCvXfe4fj4gMnk2ohjG7yc0s2g3m8UGlqmF5nM/sE+xkpRu1gsKMty5wB4cxoafeDf/PW/5/mPfsT6i+d4ZVhXJUlnfNdz9ovfUiw9OmeqJEZm3aJFnV3SNj2bO/vk847TrqJdbjibF9x9/zGVMbx59ob5yYnQ+ofCwhjDdDplvV5/rWj6fQXUTUOO28IVBSG0os2LMh3bTp5EM2eH5rrCaDsUJDfplSJHyAwTIe9RO3dIcK4gBKHqbu/7rQmFUkKPTCmRUxbTqzzoKHOiKORsroYzQQpD7h1Sn4hL5nA2UWLupo0e7qdt5SSN/aQiWMtm01BYN7w/+R1tcaM0yiL98H+k6P+DxZSppyhtCENSfQhpOEgIlSMNh6gQh3C54abfNJHlYk23WaNUwhaOnGqMs5AV1hZU9RTrJpiiwlYVMUNsO5pmBeevsLZAxUA2moCmKmtUDtSTismklm40PaGLNF1L9AHvA8ZYTk9PcYXDoolZwjdzygMf0xOTJE1LEjVih24MCYUPcpiOwQ+25ZmYo3Q9tCyesrz9htq1PeulcEKPDxTrpqfpoEe6ZyqKHiynTNbb0DLIQRO1Zh3gsg8oZbjvHAU9SWkwlrch8jIFjm3FvDRU2e/89782Vt09GBPBa64uEgdHBSmD0muMzayXmcWiJwSFso10l6KXTRyDTY6Lly3pqMeqtWzKfWa1sASmxLS1LBVqKGxv9MQ2bDAG6fg0TbPrkt0GWWVxxVEGbYQCqpWR6dfQXclWoZWj7QrR10QJLbSpxZitAUZGKYMxClNYEUsajVUJxZCdMBgcJBLGGbSdkMhCQb1xCMBYjDXifpc6dM4YN6VUgY01pMkBOokbk04BnZ1Y0rqSbDRGFyjvhS9shF4lCyFRupIcJePJWUeyhZjn2RKzbyhLR3s2obu6uvU1BXi57snRY5UWqp9VFHZwuBx4d4qE8oMZRRIaK0oscmPMoMFZ2XB771EM9NIc0XlLrWT45WR/MUauG1nykhSgoySlF4VDK433kU0f6PuIKzRlVcjazAk7dJHEOjVKU0FlrN4G8SVylANTUlsTHZl2aa1xKmNJ9DnhQyTERPaKITXjWzlPGm0wViHnS6E0xdCxX9Q0R3dpusCrs3PWy9XA076mR0AezCAi0S959OBDLq8O+eTpp1xdvcUqCVJX2sJwIFMWGr+hTz3oDX/ypx9w/vqSf/zlL2nbmyGk0pmLMZIipBA5//IZf/FnT/jw/b/h6Wdf8rOf/YK2b2D7cBv+zCqglSL4hnbxmv/wl3/O2fmGz3/7jLNXT2XqPPDarzn98uB8u1jwwfce85//01/d+po6e0RUV2yaK3To6EKB1UeE1LBqVpTFhL29E4L3xFDSX0EOAT2p8LFn8fYVs9mMoqyweGpXcHA04+2ipaxntMuCq1XD6SRRTRS2cJDmuKKh71qsm0IucbbGKcej7xzgKAm25dOnn/Pg9AFNt2H/aEZZT1DrK0KGrslDlIFnb1KyPzvkeG54/N5DNsszfvrxr4iXJTFNOX/+iuPTu0zKPY73A83mnEjCkKknDt+/4mh2SlgvuDjrUHXCTm/vknZzEnUzMPfmlGqLbcxI13VcXl6hyFT2kLIo6H2ACNZNuLy84uhoxuWykTBZ0k7z8LVA3hvF281//30HxZQzTdPz5ZevcIWhLIthDSvKqtpNmoqi2Omit6/1TeritSZMCi0LTDWEGNlsLlEK9ia3p/jLYVyoUHJdzUCRTvS9x+iBmr7dm27QGr95zXfnAiNFTTSGt6Enr5eclhPeKack1RBSoIiJEDzrgfkSh4bq9jps35tMdKTlZIzCBTnpWePQ7RlZRzyJrE+w5T60L5gamBY1M6c4qg54tH+Hw3rOXjmliz2VKai04/sXr5keP8S5Ct+sRC/VNwOt8/aN1N99/pSr+YI3FxfMD+Y8ee995vM96sIMBfe18/rNa7gtwklKzMmSp1lH2WvLercWlsslTdPgnGM6nUrx61siiu/9t//K3/7t3+2meqXTxN6jly2zxlOqhDGKkCVmw7iSaetxb1a8iXLvTnXB3skdJtMJvm0JTcd0f4bS16wkYwzL5ZLLy8tdkb3dR29+fdMk5raIiDwho8UoZdsA1RK9Y4yTvDYCWDtQ4SM5+WFChRTbIUrGK1lihnJEm0Lc/LRkpJqcSLALck8pkXwnhaRKJB9ICnL0RN+jjR002GJbbox4HEjjKBFCR+w2KFOQEoPmOZCTl2Z+lozHEHqcMhB6jM6oHGl9C0aTQxgkAEMuolGgQf8R85k/WExpbWhCJASh5cgdniR0Mkes0TuzA98No/kEpIixUFQyHg95GLOiMNZRTSaUkwllVeOKQqxNQ2D5dsFicc7m4gxnRJRZF5VYrivJM4rGkknoLAFnbduKw4nSQkucTHjw4AHRR5rlJcpanLMi8NcW0UFAMVyXGCOxj0TjiYBWFm1FJ7YNtYOBzxnFLtOY8tYLdeU1i8ahTeTJaUlVK56/bMi5loyevKZUmaR7MiLkzoAl00bFRdthDRxZQ61l4VuV2NeKNhvWQfG6j1K0Tixd7rFIlhUxDxaTQ2Bc8uQEq4tI7jqqfQvW0K4Tl5cdbWtE7J8aCdaLYhmprManBtUHWBlWbUvjPbPZDIWXUEQFDK5n4tAk+pqsIkpLt6PtPetmQ7vpSd+CkVYUhXS7lTycrXE7Xq4noUxAG+hSxaJLgKcyCqs0ZlJjjeR5OGeu+bsy8x0KzEHPkwaSx9ZyVlr5g4tM3npCCaE3riGJ7Sa2FM6vtjgVCM2KeHiftLlE1QUEBYXFTKboekr2PXRextVGoSqHceLgR0zExYrcB7CKbBVZBXJQ5FKhLOSkqY7mw2dwe7SJYWPMBDKllqmQI2PMdZdUxu1DPZXADTQeckIpT2EVWjsKI6+XkUkVcchwshqjzddoNFoJp9kZi1EyaXKFoawtKit6kwnRABFrlBzMlBKx6PaAtHtQiwGG0UIFURliSKSsiBiCUkTvCT5iBjpjYTS2SqSkCcPhJivZC+y30KJpBSqKIYPGYSzcuXvMq7NLnj79AqXh8OSIk6ND3r45Z7NZD/l2abferNXcu3efzz77khcvzzi5e5fZ4QFvvnxJ9J4+gNJDce89XsOsPmQ62eMXv3jKpus4unuXxeUVl28v5dBB3ImvwZBNxJUFIZZ89L/+L9PpBFfVNO1q2PEZHjbD35Qm6URRl7z66ornL9/QrNfkLA9DcVET0xuxMBEqptKZlAOf/Pq3t76mylp8F7H2AB062lizf3iMMmtKt0f0jnUTSblHuym6qLFVT1laVOqZHRyitWLTvqaYes4/eUnR3Ofg4A59a0DB7HiC0z39piW0mRRLlAlcrSO2KGi6RGk65gc1KffYek4fVnzw5F361RGrfsNys8B7R7deM5kfUFczYnQ4F9GqQ+fAwX5Nv17wq3/8qbg7qpqLxVsO77xLoRytrrHVGr05oFl1aB3QuebB6RPW568pS0c5neLJfLV5dutrCnytcNoWVNbaGzqGwdBBAcg9XJeO46MjDJH1ei00NSOxECEGfN/TqfVAwRG2xDeLpGu75escoJsUre17yQM9OPQ9vmswZkLXejGQsppNt6bURvYPEiAumIobLoWwOyzq3QFUTFnkS+5Z2bWyHKxufT3FMTTGmzlamb4PpJiZzcrBCt3jtTR1FeKWur06iht6Nq2ZJAk7T9agbM0mwlsf8X7B1WbFBuhyps1b/Y2EsG/36y3TZKtzBCXuvTFhs6bvejqneTzXfPfkmKbvWPUBZxa4ukZruDM95O70WD5/V2K1E9lAHnImUdiUKF1FPTskxp7gvbTkkzA/bot2vaJrNpxdvOD46D7eR8q64PTkmDtHx+zv71MUatC+hN1a29lyR1mn56+/4uUnn/GDH/6Qd95993rqiazHpml2gbnaiEbs0fe/z59drfn0s1+BSmidoQuomChDT1aKTVmxmU9w8ynKVsSuQ68a0rSkXXsmOWKXS9qjGdMSJqczqpNDYXSoazrrixcv5Gd/Q8d48zvwL1JMbQ0ZlBqacn0vkpGhGRCDTIKUtpCzhEanQN9shjgeBQOlLkVpZmp1bS4BQvXPSXh22oqzXg5yfnNDHEDfteToMXVNv45s7detM2jrRB4SA9oYYTllyY8SXguYogCr8aGl7yWM2hVydtdKiblVTCRnSF7er7MWUw1nmy39T2s2TSOskj+AP2yNnhW9j6Suw9ywBs4a6T4zPCQjhAQ5JEKWDWNal7RJgjSjNWQ9YTqdUU9n2MJS1GJyoHJmb39KNZ2ymM+wX2auLt5SKostKoyrSCHSNg2+W+OsIRpHlzxd09J3nfAgK0dRTTm9d8rjJ4/RVuP7huwj3lvqyRxtnDz0g4jcc86D1bsmZ0mjTjqTo/jZW2WHQxmD8G/bRbv1OuXegeagsITo0fmCaloxncBqLRSmpBIxFYSQKXSWB4NSRJ1ZeE8gMa8sNgX8ECSYU8KowLErMCFw5QNnqUHbCTYN+TgZVNKobUFAlodhzhAz3Sri+yDCbGshDra0OeNjFFfEbAmhG3IGvASoek2INX1fc3lREqIiaS05WgPNSIwuAilHcjKsF5bkDat1z6axbC4Msb29jXfOmaqwQzdBpiJbbZc2Cm0z2gSCr1FFxcwqpslQYLFOXGm0kg6r0moYWwsnXQqGIHoeJRQvTRr6CnEoppzcwMNnlaJsLjoinY6sUE7WnjOWstsQ7j0mXu6j/ULMLowid5HsE3lSoqYlOkXoegiRZIefXViMmZFevxVrUCrQQ8aSYTCHKMna4NLtdWgA0+F9OaOpC0VZKkpnsIO+MEVF9KCsGTRekLPCWdE5pCiZbs4pisJBtqQIvQ90fYLE0DQR576sNX7IVdNkSqcpC0uhrWgGnMIW8ppm2OhFCDvkUeVBgwnyuQwPTGMNRjnSoNsLGZJRhCAZKnFw/clWDxkTAx1AyWeetYKshwMZOwrhbbDrTGuFKRXvPnpISvCbp0/leoXM2Zcvqas9ju/cYbo34/z1GTkHjIaD4zn3H9zn4uyCs7NXJBKvnj9jtnfA/XeesFq95eriAq2TrGkF7z25w4fvf8Dnn3/B2zdvCCnTrNacnJzw8OEjXr58SdflQQivKUrNd7/7PvsHB/zkpx/z+qsLqtLx6N37nJw+4u3FGSl0yLRZQTYUE8t733lC5Up+/vGv6WPPwf4ex0dHXC1W+LZDKTsUtxGFYW9a8+F33+fqquWX36KYCqkh9oainmHLY6alw5ZKQnajZm9ywMXFFdpqtKoJKFSGoizoNg31/j45J4z2TOaPOHlosEXPdHpKmzQhb2jDms4o+rXBp8Rkb03qOiYTR9MuKCoJd+3WkHNDbS/xGw/NnHI/clBZbFFgbc209BTasN4sqAphecTQsG5fEr7aJ/ksU742Ee0FKsGbl885mx+yPy+Zzk/ZtBeoRU+3VByczOkbjy3uEVXCVB6boNTfPmfq5uRmix3ljzxQScVqO8ZIVRZM6grfbeh7YYuU04o3Fxe4osAOAZ5bY5dv6rG2P/fmYXb793/KpawqCx4+uM9q07BYrkFljDKURcFeWZJCoNmkG9P064PmoG792nvYFlBKNjQxv1SSk5i+xb2vhsOxuLKF699PK4qy2DmRbrcf0XXfsJEeXmRnAY6iTB4dDW0CVVQ4Y+hT4k1uibOaLibaGPEx4bzM1pXmuiGSYWcNP7xuWZQkPQQcG0OXEm+85s/LKXenxzgtEo/LbkUiczI5pHYShuu0pY+Bznc0g+vgrKyZlBOKcoItaoyqiFevRWMTPEU5ufU1rQotkyXvWbx+hl++Ye/gkPXyHou3l5zcucvpnSPmezOMHqaRWqZR0fd88tOPeb1aUZSO8Oqcn/z9R/zVf6mZHx6xN53uMrmMkUZr0zQSLpsT9XSPv/nrv6RtXvP2qzckH9msmqFhnXh155hweEzwLebVErpIXxYUJ4cYNN6/Rreeg3XHm01DVRQcPn6ALkt0VkM9da2H2hZJuyidfG3Z/ftcDG8Lpbf3mxoanxHrLDkEYgiE4EkxUGhL8IM7ZhIafxsCdT0RUY2ztOtOzH2ysB2SkrWssjTBMzKkUUmkIb7vRbaghZ0ThumQMQ5rojj+DQwray1qMIxQWqOT5Eb23lPokqIsMMYSQ7vLrIohoAYX9zSEZLvK0W5k+qiG+0B+f0eIEWMkwPePXdI/4uYXUX3ADMYBIHa9CoUr3dCEz8QMHZnYe1L2MtLUmqZdQs4UylBO95juz3DTCdqImLIuK/ZnFX/ypx9SVVP+90/+gfOUOJjtY62TQ1e7ZL14izaKvm9FQ2Ids9JgrMPEJBkCZcl0f4/3P3yPg8NjrKvIxQRSwDhLxhIicuiz4tCnjdgEp5RBmaF4UELxM1qoW4jWwpitG2AkfgsB+u+eL5hOp3Rdz9XCczDfw5qSnANZRcgBckWKhojQY5RSNMqyzhH0thN/s0MhNKVCtRwXmc57Lm3mbYgcY8g5sB0Zb3nnW5dABvqQUDgkuDRnObACNwTICaUTGsnGyEHTKEPWlRRMhUabChMVNvdoK0Wb1lZEgDriQ0NMPe1a07fQ9tC1jugNXXf7TBRrNM4N9pU5g1ai9YkQc5A1oDdYe8S0rtjXPWWbIUVSUCiTxPnOatRAP8vWkhUoY1DZomIYNHM9xB7ttoHIiTwE1KooXGLlIDe96ARtBVaTjRW3PZWZWkVbToh3HhNefMLEZrIKpMUaVRWwVxO1vAdTWBg2Z7EiB/Ym6MU5eCArUvBgEpoKnBTCxtXYqrj1NQWYFBaSFFCllaLHGY1VcojSyklYrs64Qg/Tliw26Blx/VR6d3gyTkxfsjKkXOycmCRXauCHoyHLVGXLF8dsneGk2OhDpo/s6Jw6a/CDC1eOkjllDNoMNBoMuki4UoMXK+42Ztou0TVgrGU6KdAEyJbYRzGrSNscly03aBDbxttPpu49fMDZ85ccHkx49O5jnv3uFVeLS6GXKLEuJio27Ybu88842N/j3r0T1usV7733Ps2q47PffErfS4GvNRAj68UF6+WS+ck+D959zKeffsI79w/58Hvf56vn5/z4x/+As3ownpFJ+1dfvmJaT/jwg+/xyadP6XzD++/d4/T4AZ9/8YyPP/o/hJCxWaYKr89eMJvNefzkCS9efEG36UDDw3fvcP/eI7744hlvXp/tKInnFxdUdcHDR3d59fwr1hsZPxun+ODDx9Run09//RlXmwYfbq/vK1Okz5bCVfjgWC6WHE1L0TWiQHmcq+iiR6ueTb/haHKAdQ6V5xSqwPsNTbeiWwdOTh7TqAuWyxU2KzbNBVFXrALMpyekVU9RZbTL1BT4XvH69XOM9WIU4wtMWtJET+FOWVxdcvfOEzwzcrGHqzVlAT6uSH0Em1guLzGFZrXuKG2FK2uOjx9yuczcvev41a/f8tGPPuKH//EvKIope5PAfNpy9Vq6tc0mMds/IMc12jdYo5ioO7e+pnA9jdpOgW5Oh0KM9MEPgbKZEOQ5fPfuXdqmoWlarDUURUkbI5tmQ1VVaKP/v4PfFv/UAfDrDl/X3febkyvnHH1/Rdd17O1NmdU1NjMcxK6dz7RSO43OtmC7pvfx9e/DOtZq+565UYb987F1GfND2C7IwVUpCQpV9Ez3HM5Z+hDEfW6g3m2Lz51pghJtaa/1QJ03TJ1QrlJW6GKO8p5JTNi+p+mb4TMd2CbDNYhCUh8O50ns1o2R56DWJJcJqufcO1SSAq9Pnk1o6XNkz9UU2kk+IApnCnyK9DHShB6rNXM3xSote2lKBN/i2zW97zBOtMW3xfF8TvCetu/wCbzvuDw/4/LygvXJXbJStH3L5uCIg7nkSuUgWvnLl89Z/+xjlC64mk+YLVuW6xf86L//D/7tD37Ae9/5DmUpk4wQwuBALPrq5WZBEzpOjo5578n7/Px//pi42JB9Ztr19DHhtWY6K1k9uyR/dUVfFLgPH2L2JnTPnsmEJ2tc8NB3dJ0VXTCKmCMqKmGf3Fj32+/f/Prm//k29ug5Z/q+o66laNa79aaxZTlQZzMpeCKKalLRtxtS7CArQnDCJrNWjGW6nqLSKO/BaGIIlKUYfgw+RRITYw0peoxzw9lcGi1GW/okhnhqF+4r939V1bvhQM5ZmFPD7xG8JLVvGzHOiszIt51kYO4ozLIuc4jEnHdZbMY4QHLdYu/5Y71p9S9lpzhixIgRI0aMGDFixIgR/5rw7dK9RowYMWLEiBEjRowYMeJfKcZiasSIESNGjBgxYsSIESNugbGYGjFixIgRI0aMGDFixIhbYCymRowYMWLEiBEjRowYMeIWGIupESNGjBgxYsSIESNGjLgFxmJqxIgRI0aMGDFixIgRI26B/wfH4dh7F2hu4gAAAABJRU5ErkJggg==",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "for x,y in ds_train:\n",
+ " print(f\"Training batch shape: features={x.shape}, labels={y.shape}\")\n",
+ " x_sample, y_sample = x,y\n",
+ " break\n",
+ " \n",
+ "display_dataset(x_sample.numpy().astype(np.int),np.expand_dims(y_sample,1),classes=ds_train.class_names)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "> **ಗಮನಿಸಿ**: ಡೇಟಾಸೆಟ್ನಲ್ಲಿನ ಎಲ್ಲಾ ಚಿತ್ರಗಳು 0-255 ಪರಿಧಿಯ ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಟೆನ್ಸರ್ಗಳಾಗಿ ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತವೆ. ಅವುಗಳನ್ನು ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗೆ ಕಳುಹಿಸುವ ಮುನ್ನ, ಆ ಮೌಲ್ಯಗಳನ್ನು 0-1 ಪರಿಧಿಗೆ ಪರಿಮಾಪಿಸಬೇಕಾಗುತ್ತದೆ. ಚಿತ್ರಗಳನ್ನು ರೇಖಾಚಿತ್ರ ಮಾಡುತ್ತಿರುವಾಗ, ಅದೇ ರೀತಿಯೇ ಮಾಡಬೇಕಾಗುತ್ತದೆ ಅಥವಾ ಮೌಲ್ಯಗಳನ್ನು `int` ಪ್ರಕಾರಕ್ಕೆ ಪರಿವರ್ತಿಸಬೇಕಾಗುತ್ತದೆ (ಮೇಲಿನ ಕೋಡ್ಗೆ ನಾವು ಮಾಡುತ್ತಿರುವಂತೆ), ಮೂಲ ಅಣಗು ಮಾಡದ ಚಿತ್ರವನ್ನು `matplotlib`ಗೆ ತೋರಿಸಲು. \n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## ಪೂರ್ವ-ಶಿಕ್ಷಿತ ಮಾದರಿಗಳು\n",
+ "\n",
+ "ಅನೇಕ ಚಿತ್ರ ವರ್ಗೀಕರಣ ಕೆಲಸಗಳಿಗೆ ವ್ಯಕ್ತಿಸುವ ಪೂರ್ವ-ಶಿಕ್ಷಿತ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಮಾದರಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯಬಹುದು. ಆಮದ್ಯಾದ ಮಾದರಿಗಳ ನಾನೂ ಆದವುಗಳು `keras.applications` ಹೆಸರುಸ್ಥಳದಲ್ಲಿ ಲಭ್ಯವಿದ್ದು, ಇನ್ನೂ ಹೆಚ್ಚಿನ ಮಾದರಿಗಳನ್ನು ಇಂಟರ್ನೆಟ್ನಲ್ಲಿ ಕಾಣಬಹುದು. ಸರಳವಾದ VGG-16 ಮಾದರಿಯನ್ನು ಹೇಗೆ ಲೋಡ್ ಮಾಡಿ ಬಳಸುವುದು ನೋಡೋಣ:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels.h5\n",
+ "553467904/553467096 [==============================] - 6s 0us/step\n",
+ "Most probable class = [208]\n",
+ "Downloading data from https://storage.googleapis.com/download.tensorflow.org/data/imagenet_class_index.json\n",
+ "40960/35363 [==================================] - 0s 0us/step\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "[[('n02099712', 'Labrador_retriever', 0.5340957),\n",
+ " ('n02100236', 'German_short-haired_pointer', 0.0939442),\n",
+ " ('n02092339', 'Weimaraner', 0.08160535),\n",
+ " ('n02099849', 'Chesapeake_Bay_retriever', 0.057179328),\n",
+ " ('n02109047', 'Great_Dane', 0.03733857)]]"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# SHA-256 of VGG16 weights (with top)\n",
+ "VGG16_WEIGHTS_SHA256 = '64373286793e3c8b2b4e3219cbf3544bce2f55ab4682710a29f5e7af8f5e4f61'\n",
+ "\n",
+ "_weights_path = keras.utils.get_file(\n",
+ " 'vgg16_weights_tf_dim_ordering_tf_kernels.h5',\n",
+ " 'https://storage.googleapis.com/tensorflow/keras-applications/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels.h5',\n",
+ " file_hash=VGG16_WEIGHTS_SHA256,\n",
+ " hash_algorithm='sha256',\n",
+ ")\n",
+ "\n",
+ "vgg = keras.applications.VGG16(weights=_weights_path)\n",
+ "inp = keras.applications.vgg16.preprocess_input(x_sample[:1])\n",
+ "\n",
+ "res = vgg(inp)\n",
+ "print(f\"Most probable class = {tf.argmax(res,1)}\")\n",
+ "\n",
+ "keras.applications.vgg16.decode_predictions(res.numpy())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ಇಲ್ಲಿ ಕೆಲವು ಪ್ರಮುಖ ಸಂಗತಿಗಳಿವೆ:\n",
+ "* ಯಾವುದೇ ಪೂರ್ವ-ತಯಾರಿಸಿದ ನೆಟ್ವರ್ಕ್ಗೆ ಇನ್ಪುಟ್ನ್ನು ಒದಗಿಸುವ ಮೊದಲು ಅದನ್ನು ನಿರ್ದಿಷ್ಟ ರೀತಿಯಲ್ಲಿ ಪ್ರಿ-ಪ್ರೊಸೆಸಿಂಗ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಇದನ್ನು ಸಂಬಂಧಿಸಿದ `preprocess_input` ಫಂಕ್ಷನ್ ಅನ್ನು ಕರೆಮಾಡಿ ಮಾಡುತ್ತಾರೆ, ಇದು ಚಿತ್ರಗಳ ಬ್ಯಾಚ್ ಅನ್ನು ಸ್ವೀಕರಿಸಿ ಅವುಗಳ ಪ್ರೊಸೆಸ್ಡ್ ರೂಪವನ್ನು ನೀಡುತ್ತದೆ. VGG-16 ಸಂದರ್ಭದಲ್ಲಿ, ಚಿತ್ರಗಳನ್ನು ಸಾಮಾನ್ಯೀಕರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ಚಾನೆಲ್ಗಾಗಿ ಕೆಲವು ಪೂರ್ವನಿರ್ದಿಷ್ಟ ಸರಾಸರಿ ಮೌಲ್ಯವನ್ನು ಕಡಿತ ಮಾಡಲಾಗುತ್ತದೆ. ಏಕೆಂದರೆ VGG-16 ಮೂಲತಃ ಇಂತಹ ಪ್ರಿ-ಪ್ರೊಸೆಸಿಂಗ್ ಜೊತೆ ತರಬೇತಿ ಪಡೆದಿತ್ತು.\n",
+ "* ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಇನ್ಪುಟ್ ಬ್ಯಾಚ್ಗೆ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಫಲಿತಾಂಶವಾಗಿ 1000-ಅಂಶದ ಟೆನ್ಸರ್ಗಳ ಬ್ಯಾಚ್ ಸಿಗುತ್ತದೆ, ಇದು ಪ್ರತಿ ವರ್ಗದ ಸಾಧ್ಯತೆಯನ್ನು ತೋರಿಸುತ್ತದೆ. ನಾವು ಈ ಟೆನ್ಸರ್ನಲ್ಲಿ `argmax` ಅನ್ನು ಕರೆಮಾಡಿ ಅತ್ಯಂತ ಸಂಭವನೀಯ ವರ್ಗ ಸಂಖ್ಯೆಯನ್ನು ಕಂಡುಹಿಡಿಯಬಹುದು.\n",
+ "* ಪಡೆದ ಫಲಿತಾಂಶವು ಒಂದು [ `ImageNet` ವರ್ಗದ ಸಂಖ್ಯೆ](https://gist.github.com/yrevar/942d3a0ac09ec9e5eb3a) ಆಗಿದೆ. ಈ ಫಲಿತಾಂಶಕ್ಕೆ ಅರ್ಥ ನೀಡಲು, ನಾವು `decode_predictions` ಫಂಕ್ಷನ್ ಅನ್ನು ಬಳಸಿ ಬಹುಮಾನ n ವರ್ಗಗಳನ್ನು ಅವುಗಳ ಹೆಸರೊಂದಿಗೆ ವಾಪಸಾಗಿಸಬಹುದು.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ನಾವು VGG-16 ಜಾಲದ ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ಸಹ ನೋಡುೋಣ: \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Model: \"vgg16\"\n",
+ "_________________________________________________________________\n",
+ "Layer (type) Output Shape Param # \n",
+ "=================================================================\n",
+ "input_1 (InputLayer) [(None, 224, 224, 3)] 0 \n",
+ "_________________________________________________________________\n",
+ "block1_conv1 (Conv2D) (None, 224, 224, 64) 1792 \n",
+ "_________________________________________________________________\n",
+ "block1_conv2 (Conv2D) (None, 224, 224, 64) 36928 \n",
+ "_________________________________________________________________\n",
+ "block1_pool (MaxPooling2D) (None, 112, 112, 64) 0 \n",
+ "_________________________________________________________________\n",
+ "block2_conv1 (Conv2D) (None, 112, 112, 128) 73856 \n",
+ "_________________________________________________________________\n",
+ "block2_conv2 (Conv2D) (None, 112, 112, 128) 147584 \n",
+ "_________________________________________________________________\n",
+ "block2_pool (MaxPooling2D) (None, 56, 56, 128) 0 \n",
+ "_________________________________________________________________\n",
+ "block3_conv1 (Conv2D) (None, 56, 56, 256) 295168 \n",
+ "_________________________________________________________________\n",
+ "block3_conv2 (Conv2D) (None, 56, 56, 256) 590080 \n",
+ "_________________________________________________________________\n",
+ "block3_conv3 (Conv2D) (None, 56, 56, 256) 590080 \n",
+ "_________________________________________________________________\n",
+ "block3_pool (MaxPooling2D) (None, 28, 28, 256) 0 \n",
+ "_________________________________________________________________\n",
+ "block4_conv1 (Conv2D) (None, 28, 28, 512) 1180160 \n",
+ "_________________________________________________________________\n",
+ "block4_conv2 (Conv2D) (None, 28, 28, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block4_conv3 (Conv2D) (None, 28, 28, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block4_pool (MaxPooling2D) (None, 14, 14, 512) 0 \n",
+ "_________________________________________________________________\n",
+ "block5_conv1 (Conv2D) (None, 14, 14, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block5_conv2 (Conv2D) (None, 14, 14, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block5_conv3 (Conv2D) (None, 14, 14, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block5_pool (MaxPooling2D) (None, 7, 7, 512) 0 \n",
+ "_________________________________________________________________\n",
+ "flatten (Flatten) (None, 25088) 0 \n",
+ "_________________________________________________________________\n",
+ "fc1 (Dense) (None, 4096) 102764544 \n",
+ "_________________________________________________________________\n",
+ "fc2 (Dense) (None, 4096) 16781312 \n",
+ "_________________________________________________________________\n",
+ "predictions (Dense) (None, 1000) 4097000 \n",
+ "=================================================================\n",
+ "Total params: 138,357,544\n",
+ "Trainable params: 138,357,544\n",
+ "Non-trainable params: 0\n",
+ "_________________________________________________________________\n"
+ ]
+ }
+ ],
+ "source": [
+ "vgg.summary()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## ಜಿಪಿಯು ಲೆಕ್ಕಾಚಾರಗಳು\n",
+ "\n",
+ "VGG-16 ಮತ್ತು ಇತರ ಆಧುನಿಕ ವಿನ್ಯಾಸಗಳಂತಹ ಆಳವಾದ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸಾಕಷ್ಟು ಗಣನಾ ಶಕ್ತಿ ಅಗತ್ಯವಿದೆ. ಲಭ್ಯವಿದ್ದಲ್ಲಿ ಜಿಪಿಯು ವೇಗವರ್ಧನೆಯನ್ನು ಬಳಸುವುದು ಅರ್ಥಪೂರ್ಣ. ಸುಲಭವಾಗಿ, ಕೆರಾಸ್ ಲಭ್ಯವಿದ್ದರೆ ಜಿಪಿಯುನಲ್ಲಿ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ವೇಗಗೊಳಿಸುತ್ತದೆ. ಟೆನ್ಸರ್ಫ್ಲೋ ಜಿಪಿಯುವನ್ನು ಬಳಸಬಹುದೇ ಎಂದು ಪರಿಶೀಲಿಸಲು ಕೆಳಗಿನ ಕೋಡ್ ಬಳಸಬಹುದು:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tf.config.list_physical_devices('GPU')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "## VGG ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಹೊರತೆಗೆಯುವಿಕೆ\n",
+ "\n",
+ "ನಾವು ನಾವು ಚಿತ್ರಗಳಿಂದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಹೊರತೆಗೆಯಲು VGG-16 ಬಳಸಬೇಕಿದ್ದರೆ, ಕೊನೆ ವರ್ಗೀಕರಣ ಪದರಗಳಿಲ್ಲದೇ ಮಾಡೆಲ್ ಬೇಕಾಗುತ್ತದೆ. ನಾವು ತಲೆ ಪದರಗಳಿಲ್ಲದೆ VGG-16 ಮಾಡೆಲ್ ಅನ್ನು ಈ ಕೋಡ್ ಬಳಸಿ ನಿರ್ಮಿಸಬಹುದು:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Shape after applying VGG-16: (7, 7, 512)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "vgg = keras.applications.VGG16(include_top=False)\n",
+ "\n",
+ "inp = keras.applications.vgg16.preprocess_input(x_sample[:1])\n",
+ "res = vgg(inp)\n",
+ "print(f\"Shape after applying VGG-16: {res[0].shape}\")\n",
+ "plt.figure(figsize=(15,3))\n",
+ "plt.imshow(res[0].numpy().reshape(-1,512))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ಫೀಚರ್ ಟೆನ್ಸರ್ನ ಆಯಾಮ 7x7x512 ಆಗಿದೆ, ಆದರೆ ಅದನ್ನು ದೃಶ್ಯೀಕರಿಸಲು ನಾವು ಅದನ್ನು 2ಡಿ ಸ್ವರೂಪಕ್ಕೆ ಮರುರೂಪಿಸಬೇಕಾಗಿತ್ತು.\n",
+ "\n",
+ "ಈಗ ಆ ಫೀಚರ್ಗಳನ್ನು ಚಿತ್ರಗಳನ್ನು ವರ್ಗೀಕರಿಸಲು ಬಳಸಬಹುದೋ ನೋಡೋಣ. ಕೈಯಿಂದ ಕೆಲವು ಚಿತ್ರ ಭಾಗಗಳನ್ನು (ನಮ್ಮ ಪ್ರಕರಣದಲ್ಲಿ 50 ಮಿನಿಬ್ಯಾಚ್ಗಳನ್ನು) ತೆಗೆದು ಅವುಗಳ ಫೀಚರ್ ವೆಕ್ಟರ್ಗಳನ್ನು ಪೂರ್ವಗಣನೆ ಮಾಡೋಣ. ಇದಕ್ಕಾಗಿ Tensorflow **dataset** API ಅನ್ನು ನಾವು ಬಳಸಬಹುದು. `map` ಫಂಕ್ಷನ್ ಒಂದು ಡೇಟಾಸೆಟ್ ಅನ್ನು ತೆಗೆದು ನೀಡಲಾದ ಲ್ಯಾಂಬ್ಡಾ-ಫಂಕ್ಷನನ್ನು ಅವನಾಯಕರಾಗಿ ಶೋಧಿಸಿದಂತೆ ಅನ್ವಯಿಸುತ್ತದೆ. ನಾವು ಈ ರೀತಿ ಮೂಲ ಚಿತ್ರಗಳ ಬದಲು VGGನಿಂದ ಪಡೆದ ಫೀಚರ್ಗಳನ್ನು ಹೊಂದಿರುವ ಹೊಸ ಡೇಟಾಸೆಟ್ಗಳು `ds_features_train` ಮತ್ತು `ds_features_test` ರಚಿಸುತ್ತೇವೆ.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(64, 7, 7, 512) (64,)\n"
+ ]
+ }
+ ],
+ "source": [
+ "num = batch_size*50\n",
+ "ds_features_train = ds_train.take(50).map(lambda x,y : (vgg(x),y))\n",
+ "ds_features_test = ds_test.take(10).map(lambda x,y : (vgg(x),y))\n",
+ "\n",
+ "for x,y in ds_features_train:\n",
+ " print(x.shape,y.shape)\n",
+ " break"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ನಾವು ನಮ್ಮ ಪ್ರದರ್ಶನವನ್ನು ವೇಗವಾಗಿ ಮಾಡಲು ಡೇಟಾಸೆಟ್ ಗಾತ್ರವನ್ನು ಮಿತಿಗೊಳಿಸಲು `.take(50)` ನಿರ್ಮಾಣವನ್ನು ಬಳಿಸಿದೆವು. ನೀವು ನಿಶ್ಚಿತವಾಗಿಯೂ ಈ ಪ್ರಯೋಗವನ್ನು ಸಂಪೂರ್ಣ ಡೇಟಾಸೆಟ್ ನಲ್ಲಿ ನಡೆಸಬಹುದು.\n",
+ "\n",
+ "ಈಗ ನಮಗೆ ಗುಡಿಸುವ ವೈಶಿಷ್ಟ್ಯಗಳೊಂದಿಗೆ ಡೇಟಾಸೆಟ್ ಇದ್ದುದರಿಂದ, ನಾವು ಬೆಕ್ಕು ಮತ್ತು ನಾಯಿಗಳನ್ನು ವ್ಯತ್ಯಾಸಗೊಳಿಸಲು ಸರಳ ದಟ್ಟ ತರಗತಿಕೋರಿಯನ್ನು ತರಬೇಹಿಸಲು ಸಾಧ್ಯವಾಗಿದೆ. ಈ ನೆಟ್ವರ್ಕ್ (7,7,512) ಆಕಾರದ ವೈಶಿಷ್ಟ್ಯ ವೆಕ್ಟರ್ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಒಂದು ಔಟ್ಪುಟ್ ಅನ್ನು ಉತ್ಪತ್ತಿ ಮಾಡುತ್ತದೆ ಅದು ನಾಯಿಗೆ ಅಥವಾ ಬೆಕ್ಕಿಗೆ ಹೊಂದಿರುತ್ತದೆ. ಇದೊಂದು ದ್ವಿ-ವರ್ಗ ವರ್ಗೀಕರಣವಾಗಿರುವುದರಿಂದ, ನಾವು `sigmoid` ಸಕ್ರಿಯತೆ ಕಾರ್ಯ ಮತ್ತು `binary_crossentropy` ನಷ್ಟವನ್ನು ಬಳಸುತ್ತೇವೆ.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "50/50 [==============================] - 1896s 38s/step - loss: 1.4845 - acc: 0.9144 - val_loss: 0.7220 - val_acc: 0.9516\n"
+ ]
+ }
+ ],
+ "source": [
+ "model = keras.models.Sequential([\n",
+ " keras.layers.Flatten(input_shape=(7,7,512)),\n",
+ " keras.layers.Dense(1,activation='sigmoid')\n",
+ "])\n",
+ "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])\n",
+ "hist = model.fit(ds_features_train, validation_data=ds_features_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ಫಲಿತಾಂಶ ಅದ್ಭುತವಾಗಿದೆ, ನಾವು ಸಿoಹು ಮತ್ತು ನಾಯಿ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಸುಮಾರು 95% ಸಂಭಾವ್ಯತೆಯಿಂದ ಗುರುತಿಸಬಹುದು! ಆದಾಗ್ಯೂ, ನಾವು ಈ ರೀತಿಯ ಮಾರ್ಗವನ್ನು ಎಲ್ಲಾ ಚಿತ್ರಗಳ ಒಂದು ಉಪಸಮೂಹದಲ್ಲಿ ಮಾತ್ರ ಪರೀಕ್ಷಿಸಿದ್ದೇವೆ, ಏಕೆಂದರೆ ಕೈಯಿಂದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು ಹೆಚ್ಚಿನ ಸಮಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಎಂದು ಕಂಡುಬಂದಿದೆ.\n",
+ "\n",
+ "## ಒಂದು VGG ನೆಟ್ವರ್ಕ್ ಬಳಸಿ ವರ್ಗಾಂತರ ಕಲಿಕೆ\n",
+ "\n",
+ "ತರಬೇತಿಯ ಸಮಯದಲ್ಲಿ ಸಂಪೂರ್ಣವಾಗಿ ಮೂಲ VGG-16 ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಬಳಸುವುದರಿಂದ ಕೈಯಿಂದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಪೂರ್ವಲెక్కಿಸುವ ಅವಶ್ಯಕತೆ ಇಲ್ಲದೆಯೂ ಆಗಬಹುದು, ನಮ್ಮ ನೆಟ್ವರ್ಕ್ಗೆ ಮೊದಲ ಪದರವಾಗಿ ವೈಶಿಷ್ಟ್ಯ ಸಂಗ್ರಾಹಕವನ್ನು ಸೇರಿಸುವ ಮೂಲಕ.\n",
+ "\n",
+ "ಕೆರಾಗಳ ವಾಸ್ತುಶಿಲ್ಪದ ಸೌಂದರ್ಯವೆಂದರೆ ನಾವು ಮೇಲ್ಮನ್ಯಾಸಿಸಿರುವ VGG-16 ಮಾದರಿ ಮತ್ತೊಂದು ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಒಂದು ಪದರವಾಗಿ ಬಳಸಬಹುದಾಗಿದೆ! ನಾವು ಅಲ್ಲಿ ದಕ್ಷ ವರ್ಗೀಕರಿಸಲು ಒಂದು ಡೆನ್ಸ್ ಕ್ಲಾಸಿಫೈಯರ್ನ್ನು ನಿರ್ಮಿಸಿ, ನಂತರ ಹಿಂದಿನ ಪ್ರಸಾರವನ್ನು ಬಳಸಿ ಸಂಪೂರ್ಣ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ತರಬೇತಿಮಾಡಬೇಕಾಗುತ್ತದೆ.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Model: \"sequential\"\n",
+ "_________________________________________________________________\n",
+ "Layer (type) Output Shape Param # \n",
+ "=================================================================\n",
+ "vgg16 (Functional) (None, 7, 7, 512) 14714688 \n",
+ "_________________________________________________________________\n",
+ "flatten (Flatten) (None, 25088) 0 \n",
+ "_________________________________________________________________\n",
+ "dense (Dense) (None, 1) 25089 \n",
+ "=================================================================\n",
+ "Total params: 14,739,777\n",
+ "Trainable params: 25,089\n",
+ "Non-trainable params: 14,714,688\n",
+ "_________________________________________________________________\n"
+ ]
+ }
+ ],
+ "source": [
+ "model = keras.models.Sequential()\n",
+ "model.add(keras.applications.VGG16(include_top=False,input_shape=(224,224,3)))\n",
+ "model.add(keras.layers.Flatten())\n",
+ "model.add(keras.layers.Dense(1,activation='sigmoid'))\n",
+ "\n",
+ "model.layers[0].trainable = False\n",
+ "\n",
+ "model.summary()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ಈ ಮಾದರಿ ಒಂದು ಎಂಡ್-ಟು-ಎಂಡ್ ವರ್ಗೀಕರಣ ನೆಯನ್ನು ಹೋಲುತ್ತದೆ, ಇದು ಒಂದು ಚಿತ್ರವನ್ನು ತೆಗೆದು ತರಗತಿಯನ್ನು 반환ಿಸುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಕುತೂಹಲಕಾರಿ ಸಂಗತಿ ಎಂದರೆ ನಾವು VGG16 ಅನ್ನು ಫೀಚರ್ ಎಕ್ಸ್ಟ್ರ್ಯಾಕ್ಟರ್ ಆಗಿ ಬಳಸಲು ಬಯಸುತ್ತೇವೆ, ಮತ್ತು ಅದನ್ನು ಮರುಪ್ರಶಿಕ್ಷಣ ಮಾಡಬೆಕಾಗಿಲ್ಲ. ಆದ್ದರಿಂದ, ನಮಗೆ **ಕನ್ವೊಲ್ಯೂಷನಲ್ ಫೀಚರ್ ಎಕ್ಸ್ಟ್ರ್ಯಾಕ್ಟರ್ ಖಂಡಿತವಾಗಿ ತಣಿಸಬೇಕು**. ನಾವು ನೆಟ್ವರ್ಕ್ನ ಮೊದಲ ಲೇಯರ್ ಅನ್ನು `model.layers[0]` ಅನ್ನು ಕರೆ ಮಾಡಿ ಪ್ರವೇಶಿಸಬಹುದು, ಮತ್ತು ಟೇನ್ಅಬಲ್ `trainable` ಗುಣಲಕ್ಷಣವನ್ನು `False`ಗೆ ಸೆಟ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.\n",
+ "\n",
+ "> **ಗಮನಿಸಿ**: ಫೀಚರ್ ಎಕ್ಸ್ಟ್ರ್ಯಾಕ್ಟರ್ ತೂಕಗಳನ್ನು ತಣಿಸುವುದು ಅಗತ್ಯವಿದೆ, ಏಕೆಂದರೆ ಇಲ್ಲದಿದ್ದರೆ ಅಶಿಕ್ಷಿತ ವರ್ಗೀಕರಣ ಲೇಯರ್ ಮೂಲ ಪೂರ್ವ-ಪ್ರಶಿಕ್ಷಿತ ಕನ್ವೊಲ್ಯೂಷನಲ್ ತೂಕಗಳನ್ನು ನಾಶ ಮಾಡಬಹುದು.\n",
+ "\n",
+ "ನೀವು ಗಮನಿಸಬಹುದು ನಮ್ಮ ನೆಟ್ವರ್ಕ್ನ ಒಟ್ಟು ಪ್ಯಾರಾಮೀಟರ್ಗಳ ಸಂಖ್ಯೆ ಸುಮಾರು 15 ದಶಲಕ್ಷ ಇದ್ದರೂ, ನಾವು ಕೇವಲ 25,000 ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ಮಾತ್ರ ತರಬೇತಿ ಮಾಡುತ್ತೇವೆ. ಮೇಲ್ದರ್ಜೆಯ ಕನ್ವೊಲ್ಯೂಷನಲ್ ಫಿಲ್ಟರ್ಗಳ ಇತರೆ ಎಲ್ಲಾ ಪ್ಯಾರಾಮೀಟರ್ಗಳು ಪೂರ್ವ-ಪ್ರಶಿಕ್ಷಿತವಾಗಿವೆ. ಅದು ಉತ್ತಮ, ಏಕೆಂದರೆ ನಾವು ಕಡಿಮೆ ಸಂಖ್ಯೆಯ ಉದಾಹರಣೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಕಡಿಮೆ সংখ্যೆಯ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನೇ ಫೈನ ಟ್ಯೂನ್ ಮಾಡಬಹುದು.\n",
+ "\n",
+ "ಈಗ ನಾವು ನಮ್ಮ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ತರಬೇತಿಗೊಳಿಸಿ ಎಷ್ಟು ಉತ್ತಮವಾಗಬಹುದು ಎಂದು ನೋಡೋಣ. ಬಹುಶಃ ಬಹಳ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು, ಮತ್ತು ನಿರ್ವಹಣೆಯು ಕೆಲ ಸಮಯ ಕಡಿಮೆಯಾಗಿ ನಿಂತಂತೆ ತೋರುವ ಸಾಧ್ಯತೆ ಇದ್ದರೆ ಚಿಂತೆ ಮಾಡಬೇಡಿ.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "310/310 [==============================] - 265s 716ms/step - loss: 0.9917 - acc: 0.9512 - val_loss: 0.8156 - val_acc: 0.9671\n"
+ ]
+ }
+ ],
+ "source": [
+ "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])\n",
+ "hist = model.fit(ds_train, validation_data=ds_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ನಮಗೆ ಯುಕ್ತಿಸಂಗತವಾಗಿ ನಿಖರವಾದ ಬೆಕ್ಕೆರುಳು vs. ನಾಯಿ ವರ್ಗೀಕರಿಸುವ ಯಂತ್ರ ಸಿಕ್ಕಿದೆ ಎನ್ನಿಸುತ್ತದೆ! \n",
+ "\n",
+ "## ಮಾದರಿಯನ್ನು ಉಳಿಸುವುದು ಮತ್ತು ಲೋಡ್ ಮಾಡುವುದು\n",
+ "\n",
+ "ಮಾದರಿಯನ್ನು ತರಬೇತಿಗೆ ಮಾಡಿದ ಬಳಿಕ, ನಾವು ಮುಂದಿನ ಉಪಯೋಗಕ್ಕಾಗಿ ಮಾದರಿಯ ರಚನೆ ಮತ್ತು ತರಬೇತಿಗೊಳಿಸಿದ ತೂಕಗಳನ್ನು ಫೈಲಾಗ್ ಉಳಿಸಬಹುದು:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "INFO:tensorflow:Assets written to: data/cats_dogs.tf/assets\n"
+ ]
+ }
+ ],
+ "source": [
+ "model.save('data/cats_dogs.tf')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ನಾವು ನಂತರ ಯಾವಾಗ ಬೇಕಾದರೂ ಫೈಲ್ನಲ್ಲಿ ಇರುವುದು ಮಾದರಿಯನ್ನು ಲೋಡ್ ಮಾಡಬಹುದು. ಮುಂದಿನ ಪ್ರಯೋಗವು ಮಾದರಿಯನ್ನು ನಾಶಮಾಡಬಹುದು ಎಂಬ ಸಂದರ್ಭಗಳಲ್ಲಿ ಇದು ನಿಮಗೆ ಉಪಯುಕ್ತವಾಗಬಹುದು - ನೀವು ಶೂನ್ಯದಿಂದ ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿರುದಲ್ಲ.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "model = keras.models.load_model('data/cats_dogs.tf')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## ಫೈನ್-ಟ್ಯೂನಿಂಗ್ ಸ್ಥಳಾಂತರ ಅಧ್ಯಯನ\n",
+ "\n",
+ "ಹಿಂದಿನ ವಿಭಾಗದಲ್ಲಿ, ನಾವು ನಮ್ಮದೇ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಚಿತ್ರಗಳನ್ನು ವರ್ಗೀಕರಿಸಲು ಅಂತಿಮ ವರ್ಗೀಕರಿಸುವ ಲೇಯರ್ ಅನ್ನು ತರಬೇತಿಪಡಿಸಿದ್ದೇವೆ. ಆದಾಗ್ಯೂ, ನಾವು ಫೀಚರ್ ಎಕ್ಸ್ಟ್ರ್ಯಾಕ್ಟರ್ ಅನ್ನು ಮರು-ತರಬೇತಿಪಡಿಸಿರುವುದಿಲ್ಲ, ಮತ್ತು ನಮ್ಮ ಮಾದರಿ ImageNet ಡೇಟಾದ ಮೇಲೆ ಕಲಿತಿರುವ ಫೀಚರ್ಗಳ ಮೇಲೆ ನಂಬಿಕೊಂಡಿತ್ತು. ನಿಮ್ಮ ವಸ್ತುಗಳು ಸಾಮಾನ್ಯ ImageNet ಚಿತ್ರಗಳಿಂದ ದೃಶ್ಯವಾಗಿ ವಿಭಿನ್ನವಾಗಿದ್ದರೆ, ಈ ಫೀಚರ್ಗಳ ಸಂಯೋಜನೆ ಉತ್ತಮವಾಗಿ ಕೆಲಸ ಮಾಡದೇ ಇರುವ ಸಾಧ್ಯತೆ ಇದೆ. ಆದ್ದರಿಂದ ಸಂವೇದನಶೀಲ ಲೇಯರ್ಗಳನ್ನು ತರಬೇತಿಪಡಿಸುವುದನ್ನು ಆರಂಭಿಸುವುದು ಯುಕ್ತಿಯಾಗಿದೆ.\n",
+ "\n",
+ "ಅದಕ್ಕಾಗಿ, ನಾವು ಹಿಂದಿನಿಂದಲೇ ಮುಬ್ಬಾಗಿಸಿರುವ ಸಂವೇದನಶೀಲ ಫಿಲ್ಟರ್ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ಅನ್ಫ್ರೀಜ್ ಮಾಡಬಹುದು.\n",
+ "\n",
+ "> **ಗಮನಿಸಿ:** ನಿಮ್ಮನ್ನು ಮೊದಲಿಗೆ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ಮುಬ್ಬಾಗಿಸಿ ತರಬೇತಿ ಹಲವಾರು ಯುಗಗಳಲ್ಲಿ ನಡೆಸುವ ಮೂಲಕ ವರ್ಗೀಕರಿಸುವ ಲೇಯರ್ನ ತೂಕಗಳನ್ನು ಸ್ಥಿರಪಡಿಸುವುದು ಮುಖ್ಯವಾಗಿದೆ. ನಿಮಗಿತ್ತಿನಲ್ಲಿ ಮುಬ್ಬಾಗಿಸದ ಪ್ಯಾರಾಮೀಟರ್ಗಳೊಂದಿಗೆ ಸಂಪೂರ್ಣ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ತಕ್ಷಣ ತರಬೇತಿಪಡಿಸಿದರೆ, ದೊಡ್ಡ ದೋಷಗಳು ಸಂವೇದನಶೀಲ ಲೇಯರ್ಗಳ ಪೂರ್ವ-ತರಬೇತಿಪಡಿಸಿದ ತೂಕಗಳನ್ನು ಹಾಳುಮಾಡಬಹುದು.\n",
+ "\n",
+ "ನಮ್ಮ ಸಂವೇದನಶೀಲ VGG-16 ಮಾದರಿ ಪ್ರಥಮ ಲೇಯರ್ ಒಳಗೆ ಇರುವ ಮತ್ತು ಅದು ಹಲವಾರು ಲೇಯರ್ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಅದರ ರಚನೆಯನ್ನು ನೋಡಬಹುದು:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Model: \"vgg16\"\n",
+ "_________________________________________________________________\n",
+ "Layer (type) Output Shape Param # \n",
+ "=================================================================\n",
+ "input_1 (InputLayer) [(None, 224, 224, 3)] 0 \n",
+ "_________________________________________________________________\n",
+ "block1_conv1 (Conv2D) (None, 224, 224, 64) 1792 \n",
+ "_________________________________________________________________\n",
+ "block1_conv2 (Conv2D) (None, 224, 224, 64) 36928 \n",
+ "_________________________________________________________________\n",
+ "block1_pool (MaxPooling2D) (None, 112, 112, 64) 0 \n",
+ "_________________________________________________________________\n",
+ "block2_conv1 (Conv2D) (None, 112, 112, 128) 73856 \n",
+ "_________________________________________________________________\n",
+ "block2_conv2 (Conv2D) (None, 112, 112, 128) 147584 \n",
+ "_________________________________________________________________\n",
+ "block2_pool (MaxPooling2D) (None, 56, 56, 128) 0 \n",
+ "_________________________________________________________________\n",
+ "block3_conv1 (Conv2D) (None, 56, 56, 256) 295168 \n",
+ "_________________________________________________________________\n",
+ "block3_conv2 (Conv2D) (None, 56, 56, 256) 590080 \n",
+ "_________________________________________________________________\n",
+ "block3_conv3 (Conv2D) (None, 56, 56, 256) 590080 \n",
+ "_________________________________________________________________\n",
+ "block3_pool (MaxPooling2D) (None, 28, 28, 256) 0 \n",
+ "_________________________________________________________________\n",
+ "block4_conv1 (Conv2D) (None, 28, 28, 512) 1180160 \n",
+ "_________________________________________________________________\n",
+ "block4_conv2 (Conv2D) (None, 28, 28, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block4_conv3 (Conv2D) (None, 28, 28, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block4_pool (MaxPooling2D) (None, 14, 14, 512) 0 \n",
+ "_________________________________________________________________\n",
+ "block5_conv1 (Conv2D) (None, 14, 14, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block5_conv2 (Conv2D) (None, 14, 14, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block5_conv3 (Conv2D) (None, 14, 14, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block5_pool (MaxPooling2D) (None, 7, 7, 512) 0 \n",
+ "=================================================================\n",
+ "Total params: 14,714,688\n",
+ "Trainable params: 0\n",
+ "Non-trainable params: 14,714,688\n",
+ "_________________________________________________________________\n"
+ ]
+ }
+ ],
+ "source": [
+ "model.layers[0].summary()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ನಾವು ಸಕಲ ಪರದೆಗಳ ಸಂಯೋಜಕ ಮೂಲದ 모든 ಅಂಶಗಳನ್ನು ಅನ್ಫ್ರೀಜ್ ಮಾಡಬಹುದು:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "model.layers[0].trainable = True"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ಆದಾಗ್ಯೂ, ಎಲ್ಲವನ್ನೂ ಒಂದೇ ಸಮಯದಲ್ಲಿ ಅನ್ಫ್ರೀಜ್ ಮಾಡುವುದು ಉತ್ತಮ ಐಡಿಯಾ ಅಲ್ಲ. ನಾವು ಮೊದಲಿಗೆ ಕೊನೆಯಲ್ಲಿ ಇರುವ ಕೆಲವು ಕೊನ್ವಲ್ಯೂಷನ್ ಲೇಯರ್ಗಳನ್ನು ಮಾತ್ರ ಅನ್ಫ್ರೀಜ್ ಮಾಡಬಹುದು, ಏಕೆಂದರೆ ಅವು ನಮ್ಮ ಚಿತ್ರಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಉನ್ನತ ಮಟ್ಟದ ಮಾದರಿಗಳನ್ನು ಹೊಂದಿವೆ. ಉದಾಹರಣೆಗೆ, ಮೊದಲಿಗೆ, ಕೊನೆಯ 4ನ್ನು ಬಿಟ್ಟು ಎಲ್ಲಾ ಲೇಯರ್ಗಳನ್ನು ಫ್ರೀಜ್ ಮಾಡಬಹುದು: \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Model: \"sequential\"\n",
+ "_________________________________________________________________\n",
+ "Layer (type) Output Shape Param # \n",
+ "=================================================================\n",
+ "vgg16 (Functional) (None, 7, 7, 512) 14714688 \n",
+ "_________________________________________________________________\n",
+ "flatten (Flatten) (None, 25088) 0 \n",
+ "_________________________________________________________________\n",
+ "dense (Dense) (None, 1) 25089 \n",
+ "=================================================================\n",
+ "Total params: 14,739,777\n",
+ "Trainable params: 7,104,513\n",
+ "Non-trainable params: 7,635,264\n",
+ "_________________________________________________________________\n"
+ ]
+ }
+ ],
+ "source": [
+ "for i in range(len(model.layers[0].layers)-4):\n",
+ " model.layers[0].layers[i].trainable = False\n",
+ "model.summary()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ತರಬೇತಿ ಪಡೆಯುವ ಪರಿಮಾಣಗಳ ಸಂಖ್ಯೆ ಗಮನಾರ್ಹವಾಗಿ ಹೆಚ್ಚಾಗಿದೆ, ಆದರೂ ಅದು ಎಲ್ಲಾ ಪರಿಮಾಣಗಳ ಸುಮಾರು 50% ಬದಿ ಇದೆ ಎಂದು ಗಮನಿಸಿ.\n",
+ "\n",
+ "ಅನ್ವಶೀಲಗೊಳಿಸುವಿಕೆಯ ನಂತರ, ನಾವು ಇನ್ನೂ ಕೆಲವು ಚಕ್ರಗಳ ತರಬೇತಿಯನ್ನು ಮಾಡಬಹುದು (ನմ್ರ ಉದಾಹರಣೆಯಲ್ಲಿ, ನಾವು ಒಂದೇ ಒಂದು ಮಾಡುತ್ತೇವೆ). ನೀವು ಹಿಂದಿನ ತರಬೇತಿಗೊಂಡ ತೂಕಗಳ ಮೇಲೆ ಪ್ರಭಾವವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಕಡಿಮೆ ಕಲಿಕೆಯ ದರವನ್ನು ಆಯ್ಕೆಮಾಡಬಹುದು. ಆದಾಗ್ಯೂ, ಕಡಿಮೆ ಕಲಿಕೆಯ ದರ ಇದ್ದರೂ ಸಹ, ನೀವು ತರಬೇತಿಯ ಆರಂಭದಲ್ಲಿ ಖಚಿತತೆ ಕೆಳಗೆ ಇಳಿಯುವ ಸಾಧ್ಯತೆಯನ್ನು ನಿರೀಕ್ಷಿಸಬಹುದು, ಕೊನೆಗೆ ಸ್ಥಿರ ತೂಕಗಳ ಸಂದರ್ಭದಲ್ಲಿ ಇರುವಕ್ಕಿಂತ ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಮಟ್ಟವನ್ನು ತಲುಪುತ್ತದೆ.\n",
+ "\n",
+ "> **ಗಮನಿಸಿ:** ಈ ತರಬೇತಿ ಬಹಳ ನಿಧಾನವಾಗಿ ನಡೆಯುತ್ತದೆ, ಏಕೆಂದರೆ ನಮಗೆ ನೆಟ್ವರ್ಕಿನ ಅನೇಕ ಮಟ್ಟಗಳ ಮೂಲಕ ಗ್ರೇಡಿಯಂಟ್ಗಳನ್ನು ಹಿಂದಕ್ಕೆ ಹರಿಸಲು ಒಳಿತು!\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "310/310 [==============================] - 201s 645ms/step - loss: 0.5270 - acc: 0.9776 - val_loss: 1.4132 - val_acc: 0.9653\n"
+ ]
+ }
+ ],
+ "source": [
+ "hist = model.fit(ds_train, validation_data=ds_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ನಾವು ಹೆಚ್ಚಿನ تربತಿ ಶುದ್ಧತೆಯನ್ನು ಸಾಧಿಸಲು ಸಾಧ್ಯ, ಏಕೆಂದರೆ ನಾವು ಹೆಚ್ಚು ಪಾರಾಮೀಟರ್ಗಳೊಂದಿಗೆ ಹೆಚ್ಚು ಶಕ್ತಿಶಾಲಿ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಬಳಸಿುತ್ತಿರುವೆವು, ಆದರೆ ಮಾನ್ಯತೆ ಶುದ್ಧತೆ ಹೆಚ್ಚಾಗುವುದಿಲ್ಲ.\n",
+ "\n",
+ "ನೀವು ನೆಟ್ವರ್ಕ್ನ ಇನ್ನಷ್ಟು پرتಿಗೆಯ ಲೇಯರ್ಗಳನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಿ, ಹೆಚ್ಚು تربತಿ ಮಾಡಲು ಮುಕ್ತವಾಗಿ ಪ್ರಯತ್ನಿಸಿ, ನೀವು ಹೆಚ್ಚಿನ ಶುದ್ಧತೆ ಸಾಧಿಸಬಹುದೇ ಎಂಬುದನ್ನು ನೋಡಿ!\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## ಇತರೆ ಕಂಪ್ಯೂಟರ್ ವೀಕ್ಷಣಾ ಮಾದರಿಗಳು\n",
+ "\n",
+ "VGG-16 ಬಹುಮುಖ್ಯವಾಗಿ ಸರಳ ಕಂಪ್ಯೂಟರ್ ವೀಕ್ಷಣಾ ವಾಸ್ತುಶಿಲ್ಪಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. Keras ಹಲವಾರು ಪೂರ್ವ-ತರಬೇತಿ ಪಡೆದ ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಅವುಗಳಲ್ಲಿ ಅತ್ಯಂತ ಹೆಚ್ಚಿನ ಬಳಕೆಯಾದವುಗಳಾಗಿ Microsoft ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ **ResNet** ವಾಸ್ತುಶಿಲ್ಪಗಳು ಮತ್ತು Google ಯಿಂದ **Inception** ಉಂಟು. ಉದಾಹರಣೆಗೆ, ಸರಳವಾದ ResNet-50 ಮಾದರಿಯ ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ಅನ್ವೇಷಿಸೋಣ (ResNet ವಿವಿಧ ಆಳವಿರುವ ಮಾದರಿಗಳ ಕುಟುಂಬವಾಗಿದೆ, ನಿಜವಾಗಿಯೂ ಆಳವಾದ ಮಾದರಿಯನ್ನು ನೋಡಿ ತಿಳಿಯಲು ನೀವು ResNet-152 ಅನ್ನು ಪ್ರಯೋಗಿಸಬಹುದು):\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Model: \"resnet50\"\n",
+ "__________________________________________________________________________________________________\n",
+ "Layer (type) Output Shape Param # Connected to \n",
+ "==================================================================================================\n",
+ "input_3 (InputLayer) [(None, 224, 224, 3) 0 \n",
+ "__________________________________________________________________________________________________\n",
+ "conv1_pad (ZeroPadding2D) (None, 230, 230, 3) 0 input_3[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv1_conv (Conv2D) (None, 112, 112, 64) 9472 conv1_pad[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv1_bn (BatchNormalization) (None, 112, 112, 64) 256 conv1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv1_relu (Activation) (None, 112, 112, 64) 0 conv1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "pool1_pad (ZeroPadding2D) (None, 114, 114, 64) 0 conv1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "pool1_pool (MaxPooling2D) (None, 56, 56, 64) 0 pool1_pad[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_1_conv (Conv2D) (None, 56, 56, 64) 4160 pool1_pool[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_1_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block1_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_1_relu (Activation (None, 56, 56, 64) 0 conv2_block1_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_2_conv (Conv2D) (None, 56, 56, 64) 36928 conv2_block1_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_2_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block1_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_2_relu (Activation (None, 56, 56, 64) 0 conv2_block1_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_0_conv (Conv2D) (None, 56, 56, 256) 16640 pool1_pool[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_3_conv (Conv2D) (None, 56, 56, 256) 16640 conv2_block1_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_0_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block1_0_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_3_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block1_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_add (Add) (None, 56, 56, 256) 0 conv2_block1_0_bn[0][0] \n",
+ " conv2_block1_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_out (Activation) (None, 56, 56, 256) 0 conv2_block1_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_1_conv (Conv2D) (None, 56, 56, 64) 16448 conv2_block1_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_1_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block2_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_1_relu (Activation (None, 56, 56, 64) 0 conv2_block2_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_2_conv (Conv2D) (None, 56, 56, 64) 36928 conv2_block2_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_2_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block2_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_2_relu (Activation (None, 56, 56, 64) 0 conv2_block2_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_3_conv (Conv2D) (None, 56, 56, 256) 16640 conv2_block2_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_3_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block2_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_add (Add) (None, 56, 56, 256) 0 conv2_block1_out[0][0] \n",
+ " conv2_block2_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_out (Activation) (None, 56, 56, 256) 0 conv2_block2_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_1_conv (Conv2D) (None, 56, 56, 64) 16448 conv2_block2_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_1_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block3_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_1_relu (Activation (None, 56, 56, 64) 0 conv2_block3_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_2_conv (Conv2D) (None, 56, 56, 64) 36928 conv2_block3_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_2_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block3_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_2_relu (Activation (None, 56, 56, 64) 0 conv2_block3_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_3_conv (Conv2D) (None, 56, 56, 256) 16640 conv2_block3_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_3_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block3_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_add (Add) (None, 56, 56, 256) 0 conv2_block2_out[0][0] \n",
+ " conv2_block3_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_out (Activation) (None, 56, 56, 256) 0 conv2_block3_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_1_conv (Conv2D) (None, 28, 28, 128) 32896 conv2_block3_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block1_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_1_relu (Activation (None, 28, 28, 128) 0 conv3_block1_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block1_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block1_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_2_relu (Activation (None, 28, 28, 128) 0 conv3_block1_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_0_conv (Conv2D) (None, 28, 28, 512) 131584 conv2_block3_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block1_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_0_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block1_0_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block1_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_add (Add) (None, 28, 28, 512) 0 conv3_block1_0_bn[0][0] \n",
+ " conv3_block1_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_out (Activation) (None, 28, 28, 512) 0 conv3_block1_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_1_conv (Conv2D) (None, 28, 28, 128) 65664 conv3_block1_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block2_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_1_relu (Activation (None, 28, 28, 128) 0 conv3_block2_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block2_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block2_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_2_relu (Activation (None, 28, 28, 128) 0 conv3_block2_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block2_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block2_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_add (Add) (None, 28, 28, 512) 0 conv3_block1_out[0][0] \n",
+ " conv3_block2_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_out (Activation) (None, 28, 28, 512) 0 conv3_block2_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_1_conv (Conv2D) (None, 28, 28, 128) 65664 conv3_block2_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block3_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_1_relu (Activation (None, 28, 28, 128) 0 conv3_block3_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block3_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block3_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_2_relu (Activation (None, 28, 28, 128) 0 conv3_block3_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block3_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block3_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_add (Add) (None, 28, 28, 512) 0 conv3_block2_out[0][0] \n",
+ " conv3_block3_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_out (Activation) (None, 28, 28, 512) 0 conv3_block3_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_1_conv (Conv2D) (None, 28, 28, 128) 65664 conv3_block3_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block4_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_1_relu (Activation (None, 28, 28, 128) 0 conv3_block4_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block4_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block4_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_2_relu (Activation (None, 28, 28, 128) 0 conv3_block4_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block4_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block4_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_add (Add) (None, 28, 28, 512) 0 conv3_block3_out[0][0] \n",
+ " conv3_block4_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_out (Activation) (None, 28, 28, 512) 0 conv3_block4_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_1_conv (Conv2D) (None, 14, 14, 256) 131328 conv3_block4_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block1_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_1_relu (Activation (None, 14, 14, 256) 0 conv4_block1_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block1_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block1_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_2_relu (Activation (None, 14, 14, 256) 0 conv4_block1_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_0_conv (Conv2D) (None, 14, 14, 1024) 525312 conv3_block4_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block1_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_0_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block1_0_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block1_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_add (Add) (None, 14, 14, 1024) 0 conv4_block1_0_bn[0][0] \n",
+ " conv4_block1_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_out (Activation) (None, 14, 14, 1024) 0 conv4_block1_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block1_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block2_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_1_relu (Activation (None, 14, 14, 256) 0 conv4_block2_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block2_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block2_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_2_relu (Activation (None, 14, 14, 256) 0 conv4_block2_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block2_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block2_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_add (Add) (None, 14, 14, 1024) 0 conv4_block1_out[0][0] \n",
+ " conv4_block2_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_out (Activation) (None, 14, 14, 1024) 0 conv4_block2_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block2_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block3_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_1_relu (Activation (None, 14, 14, 256) 0 conv4_block3_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block3_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block3_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_2_relu (Activation (None, 14, 14, 256) 0 conv4_block3_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block3_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block3_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_add (Add) (None, 14, 14, 1024) 0 conv4_block2_out[0][0] \n",
+ " conv4_block3_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_out (Activation) (None, 14, 14, 1024) 0 conv4_block3_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block3_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block4_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_1_relu (Activation (None, 14, 14, 256) 0 conv4_block4_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block4_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block4_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_2_relu (Activation (None, 14, 14, 256) 0 conv4_block4_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block4_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block4_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_add (Add) (None, 14, 14, 1024) 0 conv4_block3_out[0][0] \n",
+ " conv4_block4_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_out (Activation) (None, 14, 14, 1024) 0 conv4_block4_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block4_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block5_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_1_relu (Activation (None, 14, 14, 256) 0 conv4_block5_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block5_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block5_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_2_relu (Activation (None, 14, 14, 256) 0 conv4_block5_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block5_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block5_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_add (Add) (None, 14, 14, 1024) 0 conv4_block4_out[0][0] \n",
+ " conv4_block5_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_out (Activation) (None, 14, 14, 1024) 0 conv4_block5_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block5_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block6_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_1_relu (Activation (None, 14, 14, 256) 0 conv4_block6_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block6_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block6_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_2_relu (Activation (None, 14, 14, 256) 0 conv4_block6_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block6_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block6_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_add (Add) (None, 14, 14, 1024) 0 conv4_block5_out[0][0] \n",
+ " conv4_block6_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_out (Activation) (None, 14, 14, 1024) 0 conv4_block6_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_1_conv (Conv2D) (None, 7, 7, 512) 524800 conv4_block6_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_1_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block1_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_1_relu (Activation (None, 7, 7, 512) 0 conv5_block1_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_2_conv (Conv2D) (None, 7, 7, 512) 2359808 conv5_block1_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_2_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block1_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_2_relu (Activation (None, 7, 7, 512) 0 conv5_block1_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_0_conv (Conv2D) (None, 7, 7, 2048) 2099200 conv4_block6_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 conv5_block1_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_0_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block1_0_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_3_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block1_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_add (Add) (None, 7, 7, 2048) 0 conv5_block1_0_bn[0][0] \n",
+ " conv5_block1_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_out (Activation) (None, 7, 7, 2048) 0 conv5_block1_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_1_conv (Conv2D) (None, 7, 7, 512) 1049088 conv5_block1_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_1_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block2_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_1_relu (Activation (None, 7, 7, 512) 0 conv5_block2_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_2_conv (Conv2D) (None, 7, 7, 512) 2359808 conv5_block2_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_2_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block2_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_2_relu (Activation (None, 7, 7, 512) 0 conv5_block2_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 conv5_block2_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_3_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block2_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_add (Add) (None, 7, 7, 2048) 0 conv5_block1_out[0][0] \n",
+ " conv5_block2_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_out (Activation) (None, 7, 7, 2048) 0 conv5_block2_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_1_conv (Conv2D) (None, 7, 7, 512) 1049088 conv5_block2_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_1_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block3_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_1_relu (Activation (None, 7, 7, 512) 0 conv5_block3_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_2_conv (Conv2D) (None, 7, 7, 512) 2359808 conv5_block3_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_2_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block3_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_2_relu (Activation (None, 7, 7, 512) 0 conv5_block3_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 conv5_block3_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_3_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block3_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_add (Add) (None, 7, 7, 2048) 0 conv5_block2_out[0][0] \n",
+ " conv5_block3_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_out (Activation) (None, 7, 7, 2048) 0 conv5_block3_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "avg_pool (GlobalAveragePooling2 (None, 2048) 0 conv5_block3_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "predictions (Dense) (None, 1000) 2049000 avg_pool[0][0] \n",
+ "==================================================================================================\n",
+ "Total params: 25,636,712\n",
+ "Trainable params: 25,583,592\n",
+ "Non-trainable params: 53,120\n",
+ "__________________________________________________________________________________________________\n"
+ ]
+ }
+ ],
+ "source": [
+ "resnet = keras.applications.ResNet50()\n",
+ "resnet.summary()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ನೀವು ನೋಡಬಹುದು, ಈ ಮಾದರಿ ಅದೇ ಪರಿಚಿತ ನಿರ್ಮಾಣ ಘಟಕಗಳನ್ನು ಹೊಂದಿದೆ: ಸಂಯೋಜಕ ಲೇಯರ್ಗಳು, ಪೂಲಿಂಗ್ ಲೇಯರ್ಗಳು ಮತ್ತು ಅಂತಿಮ ಘನ ವರ್ಗೀಕರಣಕಾರ. ನಾವು ಈ ಮಾದರಿಯನ್ನು ಸ್ವಲ್ಪಸಮಯದಿಂದ VGG-16 ಅನ್ನು ಟ್ರಾನ್ಸ್ಫರ್ ಲರ್ನಿಂಗ್ಗಾಗಿ ಬಳಸುತ್ತಿರುವುದನ್ನು ಬೇರೆಯಾಗಿ ಬಳಸಬಹುದಾಗಿದೆ. ನೀವು ಮೇಲಿನ ಕೋಡ್ನೊಂದಿಗೆ ವಿವಿಧ ResNet ಮಾದರಿಗಳನ್ನು ಮೂಲ ಮಾದರಿಯಾಗಿ ಉಪಯೋಗಿಸುವ ಮೂಲಕ ಪ್ರಯೋಗ ಮಾಡಬಹುದು ಮತ್ತು ನಿಖರತೆ ಹೇಗೆ ಬದಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನೋಡಿ.\n",
+ "\n",
+ "## ಬ್ಯಾಚ್ ನಾರ್ಮಲೈಜೆಷನ್\n",
+ "\n",
+ "ಈ ಜಾಲವು ಮತ್ತೊಂದು ರೀತಿಯ ಲೇಯರ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ: **ಬ್ಯಾಚ್ ನಾರ್ಮಲೈಜೆಷನ್**. ಬ್ಯಾಚ್ ನಾರ್ಮಲೈಜೆಷನ್ನ ಸಂಶಯವೆಂದರೆ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಮೂಲಕ ಹರಿದಾಡುವ ಮೌಲ್ಯಗಳನ್ನು ಸರಿಯಾದ ವಿಭಾಜನೆಗೆ ತರುವುದಾಗಿದೆ. ಸಾಮಾನ್ಯವಾಗಿ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು ಎಲ್ಲ ಮೌಲ್ಯಗಳು [-1,1] ಅಥವಾ [0,1] ಶ್ರೇಣಿಯಲ್ಲಿ ಇದಾಗಿದ್ದಾಗ ಉತ್ತಮವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತವೆ, ಹಾಗೂ ಆದ್ದರಿಂದ ನಾವು ನಮ್ಮ ಇನ್ಪುಟ್ ಡೇಟಾವನ್ನು ತಕ್ಕಂತೆ ಪರಿಭ್ರಮನ ಮಾಡುತ್ತೇವೆ/ನಾರ್ಮಲೈಸ್ ಮಾಡುತ್ತೇವೆ. ಆದಾಗ್ಯೂ, ಆಳವಾದ ಜಾಲದ ತರಬೇತಿ ವೇಳೆ, ಮೌಲ್ಯಗಳು ಬಹುಮಾನವಾಗಿಯೂ ಈ ಶ್ರೇಣೆಯ ಹೊರಗೆ ಹೋಗಬಹುದಾಗಿದೆ, ಇದು ತರಬೇತಿಯನ್ನು ಸಮಸ್ಯೆಗೊಳಿಸುತ್ತದೆ. ಬ್ಯಾಚ್ ನಾರ್ಮಲೈಜೆಷನ್ ಲೇಯರ್ ಪ್ರಸ್ತುತ ಮಿನಿಬ್ಯಾಚ್ನ ಎಲ್ಲಾ ಮೌಲ್ಯಗಳ ಸರಾಸರಿ ಮತ್ತು ಮಾನದಂಡ ವಿಪರ್ಯಾಸವನ್ನು ಲೆಕ್ಕಿಸಿ, ಮತ್ತು ಅವುಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಲೇಯರ್ ಮೂಲಕ ಸಿಗ್ನಲ್ನ್ನು ಗುಣಾತ್ಮಕಗೊಳಿಸುವ ಮುನ್ನ ನಾರ್ಮಲೈಸ್ ಮಾಡುತ್ತದೆ. ಇದು ಆಳವಾದ ಜಾಲಗಳ ಸ್ಥಿತಿಶೀಲತೆಯನ್ನು ಪ್ರಮುಖವಾಗಿ ಸುಧಾರಿಸುತ್ತದೆ.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## ಸಾರಾಂಶ\n",
+ "\n",
+ "ಟ್ರಾನ್ಸ್ಫರ್ ಲರ್ನಿಂಗ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು, ನಾವು ನಮ್ಮ ಕಸ್ಟಮ್ ವಸ್ತು ವರ್ಗೀಕರಣ ಕಾರ್ಯಕ್ಕಾಗಿ ವೇಗವಾಗಿ ವರ್ಗೀಕರಣ ಯಂತ್ರವನ್ನು ರಚಿಸಲು ಮತ್ತು ಹೆಚ್ಚಿನ ನಿಖರತೆಯನ್ನು ಸಾಧಿಸಲು ಸಾಧ್ಯವಾಯಿತು. ಆದರೆ, ಈ ಉದಾಹರಣೆ ಸಂಪೂರ್ಣವಾಗಿ ನ್ಯಾಯಯುತವಾಗಿರಲಿಲ್ಲ, ಏಕೆಂದರೆ ಮೂಲ VGG-16 ನೆಟ್ವರ್ಕ್ ಹಂಸೆ ಮತ್ತು ನಾಯಿಗಳನ್ನು ಗುರುತಿಸಲು ಪೂರ್ವಭಾವಿಯಾಗಿ ತರಬೇತುದಾಯಿತು, ಹಾಗಾಗಿ ನಾವು ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಈಗಾಗಲೇ ಇದ್ದ większość ಮಾದರಿಗಳನ್ನು ಮತ್ತೆ ಉಪಯೋಗಿಸುತ್ತಿದ್ದೇವೆ. ಉತ್ಪಾದನಾ ಲೈನ್ನ ವಿವರಗಳು ಅಥವಾ ವಿಭಿನ್ನ ಮರದ ಎಲೆಗಳಂತೆ ವಿಶೇಷ ಪ್ರಾಂತ್ಯದ ವಸ್ತುಗಳ ಮೇಲೆ ಕಡಿಮೆ ನಿಖರತೆಯನ್ನು ನಿರೀಕ್ಷಿಸಬಹುದು.\n",
+ "\n",
+ "ನಾವು ಈಗ ಪರಿಹರಿಸುತ್ತಿರುವ ಹೆಚ್ಚು ಸಂಕೀರ್ಣ ಕೃತ್ಯಗಳು ಹೆಚ್ಚಿನ ಗಣಕ ಶಕ್ತಿಯನ್ನು ಅವಶ್ಯಕಗೊಳಿಸುತ್ತವೆ ಮತ್ತು CPU ಮೇಲೆ ಸುಲಭವಾಗಿ ಪರಿಹರಿಸಲಾಗುವುದಿಲ್ಲ. ಮುಂದಿನ ಘಟಕದಲ್ಲಿ, ನಾವು ಕಡಿಮೆ ಗಣನೆ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಅದೇ ಮಾದರಿಯನ್ನು ತರಬೇತಿಗಾಗಿ ಹೆಚ್ಚು ಲಘುಕಾರಕ ಅನುಷ್ಠಾನ ಬಳಸುವ ಪ್ರಯತ್ನ ಮಾಡುತ್ತೇವೆ, ಇದು ಸ್ವಲ್ಪ ಕಡಿಮೆ ನಿಖರತೆಯನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n\n\n**ಅಸ್ವೀಕಾರ**:\nಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯನ್ನು ಸಾಧಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ದಯವಿಟ್ಟು ಗಮನಿಸಿ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸಡ್ಡೆಗಳು ಇರಬಹುದು. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜು ಪ್ರಾಮಾಣಿಕ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದವನ್ನು ಬಳಸುವ ಮೂಲಕ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಗಳ ಅಥವಾ ತಪ್ಪು ವ್ಯಾಖ್ಯಾನಗಳ ಬಗ್ಗೆ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ.\n\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "py38_tensorflow",
+ "language": "python",
+ "name": "conda-env-py38_tensorflow-py"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
}
\ No newline at end of file
diff --git a/translations/kn/lessons/5-NLP/README.md b/translations/kn/lessons/5-NLP/README.md
index e15bb485..9ac74df4 100644
--- a/translations/kn/lessons/5-NLP/README.md
+++ b/translations/kn/lessons/5-NLP/README.md
@@ -1,51 +1,51 @@
# ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ
-
+
-ಈ ವಿಭಾಗದಲ್ಲಿ, ನಾವು ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು **ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ (NLP)** ಸಂಬಂಧಿತ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುವುದರ ಮೇಲೆ ಗಮನಹರಿಸುವೆವು. ಕಂಪ್ಯೂಟರ್ಗಳು ಪರಿಹರಿಸಬೇಕಾದ ಅನೇಕ NLP ಸಮಸ್ಯೆಗಳಿವೆ:
+ಈ ವಿಭಾಗದಲ್ಲಿ, ನಾವು ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು **ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ (NLP)** ಸಂಬಂಧಿತ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುವುದಕ್ಕೆ ಗಮನ ಹರಿಸುವೆವು. ಗಣಕ ಯಂತ್ರಗಳು ಅನೇಕ NLP ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಸಾಧ್ಯವಾಗಬೇಕು:
-* **ಪಠ್ಯ ವರ್ಗೀಕರಣ** ಎಂದರೆ ಪಠ್ಯ ಕ್ರಮಗಳ ಸಂಬಂಧಿಸಿದ ಸಾಮಾನ್ಯ ವರ್ಗೀಕರಣ ಸಮಸ್ಯೆ. ಉದಾಹರಣೆಗೆ, ಇಮೇಲ್ ಸಂದೇಶಗಳನ್ನು ಸ್ಪ್ಯಾಮ್ ಅಥವಾ ಸ್ಪ್ಯಾಮ್ ಅಲ್ಲ ಎಂದು ವರ್ಗೀಕರಿಸುವುದು, ಅಥವಾ ಲೇಖನಗಳನ್ನು ಕ್ರೀಡೆ, ವ್ಯವಹಾರ, ರಾಜಕಾರಣ ಇತ್ಯಾದಿಯಾಗಿ ವರ್ಗೀಕರಿಸುವುದು. ಚಾಟ್ ಬಾಟ್ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವಾಗ, ಬಳಕೆದಾರನು ಏನು ಹೇಳಲು ಬಯಸಿದನು ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕಾಗುತ್ತದೆ — ಇದನ್ನು **ಉದ್ದೇಶ ವರ್ಗೀಕರಣ** ಎಂದು ಕರೆಯುತ್ತಾರೆ. ಉದ್ದೇಶ ವರ್ಗೀಕರಣದಲ್ಲಿ ಸಾಮಾನ್ಯವಾಗಿ ಅನೇಕ ವರ್ಗಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕಾಗುತ್ತದೆ.
-* **ಭಾವನಾತ್ಮಕ ವಿಶ್ಲೇಷಣೆ** ಎಂದರೆ ಒಂದು ವಾಕ್ಯದ ಅರ್ಥವು ಎಷ್ಟು ಧನಾತ್ಮಕ ಅಥವಾ ಋಣಾತ್ಮಕ ಎಂಬುದನ್ನು ಸೂಚಿಸುವ ಸಂಖ್ಯೆಯನ್ನು (ಭಾವನೆಯನ್ನು) ನೀಡುವ ಸಾಮಾನ್ಯ ರಿಗ್ರೆಷನ್ ಸಮಸ್ಯೆ. ಭಾವನಾತ್ಮಕ ವಿಶ್ಲೇಷಣೆಯ ಹೆಚ್ಚು ಪ್ರಗತಿಶೀಲ ಆವೃತ್ತಿ **ಅಂಶಾಧಾರಿತ ಭಾವನಾತ್ಮಕ ವಿಶ್ಲೇಷಣೆ** (ABSA), ಇದರಲ್ಲಿ ಭಾವನೆ ಸಂಪೂರ್ಣ ವಾಕ್ಯಕ್ಕೆ ಅಲ್ಲದೆ ಅದರ ವಿಭಿನ್ನ ಭಾಗಗಳಿಗೆ (ಅಂಶಗಳಿಗೆ) ನೀಡಲಾಗುತ್ತದೆ, ಉದಾ. *ಈ ರೆಸ್ಟೋರೆಂಟ್ನಲ್ಲಿ, ನನಗೆ ಆಹಾರ ಇಷ್ಟವಾಯಿತು, ಆದರೆ ವಾತಾವರಣ ಭಯಂಕರವಾಗಿತ್ತು*.
-* **ನಾಮಿತ ಘಟಕ ಗುರುತಿಸುವಿಕೆ** (NER) ಎಂದರೆ ಪಠ್ಯದಿಂದ ನಿರ್ದಿಷ್ಟ ಘಟಕಗಳನ್ನು ಹೊರತೆಗೆಯುವ ಸಮಸ್ಯೆ. ಉದಾಹರಣೆಗೆ, *ನಾನು ನಾಳೆ ಪ್ಯಾರಿಸ್ಗೆ ಹಾರಬೇಕಾಗಿದೆ* ಎಂಬ ವಾಕ್ಯದಲ್ಲಿ *ನಾಳೆ* ಎಂಬ ಪದವು ದಿನಾಂಕವನ್ನು ಸೂಚಿಸುತ್ತದೆ ಮತ್ತು *ಪ್ಯಾರಿಸ್* ಸ್ಥಳವನ್ನು ಸೂಚಿಸುತ್ತದೆ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕಾಗುತ್ತದೆ.
-* **ಕೀವರ್ಡ್ ಹೊರತೆಗೆಯುವಿಕೆ** NER ಗೆ ಸಮಾನವಾಗಿದೆ, ಆದರೆ ನಾವು ನಿರ್ದಿಷ್ಟ ಘಟಕ ಪ್ರಕಾರಗಳಿಗೆ ಪೂರ್ವ-ಪ್ರಶಿಕ್ಷಣವಿಲ್ಲದೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ವಾಕ್ಯದ ಅರ್ಥಕ್ಕೆ ಮುಖ್ಯವಾದ ಪದಗಳನ್ನು ಹೊರತೆಗೆಯಬೇಕಾಗುತ್ತದೆ.
-* **ಪಠ್ಯ ಗುಂಪುಮಾಡುವಿಕೆ** ಸಮಾನವಾದ ವಾಕ್ಯಗಳನ್ನು ಗುಂಪುಮಾಡಲು ಉಪಯುಕ್ತವಾಗಬಹುದು, ಉದಾಹರಣೆಗೆ ತಾಂತ್ರಿಕ ಬೆಂಬಲ ಸಂಭಾಷಣೆಗಳಲ್ಲಿ ಸಮಾನ ವಿನಂತಿಗಳನ್ನು ಗುಂಪುಮಾಡುವುದು.
-* **ಪ್ರಶ್ನೆ ಉತ್ತರಿಸುವಿಕೆ** ಎಂದರೆ ಮಾದರಿ ನಿರ್ದಿಷ್ಟ ಪ್ರಶ್ನೆಗೆ ಉತ್ತರ ನೀಡುವ ಸಾಮರ್ಥ್ಯ. ಮಾದರಿ ಪಠ್ಯ ಭಾಗ ಮತ್ತು ಪ್ರಶ್ನೆಯನ್ನು ಇನ್ಪುಟ್ ಆಗಿ ಪಡೆಯುತ್ತದೆ ಮತ್ತು ಪ್ರಶ್ನೆಗೆ ಉತ್ತರ ಇರುವ ಪಠ್ಯದ ಸ್ಥಳವನ್ನು ನೀಡಬೇಕಾಗುತ್ತದೆ (ಅಥವಾ ಕೆಲವೊಮ್ಮೆ ಉತ್ತರ ಪಠ್ಯವನ್ನು ರಚಿಸಬೇಕಾಗುತ್ತದೆ).
-* **ಪಠ್ಯ ರಚನೆ** ಎಂದರೆ ಮಾದರಿ ಹೊಸ ಪಠ್ಯವನ್ನು ರಚಿಸುವ ಸಾಮರ್ಥ್ಯ. ಇದನ್ನು ಕೆಲವು *ಪಠ್ಯ ಪ್ರಾಂಪ್ಟ್* ಆಧರಿಸಿ ಮುಂದಿನ ಅಕ್ಷರ/ಪದವನ್ನು ಭವಿಷ್ಯವಾಣಿ ಮಾಡುವ ವರ್ಗೀಕರಣ ಕಾರ್ಯವೆಂದು ಪರಿಗಣಿಸಬಹುದು. GPT-3 ಮುಂತಾದ ಪ್ರಗತಿಶೀಲ ಪಠ್ಯ ರಚನೆ ಮಾದರಿಗಳು [prompt programming](https://towardsdatascience.com/software-3-0-how-prompting-will-change-the-rules-of-the-game-a982fbfe1e0) ಅಥವಾ [prompt engineering](https://medium.com/swlh/openai-gpt-3-and-prompt-engineering-dcdc2c5fcd29) ಎಂಬ ತಂತ್ರಗಳನ್ನು ಬಳಸಿ ಇತರ NLP ಕಾರ್ಯಗಳನ್ನು ಸಹ ಪರಿಹರಿಸಬಹುದು.
-* **ಪಠ್ಯ ಸಾರಾಂಶ** ಎಂದರೆ ಕಂಪ್ಯೂಟರ್ನ್ನು ದೀರ್ಘ ಪಠ್ಯವನ್ನು "ಓದಿ" ಅದನ್ನು ಕೆಲವು ವಾಕ್ಯಗಳಲ್ಲಿ ಸಾರಾಂಶಗೊಳಿಸುವ ತಂತ್ರ.
-* **ಯಂತ್ರ ಅನುವಾದ** ಒಂದು ಭಾಷೆಯ ಪಠ್ಯ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಮತ್ತು ಮತ್ತೊಂದು ಭಾಷೆಯಲ್ಲಿ ಪಠ್ಯ ರಚನೆಯ ಸಂಯೋಜನೆಯಾಗಿ ಪರಿಗಣಿಸಬಹುದು.
+* **ಟೆಕ್ಸ್ಟ್ ವರ್ಗೀಕರಣ** ಎನ್ನುವುದು ಪಠ್ಯ ಕ್ರಮಗಳ ಸಾದಾರಣ ವರ್ಗೀಕರಣ ಸಮಸ್ಯೆಯಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಇಮೇಲ್ ಸಂದೇಶಗಳನ್ನು ಸ್ಪ್ಯಾಮ್ ಅಥವಾ ಸ್ಪ್ಯಾಮ್ ಅಲ್ಲದಂತೆ ವರ್ಗೀಕರಿಸುವುದು, ಅಥವಾ ಲೇಖನಗಳನ್ನು ಕ್ರೀಡೆ, ವ್ಯಾಪಾರ, ರಾಜಕಾರಣ ಮುಂತಾದಂತೆ ವರ್ಗೀಕರಿಸುವುದು. ಚಾಟ್ ಬಾಟ್ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವಾಗ, ನಾವು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಕೆದಾರನ ಉದ್ದೇಶವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕಾಗುತ್ತದೆ -- ಈ ಸಂದರ್ಭದಲ್ಲಿ ನಾವು **ಉದ್ದೇಶ ವರ್ಗೀಕರಣ** ಜೊತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತೇವೆ. ಬಹುಶಃ, ಉದ್ದೇಶ ವರ್ಗೀಕರಣದಲ್ಲಿ ಅನೇಕ ವರ್ಗಗಳನ್ನು ಕೈಗಾರಿಕೆ ಮಾಡಬೇಕಾಗಬಹುದು.
+* **ಭಾವ ವಿಶ್ಲೇಷಣೆ** ಎನ್ನುವುದು ಸಾದಾರಣ ರಿಗ್ರೇಶನ್ ಸಮಸ್ಯೆಯಾಗಿದ್ದು, ವಾಕ್ಯದ ಅರ್ಥವು ಧನಾತ್ಮಕ ಅಥವಾ ಋಣಾತ್ಮಕವೆಂಬುದನ್ನು ತೋರುವ ಸಂಖ್ಯೆಯನ್ನು (ಭಾವನೆಯನ್ನು) ಅಂಕೆ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಭಾವ ವಿಶ್ಲೇಷಣೆಯ ಮುಂದುವರೆದ ರೂಪವು **ಪರಿಕಲ್ಪನೆ ಆಧಾರಿತ ಭಾವ ವಿಶ್ಲೇಷಣೆ** (ABSA), ಇಲ್ಲಿ ನಾವು ಭಾವವನ್ನು ಸಂಪೂರ್ಣ ವಾಕ್ಯದಿಗಿಂತ ವಿಭಿನ್ನ ಭಾಗಗಳಿಗೆ (ಪರಿಕಲ್ಪನೆಗಳಿಗೆ) ನೀಡುತ್ತೇವೆ, ಉದಾ. *ಈ ರೆಸ್ಟೋರೆಂಟ್ನಲ್ಲಿ, ನನಗೆ ಆಹಾರ ಇಷ್ಟವಾಯಿತು, ಆದರೆ ವಾತಾವರಣ ತುಂಬಾ ಕೆಟ್ಟದ್ದಾಯಿತು*.
+* **ನಾಮಿತ ಘಟಕ ಗುರುತಿಸುವಿಕೆ** (NER) ಎನ್ನುವುದು ಪಠ್ಯದಿಂದ ನಿರ್ದಿಷ್ಟ ಘಟಕಗಳನ್ನು ತೆಗೆದುಕೊಂಡು ಬರುವುದರ ಸಮಸ್ಯೆಗೆ ಸಂಬಂಧಿಸಿದೆ. ಉದಾಹರಣೆಗೆ, *ನಾನು ನಾಳೆ ಪಂಚಿಗೆ ಹಾರಬೇಕಿದೆ* ಎಂಬ ವಾಕ್ಯದಲ್ಲಿ *ನಾಳೆ* ಎಂಬ ಪದವು ದಿನಾಂಕ (DATE) ಅನ್ನು ಸೂಚಿಸುತ್ತದೆ ಮತ್ತು *ಪ್ಯಾರಿಸ್* ಸ್ಥಳ (LOCATION) ಎಂದು ಹುಡುಕಬೇಕಾಗುತ್ತದೆ.
+* **ಕೀವರ್ಡ್ ಹಿನ್ನಡೆ** NERಗೆ ಸಮಾನವಾಗಿದೆ, ಆದರೆ ನಾವು ವಾಕ್ಯದ ಅರ್ಥಕ್ಕೆ ಮುಖ್ಯವಾದ ಶಬ್ದಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ, ನಿರ್ದಿಷ್ಟ ಘಟಕ ವಿಧಗಳಿಗೆ ಪೂರ್ವಪ್ರಶಿಕ್ಷಣವಿಲ್ಲದೆ ತೆಗೆದುಕೊಳ್ಳಬೇಕಾಗುತ್ತದೆ.
+* **ಪಠ್ಯ ಕ್ಲಸ್ಟರಿಂಗ್** ಎಂದು ನಾವು ಸಮಾನವಾದ ವಾಕ್ಯಗಳನ್ನು ಗುಂಪುಮಾಡಲು ಉಪಯೋಗಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ ತಾಂತ್ರಿಕ ಬೆಂಬಲ ಸಂಭಾಷಣೆಗಳಲ್ಲಿ ಸಮಾನ ವಿನಂತಿಗಳನ್ನು ಗುಂಪುಮಾಡುವುದು.
+* **ಪ್ರಶ್ನೆ ಉತ್ತರಿಸುವಿಕೆ** ಅಂದರೆ ಮಾದರಿಯು ನಿರ್ದಿಷ್ಟ ಪ್ರಶ್ನೆಗೆ ಉತ್ತರಿಸುವ ಸಾಮರ್ಥ್ಯ. ಮಾದರಿ ಒಂದು ಪಠ್ಯ ಭಾಗ ಮತ್ತು ಪ್ರಶ್ನೆಯನ್ನು ಇನ್ಪುಟ್ ಆಗಿ ಪಡೆಯುತ್ತದೆ ಮತ್ತು ಆ ಪ್ರಶ್ನೆಗೆ ઉત્તર ಇರುವ ಪಠ್ಯದಲ್ಲಿ ಸ್ಥಳ ಒದಗಿಸಬೇಕಾಗುತ್ತದೆ (ಅಥವಾ ಕೆಲವೊಂದು ಸಂದರ್ಭಗಳಲ್ಲಿ ಉತ್ತರದ ಪಠ್ಯವನ್ನು ಸೃಷ್ಟಿಸಬೇಕು).
+* **ಪಠ್ಯ ಸೃಷ್ಟಿ** ಎನ್ನುವುದು ಮಾದರಿಯ ಹೊಸ ಪಠ್ಯಗಳನ್ನು ಸೃಷ್ಟಿಸುವ ಸಾಮರ್ಥ್ಯವಾಗಿದೆ. ಇದನ್ನು ಕೆಲವೊಂದು *ಪಠ್ಯ ಸೂಚನೆ* ಆಧರಿಸಿ ಮುಂದಿನ ಅಕ್ಷರ/ಪದವನ್ನು ಊಹಿಸುವ ವರ್ಗೀಕರಣ ಕಾರ್ಯವೆಂದು ಪರಿಗಣಿಸಬಹುದು. GPT-3ಂತಹ ಮುಂದುವರೆದ ಪಠ್ಯ ಸೃಷ್ಟಿ ಮಾದರಿಗಳು [ಪ್ರಾಂಪ್ಟ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್](https://towardsdatascience.com/software-3-0-how-prompting-will-change-the-rules-of-the-game-a982fbfe1e0) ಅಥವಾ [ಪ್ರಾಂಪ್ಟ್ ಇಂಜಿನಿಯರಿಂಗ್](https://medium.com/swlh/openai-gpt-3-and-prompt-engineering-dcdc2c5fcd29) ಎನ್ನುವ ತಂತ್ರಗಳನ್ನು ಬಳಸಿ ಇತರೆ NLP ಕಾರ್ಯಗಳನ್ನು ವಿಶ್ಲೇಷಣೆ ಸೇರಿದಂತೆ ಬಗೆಹರಿಸಬಲ್ಲವು.
+* **ಪಠ್ಯ ಸಂಕ್ಷೇಪಣೆ** ಎಂದರೆ ಗಣಕ ಯಂತ್ರವು ದೀರ್ಘ ಪಠ್ಯವನ್ನು "ಓದಿ" ಕೆಲವು ವಾಕ್ಯಗಳಲ್ಲಿ ಸಂಕ್ಷೇಪಿಸುವ ತಂತ್ರ.
+* **ಯಂತ್ರ ಭಾಷಾಂತರ** ಅನ್ನು ಒಂದು ಭಾಷೆಯಲ್ಲಿ ಪಠ್ಯ ಬುದ್ಧಿವಂತಿಕೆಯನ್ನು ಮತ್ತು ಇನ್ನೊಂದು ಭಾಷೆಯಲ್ಲಿ ಪಠ್ಯ ಸೃಷ್ಟಿಮಾಡುವ ಸಂಯೋಜನೆಯಾಗಿ ನೋಡಬಹುದು.
-ಆರಂಭದಲ್ಲಿ, ಹೆಚ್ಚಿನ NLP ಕಾರ್ಯಗಳನ್ನು ವ್ಯಾಕರಣಗಳಂತಹ ಪರಂಪರাগত ವಿಧಾನಗಳಿಂದ ಪರಿಹರಿಸಲಾಗುತ್ತಿತ್ತು. ಉದಾಹರಣೆಗೆ, ಯಂತ್ರ ಅನುವಾದದಲ್ಲಿ ಪ್ರಾರಂಭಿಕ ವಾಕ್ಯವನ್ನು ವ್ಯಾಕರಣ ವೃಕ್ಷಕ್ಕೆ ಪರಿವರ್ತಿಸಲು ಪಾರ್ಸರ್ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತಿತ್ತು, ನಂತರ ವಾಕ್ಯದ ಅರ್ಥವನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಉನ್ನತ ಮಟ್ಟದ ಅರ್ಥಾತ್ಮಕ ರಚನೆಗಳನ್ನು ಹೊರತೆಗೆಯಲಾಗುತ್ತಿತ್ತು, ಮತ್ತು ಈ ಅರ್ಥ ಮತ್ತು ಗುರಿ ಭಾಷೆಯ ವ್ಯಾಕರಣ ಆಧರಿಸಿ ಫಲಿತಾಂಶವನ್ನು ರಚಿಸಲಾಗುತ್ತಿತ್ತು. ಇಂದಿನ ದಿನಗಳಲ್ಲಿ, ಅನೇಕ NLP ಕಾರ್ಯಗಳನ್ನು ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳ ಮೂಲಕ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಪರಿಹರಿಸಲಾಗುತ್ತಿದೆ.
+ಪ್ರಾರಂಭದಲ್ಲಿ ಬಹುತೇಕ NLP ಕಾರ್ಯಗಳನ್ನು ವ್ಯಾಕರಣಗಳಂತಹ ಪರಂಪರागत ವಿಧಾನಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಪರಿಹರಿಸಲಾಗುತಿತ್ತು. ಉದಾಹರಣೆಗೆ, ಯಂತ್ರ ಭಾಷಾಂತರದಲ್ಲಿ ಆವೃತ್ತಿ ವಾಕ್ಯವನ್ನು ವಾಕ್ಯವಿಜ್ಞಾನ ಮರವಾಗಿಕೊಡಲು ಪಾರ್ಸರ್ಗಳು ಉಪಯೋಗಿಸಲಾಯಿತು, ನಂತರ ವಾಕ್ಯದ ಅರ್ಥವನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಉನ್ನತತಮ ಸ್ಥಾನದ ಅರ್ಥಿಕ ರಚನೆಗಳನ್ನು ತೆಗೆಯಲಾಯಿತು ಮತ್ತು ಗುರಿ ಭಾಷೆಯ ವ್ಯಾಕರಣ ಆಧರಿಸಿ ಫಲಿತಾಂಶವನ್ನು ಸೃಷ್ಟಿಸಲಾಯಿತು. ಇತ್ತೀಚೆಗೆ, ಅನೇಕ NLP ಕಾರ್ಯಗಳನ್ನು ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳ ಬಳಕೆಯೊಂದಿಗೆ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಪರಿಹರಿಸಲಾಗುತ್ತಿದೆ.
-> ಅನೇಕ ಶ್ರೇಷ್ಟ NLP ವಿಧಾನಗಳು [Natural Language Processing Toolkit (NLTK)](https://www.nltk.org) ಪೈಥಾನ್ ಗ್ರಂಥಾಲಯದಲ್ಲಿ ಅನುಷ್ಠಾನಗೊಳ್ಳುತ್ತವೆ. ವಿವಿಧ NLP ಕಾರ್ಯಗಳನ್ನು NLTK ಬಳಸಿ ಹೇಗೆ ಪರಿಹರಿಸಬಹುದು ಎಂಬುದನ್ನು ವಿವರಿಸುವ [NLTK ಪುಸ್ತಕ](https://www.nltk.org/book/) ಆನ್ಲೈನ್ನಲ್ಲಿ ಲಭ್ಯವಿದೆ.
+> ಬಹುತೇಕ ಶ್ರೇಷ್ಟ ಪರಂಪರাগত NLP ವಿಧಾನಗಳು [ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ ಉಪಕರಣ ಕಿಟ್ (NLTK)](https://www.nltk.org) ಮೇಲಾಗಿರುವ ಪೈಥಾನ್ ಗ್ರಂಥಾಲಯದಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿವೆ. ವಿಭಿನ್ನ NLP ಕಾರ್ಯಗಳನ್ನು NLTK ಬಳಸಿಕೊಂಡು ಹೇಗೆ ಬಗೆಹರಿಸಬಹುದು ಎಂಬುದನ್ನು ಒಳಗೊಂಡ ಅತ್ಯುತ್ತಮ [NLTK ಪುಸ್ತಕ](https://www.nltk.org/book/) ಆನ್ಲાઈન ಲಭ್ಯವಿದೆ.
-ನಮ್ಮ ಕೋರ್ಸ್ನಲ್ಲಿ, ನಾವು ಮುಖ್ಯವಾಗಿ NLP ಗಾಗಿ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಬಳಸುವುದರ ಮೇಲೆ ಗಮನಹರಿಸುವೆವು ಮತ್ತು ಅಗತ್ಯವಿದ್ದಲ್ಲಿ NLTK ಅನ್ನು ಬಳಸುವೆವು.
+ನಮ್ಮ ಕೋರ್ಸ್ನಲ್ಲಿ, ನಾವು ಹೆಚ್ಚಿನ ಅವಧಿಗೆ NLPಗಾಗಿ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಬಳಸುತ್ತೇವೆ ಮತ್ತು ಅಗತ್ಯಪಡಿಸಿದರೆ NLTK ಕೂಡ ಬಳಸುತ್ತೇವೆ.
-ನಾವು ಈಗಾಗಲೇ ಟೇಬ್ಯುಲರ್ ಡೇಟಾ ಮತ್ತು ಚಿತ್ರಗಳೊಂದಿಗೆ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಬಳಸುವುದನ್ನು ಕಲಿತಿದ್ದೇವೆ. ಆ ಡೇಟಾ ಪ್ರಕಾರಗಳ ಮತ್ತು ಪಠ್ಯದ ನಡುವಿನ ಮುಖ್ಯ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಪಠ್ಯವು ಬದಲಾಗುವ ಉದ್ದದ ಕ್ರಮವಾಗಿದ್ದು, ಚಿತ್ರಗಳ ಇನ್ಪುಟ್ ಗಾತ್ರ ಮುಂಚಿತವಾಗಿ ತಿಳಿದಿರುತ್ತದೆ. ಸಂವೇದಿ ನೆಟ್ವರ್ಕ್ಗಳು ಇನ್ಪುಟ್ ಡೇಟಾದಿಂದ ಮಾದರಿಗಳನ್ನು ಹೊರತೆಗೆಯಬಹುದು, ಆದರೆ ಪಠ್ಯದ ಮಾದರಿಗಳು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗಿವೆ. ಉದಾ., ನಕಾರಾತ್ಮಕತೆ ವಿಷಯದಿಂದ ದೂರವಿರುವ ಪದಗಳ ನಡುವೆ ಇರಬಹುದು (ಉದಾ. *ನನಗೆ ಕಿತ್ತಳೆಗಳು ಇಷ್ಟವಿಲ್ಲ*, ಮತ್ತು *ನನಗೆ ಆ ದೊಡ್ಡ ಬಣ್ಣಬರಹದ ರುಚಿಕರ ಕಿತ್ತಳೆಗಳು ಇಷ್ಟವಿಲ್ಲ*), ಮತ್ತು ಅದನ್ನು ಒಂದೇ ಮಾದರಿಯಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು. ಆದ್ದರಿಂದ, ಭಾಷೆಯನ್ನು ನಿರ್ವಹಿಸಲು ನಾವು ಹೊಸ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಪ್ರಕಾರಗಳನ್ನು ಪರಿಚಯಿಸಬೇಕಾಗುತ್ತದೆ, ಉದಾ. *ಪುನರಾವರ್ತಿತ ನೆಟ್ವರ್ಕ್ಗಳು* ಮತ್ತು *ಟ್ರಾನ್ಸ್ಫಾರ್ಮರ್ಗಳು*.
+ನಾವು ಈಗಾಗಲೇ ಟ್ಯಾಬ್ಯುಲರ್ ಡೇಟಾ ಮತ್ತು ಚಿತ್ರಗಳನ್ನು ಹೊಂದಿರುವಲ್ಲಿ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಬಳಸಿದ ಬಗ್ಗೆ ಕಲಿತಿದ್ದೇವೆ. ಆ ಡೇಟಾ ಪ್ರಕಾರಗಳ ಮತ್ತು ಪಠ್ಯದ ಮುಖ್ಯ ಅಂತರ್ಬೇದವು ಪಠ್ಯದ ಕ್ರಮವು ಬದಲಾಗುವ ಉದ್ದದ ಒಂದು ಶ್ರೇಣಿ ಆಗಿದ್ದರೆ, ಚಿತ್ರಗಳ ಇನ್ಪುಟ್ ಗಾತ್ರವನ್ನು ಪೂರ್ವನಿಗದಿಪಡಿಸಲಾಗಿದೆ ಎಂದು ತಿಳಿದುಕೊಳ್ಳಲಾಗಿದೆ. ಸಮೂಕ ಗುಣಗಳು ಇನ್ಪುಟ್ ಡೇಟಾದಿಂದ ಹೊರತರಬಹುದು ಎಂದು ಸನ್ವಲಯಿತ ಜಾಲಗಳು ಹೇಗೆ ಪ್ರಕಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆಯೋ, ಪಠ್ಯದ ಪ್ರಕಾರಗಳು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗಿವೆ. ಉದಾ., ನಿರಾಕರಣವು ವಿಷಯದಿಂದ ಬೇರ್ಪಡಿಸಬಹುದಾದಷ್ಟು ಹಲವಾರು ಪದಗಳಿಗೆ (ಉದಾ. *ನನಗೆ ಬೆರಳುಹಣ್ಣುಗಳ ಇಷ್ಟವಿಲ್ಲ*, ಹೋಲಿಕೆ ಮಾಡಿರುವಂತೆ *ನನಗೆ ಆ ದೊಡ್ಡ ಬಣ್ಣಬರದ ರುಚಿಕರ ಬೆರಳುಹಣ್ಣುಗಳು ಇಷ್ಟವಿಲ್ಲ*) ಇರಬಹುದು, ಆದರೂ ಇದು ಒಂದು ಪ್ರಕಾರವನು ತಾಳಿಕೊಳ್ಳಬೇಕು. ಹೀಗಾಗಿ, ಭಾಷೆಯನ್ನು ನಿರ್ವಹಿಸಲು ನಾವು ಹೊಸ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ ಪ್ರಕಾರಗಳನ್ನು ಪರಿಚಯಿಸಬೇಕಾಗುತ್ತದೆ, ಉದಾ., *ಪುನರಾವೃತ್ತ ಜಾಲಗಳು* ಮತ್ತು *ರೂಪಾಂತರಕಗಳು*.
## ಗ್ರಂಥಾಲಯಗಳನ್ನು ಸ್ಥಾಪಿಸಿ
-ನೀವು ಈ ಕೋರ್ಸ್ ಅನ್ನು ಸ್ಥಳೀಯ ಪೈಥಾನ್ ಸ್ಥಾಪನೆಯೊಂದಿಗೆ ನಡೆಸುತ್ತಿದ್ದರೆ, ಕೆಳಗಿನ ಆಜ್ಞೆಗಳನ್ನು ಬಳಸಿ NLP ಗಾಗಿ ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಸ್ಥಾಪಿಸಬೇಕಾಗಬಹುದು:
+ನೀವು ಈ ಕೋರ್ಸ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡಲು ಸ್ಥಳೀಯ ಪೈಥಾನ್ ಸ್ಥಾಪನೆ ಅನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ಕೆಳಗಿನ ಆಜ್ಞೆಗಳನ್ನು ಬಳಸಿ NLPಗೆ ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಸ್ಥಾಪಿಸಬೇಕಾಗಬಹುದು:
-**ಪೈಟಾರ್ಚ್ ಗಾಗಿ**
+**ಪೈಟಾರ್ಚ್ಗಾಗಿ**
```bash
-pip install -r requirements-torch.txt
+pip install -r requirements-pytorch.txt
```
-**ಟೆನ್ಸರ್ಫ್ಲೋ ಗಾಗಿ**
+**ಟೆನ್ಸರ್ಫ್ಲೋಗಾಗಿ**
```bash
pip install -r requirements-tf.txt
```
-> ನೀವು [Microsoft Learn](https://docs.microsoft.com/learn/modules/intro-natural-language-processing-tensorflow/?WT.mc_id=academic-77998-cacaste) ನಲ್ಲಿ ಟೆನ್ಸರ್ಫ್ಲೋ ಬಳಸಿ NLP ಪ್ರಯತ್ನಿಸಬಹುದು
+> ನೀವು [Microsoft Learn](https://docs.microsoft.com/learn/modules/intro-natural-language-processing-tensorflow/?WT.mc_id=academic-77998-cacaste) ನಲ್ಲಿ ಟೆನ್ಸರ್ಫ್ಲೋ ಸಹಿತ NLP ಪ್ರಯತ್ನಿಸಬಹುದು
-## GPU ಎಚ್ಚರಿಕೆ
+## ಜಿಪಿಯು ಎಚ್ಚರಿಕೆ
-ಈ ವಿಭಾಗದಲ್ಲಿ, ಕೆಲವು ಉದಾಹರಣೆಗಳಲ್ಲಿ ನಾವು ಬಹಳ ದೊಡ್ಡ ಮಾದರಿಗಳನ್ನು ತರಬೇತುಗೊಳಿಸುವೆವು.
-* **GPU-ಸಕ್ರಿಯ ಕಂಪ್ಯೂಟರ್ ಬಳಸಿ**: ದೊಡ್ಡ ಮಾದರಿಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ಕಾಯುವ ಸಮಯವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ನಿಮ್ಮ ನೋಟ್ಬುಕ್ಗಳನ್ನು GPU-ಸಕ್ರಿಯ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ನಡೆಸುವುದು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ.
-* **GPU ಮೆಮೊರಿ ಮಿತಿಗಳು**: ದೊಡ್ಡ ಮಾದರಿಗಳನ್ನು ತರಬೇತುಗೊಳಿಸುವಾಗ GPU ಮೆಮೊರಿ ಮುಗಿಯುವ ಪರಿಸ್ಥಿತಿಗಳು ಸಂಭವಿಸಬಹುದು.
-* **GPU ಮೆಮೊರಿ ಬಳಕೆ**: ತರಬೇತಿ ಸಮಯದಲ್ಲಿ ಬಳಕೆಯಾದ GPU ಮೆಮೊರಿ ಪ್ರಮಾಣವು ವಿವಿಧ ಅಂಶಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ, ಅದರಲ್ಲಿ ಮಿನಿಬ್ಯಾಚ್ ಗಾತ್ರವೂ ಸೇರಿದೆ.
-* **ಮಿನಿಬ್ಯಾಚ್ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಿ**: GPU ಮೆಮೊರಿ ಸಮಸ್ಯೆ ಎದುರಾದರೆ, ನಿಮ್ಮ ಕೋಡ್ನಲ್ಲಿ ಮಿನಿಬ್ಯಾಚ್ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡುವುದನ್ನು ಪರಿಗಣಿಸಿ.
-* **ಟೆನ್ಸರ್ಫ್ಲೋ GPU ಮೆಮೊರಿ ಬಿಡುಗಡೆ**: ಹಳೆಯ ಟೆನ್ಸರ್ಫ್ಲೋ ಆವೃತ್ತಿಗಳು ಒಂದೇ ಪೈಥಾನ್ ಕರ್ಣಲ್ನಲ್ಲಿ ಅನೇಕ ಮಾದರಿಗಳನ್ನು ತರಬೇತುಗೊಳಿಸುವಾಗ GPU ಮೆಮೊರಿಯನ್ನು ಸರಿಯಾಗಿ ಬಿಡುಗಡೆ ಮಾಡದಿರಬಹುದು. GPU ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸಲು, ಟೆನ್ಸರ್ಫ್ಲೋವನ್ನು ಅಗತ್ಯವಿರುವಷ್ಟೇ GPU ಮೆಮೊರಿ ಹಂಚಿಕೊಳ್ಳುವಂತೆ ಸಂರಚಿಸಬಹುದು.
-* **ಕೋಡ್ ಸೇರಿಸುವಿಕೆ**: ಟೆನ್ಸರ್ಫ್ಲೋವನ್ನು ಅಗತ್ಯವಿರುವಾಗ ಮಾತ್ರ GPU ಮೆಮೊರಿ ಹಂಚಿಕೊಳ್ಳುವಂತೆ ಹೊಂದಿಸಲು, ನಿಮ್ಮ ನೋಟ್ಬುಕ್ಗಳಲ್ಲಿ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ:
+ಈ ವಿಭಾಗದಲ್ಲಿ, ಕೆಲವು ಉದಾಹರಣೆಗಳಲ್ಲಿ ನಾವು ತುಂಬಾ ದೊಡ್ಡ ಮಾದರಿಗಳನ್ನು ತರಬೇತಿ ನೀಡಲಿದ್ದೇವೆ.
+* **ಜಿಪಿಯು ಸಕ್ರೀಯ ಕಂಪ್ಯೂಟರ್ ಬಳಸಿ**: ದೊಡ್ಡ ಮಾದರಿಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ಕಾಯುವ ಸಮಯವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಜಿಪಿಯು ಸಕ್ರೀಯ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ನಿಮ್ಮ ನೋಟ್ಬುಕ್ಗಳನ್ನು ಚಾಲನೆಯಲ್ಲಿಡುವುದು ಸೂಕ್ತ.
+* **ಜಿಪಿಯು ಸ್ಮೃತಿ ನಿರ್ಬಂಧಗಳು**: ದೊಡ್ಡ ಮಾದರಿಗಳನ್ನು ತರಬೇತಿ ನೀಡಬಹುದಾದಾಗ ಜಿಪಿಯು ಸ್ಮೃತಿಯನ್ನು ದಾಟಿ ಹೋಗುವ ಸ್ಥಿತಿಗಳು ಬರುವ ಸಾಧ್ಯತೆ ಇದೆ.
+* **ಜಿಪಿಯು ಸ್ಮೃತಿ ಬಳಕೆ**: ತರಬೇತಿ ವೇಳೆ ಬಳಕೆಯಾಗುವ ಜಿಪಿಯು ಸ್ಮೃತಿ ಪ್ರಮಾಣವು ವಿಭಿನ್ನ ಅಂಶಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ, ತನಿಖಾ ಬ್ಯಾಚ್ ಗಾತ್ರ ಕೂಡ ಒಂದಾಗಿದೆ.
+* **ತನಿಖಾ ಬ್ಯಾಚ್ ಗಾತ್ರ ಕಡಿಮೆ ಮಾಡಿ**: ನೀವು ಜಿಪಿಯು ಸ್ಮೃತಿ ಸಮಸ್ಯೆಗಳನ್ನು ಎದುರಿಸಿದರೆ, ನಿಮ್ಮ ಕೋಡ್ನಲ್ಲಿ tiny ಬ್ಯಾಚ್ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡುವುದನ್ನು ಪರಿಗಣಿಸಿ.
+* **ಟೆನ್ಸರ್ಫ್ಲೋ ಜಿಪಿಯು ಸ್ಮೃತಿ ಬಿಡುಗಡೆ**: ಹಳೆಯ ಟENSORFLOW ಆವೃತ್ತಿಗಳು ಒಂದು ಪೈಥಾನ್ ಕರ್ಣಲ್ನಲ್ಲಿ ಹಲವು ಮಾದರಿಗಳನ್ನು ತರಬೇತಿ ನೀಡುವಾಗ ಜಿಪಿಯು ಸ್ಮೃತಿಯನ್ನು ಸರಿಯಾಗಿ ಬಿಡುಗಡೆ ಮಾಡದೆ ಇರಬಹುದು. ಜಿಪಿಯು ಸ್ಮೃತಿ ಬಳಕೆಯನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸಲು, ಟೆನ್ಸರ್ಫ್ಲೋಯನ್ನು ಜಿಪಿಯು ಸ್ಮೃತಿ ಅಗತ್ಯವಿರುವಾಗ ಮಾತ್ರ ಹಂಚಿಕೊಂಡಂತೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು.
+* **ಕೋಡ್ ಸೇರಿಸೋದು**: ಟೆನ್ಸರ್ಫ್ಲೋಯನ್ನು ಜಿಪಿಯು ಸ್ಮೃತಿ ಅಗತ್ಯವಿರುವಾಗ ಮಾತ್ರ ವಿಸ್ತರಿಸುವಂತೆ ಸೆಟ್ಟು ಮಾಡಲು, ನಿಮ್ಮ ನೋಟ್ಬುಕ್ಗಳಲ್ಲಿ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ:
```python
physical_devices = tf.config.list_physical_devices('GPU')
@@ -53,21 +53,21 @@ if len(physical_devices)>0:
tf.config.experimental.set_memory_growth(physical_devices[0], True)
```
-ನೀವು ಶ್ರೇಷ್ಟ ML ದೃಷ್ಟಿಕೋನದಿಂದ NLP ಕಲಿಯಲು ಆಸಕ್ತರಾಗಿದ್ದರೆ, [ಈ ಪಾಠಗಳ ಸರಣಿಯನ್ನು](https://github.com/microsoft/ML-For-Beginners/tree/main/6-NLP) ಭೇಟಿ ನೀಡಿ
+ನೀವು ಶ್ರೇಷ್ಟ ML ದೃಷ್ಟಿಕೋನದಿಂದ NLP ಕಲಿಯಲು ಆಸಕ್ತಿ ಹೊಂದಿದ್ದರೆ, [ಈ ಪಾಠಗಳ ಸರಣಿಯನ್ನು](https://github.com/microsoft/ML-For-Beginners/tree/main/6-NLP) ಭೇಟಿ ಮಾಡಿ
## ಈ ವಿಭಾಗದಲ್ಲಿ
-ಈ ವಿಭಾಗದಲ್ಲಿ ನಾವು ಕಲಿಯುವ ವಿಷಯಗಳು:
+ಈ ವಿಭಾಗದಲ್ಲಿ ನಾವು ಕಲಿಯಲಿರುವುದು:
-* [ಪಠ್ಯವನ್ನು ಟೆನ್ಸರ್ಗಳಾಗಿ ಪ್ರತಿನಿಧಿಸುವುದು](13-TextRep/README.md)
-* [ಪದ ನುಡಿಗಳು](14-Emdeddings/README.md)
-* [ಭಾಷಾ ಮಾದರೀಕರಣ](15-LanguageModeling/README.md)
-* [ಪುನರಾವರ್ತಿತ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು](16-RNN/README.md)
-* [ಜನರೇಟಿವ್ ನೆಟ್ವರ್ಕ್ಗಳು](17-GenerativeNetworks/README.md)
-* [ಟ್ರಾನ್ಸ್ಫಾರ್ಮರ್ಗಳು](18-Transformers/README.md)
+* [ಪಠ್ಯವನ್ನು ಟೆನ್ಸರ್ಗಳಾಗಿ ಪ್ರತಿನಿಧಿಸುವಿಕೆ](13-TextRep/README.md)
+* [ಪದ embeddings](14-Emdeddings/README.md)
+* [ಭಾಷಾ ಮಾದರಿಕರಣ](15-LanguageModeling/README.md)
+* [ಪುನರಾವೃತ್ತ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು](16-RNN/README.md)
+* [ಸೃಜನಾತ್ಮಕ ಜಾಲಗಳು](17-GenerativeNetworks/README.md)
+* [ರೂಪಾಂತರಕಗಳು](18-Transformers/README.md)
---
-**ಅಸ್ವೀಕರಣ**:
-ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
+**ಅಸ್ವೀಕಾರ**:
+ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯನ್ನು ಸಾಧಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ದಯವಿಟ್ಟು ಗಮನಿಸಿ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸಡ್ಡೆಗಳು ಇರಬಹುದು. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜು ಪ್ರಾಮಾಣಿಕ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದವನ್ನು ಬಳಸುವ ಮೂಲಕ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಗಳ ಅಥವಾ ತಪ್ಪು ವ್ಯಾಖ್ಯಾನಗಳ ಬಗ್ಗೆ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ.
\ No newline at end of file
diff --git a/translations/ml/.co-op-translator.json b/translations/ml/.co-op-translator.json
index 6bd8728b..2d9c69e8 100644
--- a/translations/ml/.co-op-translator.json
+++ b/translations/ml/.co-op-translator.json
@@ -1,10 +1,16 @@
{
"AGENTS.md": {
"original_hash": "6b11a37115944252ab3ed04e358d830d",
- "translation_date": "2025-11-25T19:53:59+00:00",
+ "translation_date": "2026-07-08T20:28:27+00:00",
"source_file": "AGENTS.md",
"language_code": "ml"
},
+ "CONTRIBUTING.md": {
+ "original_hash": "c6fd7e781b67111a90abd166d0ce4aa0",
+ "translation_date": "2026-07-08T20:51:15+00:00",
+ "source_file": "CONTRIBUTING.md",
+ "language_code": "ml"
+ },
"README.md": {
"original_hash": "12c8eb6bf0867d2f1c32daf613ac5b8b",
"translation_date": "2026-04-06T16:54:02+00:00",
@@ -17,6 +23,19 @@
"source_file": "SECURITY.md",
"language_code": "ml"
},
+ "__translation_failures__": {
+ "lessons/sketchnotes/LICENSE.md": {
+ "original_hash": "45ab63a2cd8f5faef6c9b150618837a4",
+ "source_file": "lessons/sketchnotes/LICENSE.md",
+ "language_code": "ml",
+ "failure_date": "2026-07-08T20:34:14+00:00",
+ "status": "failed",
+ "error_type": "TranslationIncompleteError",
+ "error_message": "Markdown translation remained incomplete for chunk 1.1.1 of 'LICENSE.md', and the chunk could not be split further.",
+ "translator_version": "0.20.0",
+ "failure_policy_version": 1
+ }
+ },
"etc/CODE_OF_CONDUCT.md": {
"original_hash": "c06b12caf3c901eb3156e3dd5b0aea56",
"translation_date": "2025-11-25T20:22:23+00:00",
@@ -54,8 +73,8 @@
"language_code": "ml"
},
"examples/README.md": {
- "original_hash": "0d1babfdcbeb46525f2db3fbaaa54cd7",
- "translation_date": "2025-11-25T20:34:04+00:00",
+ "original_hash": "7883d52c2e2a221e0b07a7b112a149b9",
+ "translation_date": "2026-07-08T20:28:49+00:00",
"source_file": "examples/README.md",
"language_code": "ml"
},
@@ -66,8 +85,8 @@
"language_code": "ml"
},
"lessons/0-course-setup/how-to-run.md": {
- "original_hash": "a4717bd9103b9f6cd84d534b83534689",
- "translation_date": "2026-01-17T02:14:15+00:00",
+ "original_hash": "7ad8c7d8604c53649b3d4d1e2f3a6fa1",
+ "translation_date": "2026-07-08T20:29:14+00:00",
"source_file": "lessons/0-course-setup/how-to-run.md",
"language_code": "ml"
},
@@ -191,6 +210,12 @@
"source_file": "lessons/4-ComputerVision/08-TransferLearning/TrainingTricks.md",
"language_code": "ml"
},
+ "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb": {
+ "original_hash": "99b816b6a4957ef4100cee4c4221dff9",
+ "translation_date": "2026-07-08T20:23:12+00:00",
+ "source_file": "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb",
+ "language_code": "ml"
+ },
"lessons/4-ComputerVision/08-TransferLearning/lab/README.md": {
"original_hash": "7765935c35fcee69b9fe2d0cfd6963e2",
"translation_date": "2025-11-25T22:43:57+00:00",
@@ -330,8 +355,8 @@
"language_code": "ml"
},
"lessons/5-NLP/README.md": {
- "original_hash": "8ef02a9318257ea140ed3ed74442096d",
- "translation_date": "2025-11-25T21:14:29+00:00",
+ "original_hash": "038df6f1a73e49f6430740da083bfd6d",
+ "translation_date": "2026-07-08T20:29:51+00:00",
"source_file": "lessons/5-NLP/README.md",
"language_code": "ml"
},
diff --git a/translations/ml/AGENTS.md b/translations/ml/AGENTS.md
index 896cb217..19ef2303 100644
--- a/translations/ml/AGENTS.md
+++ b/translations/ml/AGENTS.md
@@ -1,141 +1,136 @@
# AGENTS.md
-## പ്രോജക്ട് അവലോകനം
+## പദ്ധതിയുടെ അവലോകനം
-AI for Beginners ഒരു സമഗ്രമായ 12 ആഴ്ച, 24 പാഠങ്ങളുള്ള പാഠ്യപദ്ധതിയാണ്, ഇത് കൃത്രിമ ബുദ്ധിമുട്ടിന്റെ അടിസ്ഥാനങ്ങൾ ഉൾക്കൊള്ളുന്നു. ഈ വിദ്യാഭ്യാസ സംഭരണം പ്രായോഗിക പാഠങ്ങൾ Jupyter Notebooks ഉപയോഗിച്ച്, ക്വിസുകൾ, ഹാൻഡ്സ്-ഓൺ ലാബുകൾ എന്നിവ ഉൾക്കൊള്ളുന്നു. പാഠ്യപദ്ധതി ഉൾക്കൊള്ളുന്നത്:
+കൃത്രിമ ബുദ്ധിമുട്ടിന്റെ അടിസ്ഥാനതത്വങ്ങളെ ഉൾക്കൊള്ളുന്ന സമഗ്രമായ 12 ആഴ്ച, 24 പാഠപദ്ധതിയായ AI for Beginners. Jupyter നോട്ട്ബുക്കുകൾ, ക്വിസ്, ഹാൻഡ്സോൺ ലാബുകൾ എന്നിവ ഉപയോഗിച്ച് പ്രായോഗിക പാഠങ്ങൾ ഉൾക്കൊള്ളുന്ന ഈ വിദ്യാഭ്യാസ റീപ്പോസിറ്ററി. പാഠപദ്ധതി ഉൾക്കൊള്ളുന്നു:
-- നിഘണ്ടു പ്രതിനിധാനം, വിദഗ്ധ സിസ്റ്റങ്ങൾ എന്നിവയുള്ള സിംബോളിക് AI
-- TensorFlow, PyTorch ഉപയോഗിച്ചുള്ള ന്യൂറൽ നെറ്റ്വർക്കുകളും ഡീപ്പ് ലേണിംഗും
-- കമ്പ്യൂട്ടർ വിഷൻ സാങ്കേതിക വിദ്യകളും ആർക്കിടെക്ചറുകളും
-- ട്രാൻസ്ഫോർമറുകളും BERT ഉൾപ്പെടെയുള്ള നാചുറൽ ലാംഗ്വേജ് പ്രോസസ്സിംഗ് (NLP)
-- പ്രത്യേക വിഷയങ്ങൾ: ജെനറ്റിക് ആൽഗോരിതങ്ങൾ, റീ ഇൻഫോഴ്സ്മെന്റ് ലേണിംഗ്, മൾട്ടി-ഏജന്റ് സിസ്റ്റങ്ങൾ
-- AI നൈതികതയും ഉത്തരവാദിത്വമുള്ള AI സിദ്ധാന്തങ്ങളും
+- കൃത്യമായ ബുദ്ധിമുട്ട് (Symbolic AI) ന知识 പ്രതിനിധീകരണവും വിദഗ്ധ സമ്പ്രദായങ്ങളും
+- TensorFlow ഉം PyTorch ഉം ഉപയോഗിച്ച് നറുകപ്പെട്ട നെറ്റ്വർക്കുകളും ഡീപ് ലേർണിങ്ങും
+- കമ്പ്യൂട്ടർ വിഷ്വൽ സാങ്കേതിക വിദ്യകളും ഘടനകളും
+- ട്രാൻസ്ഫോർമറുകളും BERT ഉം ഉൾപ്പെടുന്ന പ്രകൃതി ഭാഷാ പ്രോസസ്സിംഗ് (NLP)
+- പ്രത്യേക വിഷയങ്ങൾ: ജനിതക ആൽഗോരിതങ്ങൾ, ശക്തീകരണ പഠനം, മൾട്ടി-എജന്റ് സംവിധാനങ്ങൾ
+- AI എഥിക്സ്, ഉത്തരവാദിത്വമുള്ള AI സിദ്ധാന്തങ്ങൾ
-**പ്രധാന സാങ്കേതികവിദ്യകൾ:** Python 3, Jupyter Notebooks, TensorFlow, PyTorch, Keras, OpenCV, Vue.js (ക്വിസ് ആപ്പിനായി)
+**പ്രധാന സാങ്കേതികവിദ്യകൾ:** Python 3, Jupyter നോട്ട്ബുക്കുകൾ, TensorFlow, PyTorch, Keras, OpenCV, Vue.js (ക്വിസ് ആപ്പിന്)
-**ആർക്കിടെക്ചർ:** വിഷയപ്രകാരം ക്രമീകരിച്ച Jupyter Notebooks ഉള്ള വിദ്യാഭ്യാസ ഉള്ളടക്ക സംഭരണം, Vue.js അടിസ്ഥാനമാക്കിയുള്ള ക്വിസ് ആപ്പ്, വ്യാപകമായ ബഹുഭാഷാ പിന്തുണ.
+**ഘടന:** വിഷയംപ്രകാരം ക്രമീകരിച്ച Jupyter നോട്ട്ബുക്കുകളുള്ള വിദ്യാഭ്യാസ ഉള്ളടക്ക റീപ്പോസിറ്ററി, Vue.js അടിസ്ഥാനത്തിലുള്ള ക്വിസ് ആപ്പ്, വ്യാപകമായ ബഹുഭാഷാ പിന്തുണ.
-## സെറ്റപ്പ് കമാൻഡുകൾ
+## സജ്ജീകരണ കമാൻഡുകൾ
-### പ്രാഥമിക ഡെവലപ്പ്മെന്റ് പരിസ്ഥിതി (Python/Jupyter)
+### പ്രാഥമിക വികസന പരിപ്രേക്ഷ്യം (Python/Jupyter)
-പാഠ്യപദ്ധതി Python, Jupyter Notebooks ഉപയോഗിച്ച് പ്രവർത്തിക്കാൻ രൂപകൽപ്പന ചെയ്തതാണ്. ശുപാർശ ചെയ്യുന്നത് miniconda ഉപയോഗിക്കുകയാണ്:
+പാഠപദ്ധതി Python ഉം Jupyter നോട്ട്ബുക്കുകളും ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നതിനു രൂപകല്പ്പന ചെയ്തതാണ്. miniconda ഉപയോഗിക്കുക എന്നതാണ് ശിപാർശ ചെയ്യപ്പെട്ട രീതിയ۔
```bash
# റിപ്പോസിറ്ററി ക്ലോൺ ചെയ്യുക
git clone https://github.com/microsoft/ai-for-beginners
cd ai-for-beginners
-# കോൺഡാ എൻവയോൺമെന്റ് സൃഷ്ടിച്ച് സജീവമാക്കുക
+# കൊണ്ടാ എൻവയോൺമെന്റ് സൃഷ്ടിച്ച് സജീവമാക്കുക
conda env create --name ai4beg --file environment.yml
conda activate ai4beg
-# ജൂപ്പിറ്റർ നോട്ട്ബുക്ക് ആരംഭിക്കുക
+# Jupyter നോട്ട്ബുക്ക് തുടങ്ങുക
jupyter notebook
# അല്ലെങ്കിൽ
jupyter lab
```
-
-### ബദൽ: devcontainer ഉപയോഗിക്കൽ
+### विकल्प: devcontainer ഉപയോഗിക്കൽ
```bash
-# VS കോഡിൽ തുറന്ന് പ്രോംപ്റ്റ് വന്നപ്പോൾ "കണ്ടെയ്നറിൽ വീണ്ടും തുറക്കുക" തിരഞ്ഞെടുക്കുക
-# ഡെവ്കണ്ടെയ്നർ സ്വയം പരിസ്ഥിതി സജ്ജമാക്കും
+# VS കോഡിൽ തുറന്ന് പ്രാപ്തനായപ്പോൾ "കൺറ്റെയിനറിൽ പുനർവിടുക" തെരഞ്ഞെടുക്കുക
+# ഡെവ്കൺറ്റെയ്നർ സ്വയം പരിസ്ഥിതി സജ്ജമാക്കും
```
+### ക്വിസ് ആപ്പ് സജ്ജീകരണം
-### ക്വിസ് ആപ്പ് സെറ്റപ്പ്
-
-ക്വിസ് ആപ്പ് ഒരു വേർതിരിച്ച Vue.js ആപ്പാണ്, സ്ഥിതിചെയ്യുന്നത് `etc/quiz-app/` എന്ന ഫോൾഡറിൽ:
+ക്വിസ് ആപ്പ് സ്വതന്ത്രമായ Vue.js ആപ്പാണ്, `etc/quiz-app/` ൽ സ്ഥിതിചെയ്യുന്നു:
```bash
cd etc/quiz-app
npm install
-npm run serve # വികസന സെർവർ
-npm run build # ഉത്പാദന ബിൽഡ്
-npm run lint # ലിന്റ് ചെയ്ത് ഫയലുകൾ ശരിയാക്കുക
+npm run serve # വികസന സർവർ
+npm run build # ഉത്പാദന നിർമ്മാണം
+npm run lint # ലിന്റും ഫയലുകൾ ശരിയാക്കുക
```
+## വികസനം വർക്ക്ഫ്ലോ
-## ഡെവലപ്പ്മെന്റ് പ്രവൃത്തി പ്രവാഹം
+### Jupyter നോട്ട്ബുക്കുകളുമായി ജോലി ചെയ്യുക
-### Jupyter Notebooks ഉപയോഗിച്ച് ജോലി ചെയ്യൽ
-
-1. **ലോകൽ ഡെവലപ്പ്മെന്റ്:**
+1. **ലോകൽ വികസനം:**
- conda പരിസ്ഥിതി സജീവമാക്കുക: `conda activate ai4beg`
- Jupyter ആരംഭിക്കുക: `jupyter notebook` അല്ലെങ്കിൽ `jupyter lab`
- - പാഠം ഫോൾഡറുകളിലേക്ക് പോകുക, `.ipynb` ഫയലുകൾ തുറക്കുക
+ - പാഠ ഫോൾഡറുകളിലേക്ക് നീങ്ങുക, `.ipynb` ഫയലുകൾ തുറക്കുക
- പാഠങ്ങൾ പിന്തുടരാൻ സെല്ലുകൾ ഇന്ററാക്ടീവായി പ്രവർത്തിപ്പിക്കുക
-2. **Python എക്സ്റ്റൻഷൻ ഉപയോഗിച്ച് VS Code:**
- - റിപോസിറ്ററി VS Code-ൽ തുറക്കുക
+2. **Python എക്സ്റ്റൻഷൻ ഉള്ള VS Code:**
+ - റീപ്പോസിറ്ററി VS Code ൽ തുറക്കുക
- Python എക്സ്റ്റൻഷൻ ഇൻസ്റ്റാൾ ചെയ്യുക
- - VS Code സ്വയം conda പരിസ്ഥിതിയെ കണ്ടെത്തി ഉപയോഗിക്കും
- - `.ipynb` ഫയലുകൾ നേരിട്ട് VS Code-ൽ തുറക്കുക
+ - VS Code സ്വയം conda പരിസ്ഥിതിയെ കണ്ടെത്തുകയും ഉപയോഗിക്കുകയും ചെയ്യും
+ - `.ipynb` ഫയലുകൾ നേരിട്ട് VS Code ൽ തുറക്കുക
-3. **ക്ലൗഡ് ഡെവലപ്പ്മെന്റ്:**
+3. **ക്ലൗഡ് വികസനം:**
- **GitHub Codespaces:** "Code" → "Codespaces" → "Create codespace on main" ക്ലിക്ക് ചെയ്യുക
- - **Binder:** README-യിലെ Binder ബാഡ്ജ് ഉപയോഗിച്ച് ബ്രൗസറിൽ ആരംഭിക്കുക
- - ശ്രദ്ധിക്കുക: Binder-ന് പരിമിതമായ റിസോഴ്സുകളും ചില വെബ് ആക്സസ് നിയന്ത്രണങ്ങളും ഉണ്ട്
+ - **Binder:** READMEയിൽ ഉള്ള Binder ബാഡ്ജ് ഉപയോഗിച്ച് ബ്രൗസറിൽ ആരംഭിക്കുക
+ - കുറിപ്പ്: Binder ലിമിറ്റഡ് റിസോഴ്സുകളുള്ളതാണ്, ചില വെബ് ആക്സസ് നിയന്ത്രണങ്ങളുണ്ട്
-### പുരോഗമന പാഠങ്ങൾക്കുള്ള GPU പിന്തുണ
+### ഉയർന്ന പാഠങ്ങൾക്ക് GPU പിന്തുണ
-പിന്നീട് വരുന്ന പാഠങ്ങൾ GPU ആക്സിലറേഷൻ ഉപയോഗിച്ച് വളരെ പ്രയോജനപ്പെടും:
+പിന്നീട് പാഠങ്ങൾ GPU അനുഗ്രഹനം വലിയ പിന്തുണയുള്ളതാണ്:
-- **Azure Data Science VM:** GPU പിന്തുണയുള്ള NC-സീരീസ് VM-കൾ ഉപയോഗിക്കുക
-- **Azure Machine Learning:** GPU കംപ്യൂട്ട് ഉപയോഗിച്ച് നോട്ട്ബുക്ക് ഫീച്ചറുകൾ ഉപയോഗിക്കുക
-- **Google Colab:** നോട്ട്ബുക്കുകൾ വ്യക്തിഗതമായി അപ്ലോഡ് ചെയ്യുക (ഫ്രീ GPU പിന്തുണയുണ്ട്)
+- **Azure Data Science VM:** GPU പിന്തുണയുള്ള NC-സീരീസ് VMകൾ ഉപയോഗിക്കുക
+- **Azure Machine Learning:** GPU കംപ്യൂട്ടർ പിന്തുണയുള്ള നോട്ട്ബുക്ക് ഫീച്ചറുകൾ ഉപയോഗിക്കുക
+- **Google Colab:** നോട്ട്ബുക്കുകൾ പ്രത്യേകം അപ്ലോഡ് ചെയ്യുക ( സൗജന്യ GPU പിന്തുണയുണ്ട് )
-### ക്വിസ് ആപ്പ് ഡെവലപ്പ്മെന്റ്
+### ക്വിസ് ആപ്പ് വികസനം
```bash
cd etc/quiz-app
-npm run serve # http://localhost:8080 ൽ ഹോട്ട്-റീലോഡ് ഡെവലപ്പ്മെന്റ് സെർവർ
+npm run serve # http://localhost:8080-ലുള്ള ഹോട്ട്-റിലോഡ് വികസന സർവർ
```
+## പരിശോധനാനിർദ്ദേശങ്ങൾ
-## ടെസ്റ്റിംഗ് നിർദ്ദേശങ്ങൾ
-
-ഇത് സോഫ്റ്റ്വെയർ ടെസ്റ്റിംഗിനേക്കാൾ പഠന ഉള്ളടക്കത്തെ കേന്ദ്രീകരിച്ചുള്ള വിദ്യാഭ്യാസ സംഭരണമാണ്. പരമ്പരാഗത ടെസ്റ്റ് സ്യൂട്ട് ഇല്ല.
+സോഫ്റ്റ്വെയർ പരിശോധന ചിലവുകൾക്കല്ല, ഇത് ഒരു വിദ്യാഭ്യാസ റീപ്പോസിറ്ററിയാണ്. പരമ്പരാഗത ടെസ്റ്റ് സ്യൂട്ട് ഇല്ല.
### സാധൂകരിക്കൽ സമീപനങ്ങൾ:
-1. **Jupyter Notebooks:** കോഡ് ഉദാഹരണങ്ങൾ പ്രവർത്തിക്കുന്നുണ്ടോ എന്ന് പരിശോധിക്കാൻ സെല്ലുകൾ ക്രമത്തിൽ പ്രവർത്തിപ്പിക്കുക
-2. **ക്വിസ് ആപ്പ് ടെസ്റ്റിംഗ്:** ഡെവലപ്പ്മെന്റ് സെർവറിലൂടെ മാനുവൽ ടെസ്റ്റിംഗ്
-3. **പരിഭാഷാ സാധൂകരിക്കൽ:** `translations/` ഫോൾഡറിൽ പരിഭാഷാ ഉള്ളടക്കം പരിശോധിക്കുക
-4. **ക്വിസ് ആപ്പ് ലിന്റിംഗ്:** `etc/quiz-app/`-ൽ `npm run lint` പ്രവർത്തിപ്പിക്കുക
+1. **Jupyter നോട്ട്ബുക്കുകൾ:** കോഡ് ഉദാഹരണങ്ങൾ പാടുപെടാതെ പ്രവർത്തിക്കുന്നത് പരിശോധിക്കാൻ സെല്ലുകൾ നിരപരാധിത്വത്തിൽ പ്രവർത്തിപ്പിക്കുക
+2. **ക്വിസ് ആപ്പ് പരിശോധന:** വികസന സർവറിലൂടെ കൈകാര്യം ചെയ്ത പരിശോധന
+3. **മൂല്യനിർണയ പരിശോധന:** `translations/` ഫോൾഡറിലുള്ള പരിഭാഷകൾ പരിശോധിക്കുക
+4. **ക്വിസ് ആപ്പ് ലിന്റിംഗ്:** `etc/quiz-app/` ൽ `npm run lint` നടത്തുക
### കോഡ് ഉദാഹരണങ്ങൾ പ്രവർത്തിപ്പിക്കൽ:
```bash
-# ആദ്യം പരിസ്ഥിതി സജീവമാക്കുക
+# പരിസ്ഥിതി ആദ്യം പ്രാപ്തമാക്കുക
conda activate ai4beg
-# പൈത്തൺ സ്ക്രിപ്റ്റുകൾ നേരിട്ട് പ്രവർത്തിപ്പിക്കുക
+# പൈത്തൺ സ്ക്രിപ്റ്റുകൾ നേരിട്ട് 실행ിക്കുക
python lessons/4-ComputerVision/07-ConvNets/pytorchcv.py
# അല്ലെങ്കിൽ നോട്ട്ബുക്കുകൾ പ്രവർത്തിപ്പിക്കുക
jupyter notebook lessons/3-NeuralNetworks/03-Perceptron/Perceptron.ipynb
```
-
## കോഡ് ശൈലി
### Python കോഡ് ശൈലി
-- വിദ്യാഭ്യാസ കോഡിനായി സ്റ്റാൻഡേർഡ് Python കൺവെൻഷനുകൾ
-- പഠനത്തിന് മുൻഗണന നൽകുന്ന വ്യക്തമായ, വായിക്കാൻ എളുപ്പമുള്ള കോഡ്
-- പ്രധാന ആശയങ്ങൾ വിശദീകരിക്കുന്ന കമന്റുകൾ
-- Jupyter Notebook-സൗഹൃദം: സെല്ലുകൾ സ്വയംപര്യാപ്തമായിരിക്കണം എത്രയും സാധ്യമായിടത്തോളം
-- പാഠ്യപദ്ധതിക്ക് കർശനമായ ലിന്റിംഗ് ആവശ്യകതയില്ല
+- വിദ്യാഭ്യാസ കോഡിനുള്ള സ്റ്റാൻഡേർഡ് Python രീതികൾ പാലിക്കുക
+- പഠനാനുകൂലമായി വ്യക്തമായി വായിക്കാവുന്ന കോഡ്, ഒപ്റ്റിമൈസേഷനിൽ മുൻഗണന നൽകാതെ
+- പ്രധാന ആശയങ്ങൾ വിശദീകരിക്കുന്ന കുറിപ്പുകൾ
+- Jupyter നോട്ട്ബുക്ക് സൗഹൃദം: സെല്ലുകൾ സ്വയംപര്യാപ്തവുമായ മുഖ്യങ്ങള് ആയിരിക്കണം
+- പാഠപദ്ധതി ഉള്ളടക്കത്തിന് കർശനമായ ലിന്റിംഗ് സ്വഭാവമില്ല
### JavaScript/Vue.js (ക്വിസ് ആപ്പ്)
-- `etc/quiz-app/package.json`-ൽ ESLint കോൺഫിഗറേഷൻ
+- `etc/quiz-app/package.json` ൽ ESLint ക്രമീകരണം
- പ്രശ്നങ്ങൾ പരിശോധിക്കാൻ, സ്വയം പരിഹരിക്കാൻ `npm run lint` പ്രവർത്തിപ്പിക്കുക
-- Vue 2.x കൺവെൻഷനുകൾ
-- ഘടക അടിസ്ഥാന ആർക്കിടെക്ചർ
+- Vue 2.x പാരമ്പര്യം
+- ഘടക ആധാരിത ഘടന
### ഫയൽ ക്രമീകരണം
@@ -158,12 +153,11 @@ etc/
translations/ # Multi-language translations
```
-
-## ബിൽഡ് & ഡിപ്ലോയ്മെന്റ്
+## നിർമ്മാണം, വിന്യാസം
### Jupyter ഉള്ളടക്കം
-ബിൽഡ് പ്രക്രിയ ആവശ്യമില്ല - Jupyter Notebooks നേരിട്ട് പ്രവർത്തിപ്പിക്കും.
+നിർമാണ പ്രക്രിയ വേണ്ട - Jupyter നോട്ട്ബുക്കുകൾ നേരിട്ട് പ്രവർത്തിക്കുന്നു.
### ക്വിസ് ആപ്പ്
@@ -174,55 +168,54 @@ cd etc/quiz-app
npm run serve
# ഉത്പാദന ബിൽഡ്
-npm run build # etc/quiz-app/dist/ ലേക്ക് ഔട്ട്പുട്ട്
+npm run build # etc/quiz-app/dist/ ലേക്ക് പുറത്തുവിടുന്നു
-# Azure സ്റ്റാറ്റിക് വെബ് ആപ്പുകളിൽ വിന്യസിക്കുക
-# Azure സ്വയം GitHub Actions വർക്ക്ഫ്ലോ സൃഷ്ടിക്കുന്നു
-# വിശദമായ വിന്യാസ നിർദ്ദേശങ്ങൾക്കായി etc/quiz-app/README.md കാണുക
+# Azure Static Web Apps-ലേക്ക് വിന്യസിക്കുക
+# Azure സ്വയം GitHub Actions പ്രവൃത്തി പ്രക്രിയ സൃഷ്ടിക്കുന്നു
+# വിന്യസന വിശദീകരണങ്ങൾക്ക് etc/quiz-app/README.md കാണുക
```
-
### ഡോക്യുമെന്റേഷൻ സൈറ്റ്
-റിപ്പോസിറ്ററി ഡോക്സിഫൈ ഉപയോഗിക്കുന്നു:
-- `index.html` പ്രവേശന പോയിന്റ്
-- ബിൽഡ് ആവശ്യമില്ല - GitHub Pages വഴി നേരിട്ട് സർവ് ചെയ്യുന്നു
-- ആക്സസ് ചെയ്യുക: https://microsoft.github.io/AI-For-Beginners/
+ഡോക്സിഫൈ ഉപയോഗിച്ച് റീപ്പോസിറ്ററി ഡോക്യുമെന്റേഷൻ സേവനം ചെയ്യുന്നു:
+- `index.html` എൻട്രി പോയിന്റ് ആയി പ്രവർത്തിക്കുന്നു
+- നിർമ്മാണം ആവശ്യമില്ല - GitHub Pages വഴി നേരിട്ട് സേവനം ചെയ്യുന്നു
+- ആക്സസ് ചെയ്യാം: https://microsoft.github.io/AI-For-Beginners/
-## സംഭാവനാ മാർഗ്ഗനിർദ്ദേശങ്ങൾ
+## സംഭാവന മാർഗ്ഗനിർദേശങ്ങൾ
### പുൾ റിക്വസ്റ്റ് പ്രക്രിയ
-1. **ശീർഷകം ഫോർമാറ്റ്:** മാറ്റം വ്യക്തമാക്കുന്ന വ്യക്തമായ, വിവരണാത്മകമായ ശീർഷകങ്ങൾ
-2. **CLA ആവശ്യകത:** Microsoft CLA ഒപ്പിടണം (സ്വയം പരിശോധന)
-3. **ഉള്ളടക്ക മാർഗ്ഗനിർദ്ദേശങ്ങൾ:**
- - വിദ്യാഭ്യാസ ലക്ഷ്യവും തുടക്കക്കാർക്ക് അനുയോജ്യമായ സമീപനവും പാലിക്കുക
- - നോട്ട്ബുക്കിലെ എല്ലാ കോഡ് ഉദാഹരണങ്ങളും പരീക്ഷിക്കുക
- - നോട്ട്ബുക്കുകൾ തുടർച്ചയായി പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക
- - ഇംഗ്ലീഷ് ഉള്ളടക്കം മാറ്റിയാൽ പരിഭാഷകൾ അപ്ഡേറ്റ് ചെയ്യുക
-4. **ക്വിസ് ആപ്പ് മാറ്റങ്ങൾ:** കമ്മിറ്റ് ചെയ്യുന്നതിന് മുമ്പ് `npm run lint` പ്രവർത്തിപ്പിക്കുക
+1. **തലക്കെട്ട് രൂപം:** മാറ്റം വ്യക്തമാക്കുന്ന വ്യക്തമായ, വിവരണാത്മക തലക്കെട്ടുകൾ
+2. **CLA ആവശ്യകത:** Microsoft CLA ഒപ്പിടൽ (സ്വയംകർത്തമായ പരിശോധന)
+3. **ഉള്ളടക്ക മാർഗ്ഗരേഖകൾ:**
+ - വിദ്യാഭ്യാസ കേന്ദ്രീകരിക്കുകയും ആരംഭക_mac_opt അടിയും നിലനിർത്തുക
+ - നോട്ട്ബുക്കുകളിൽ ഉള്ള കോഡ് ഉദാഹരണങ്ങൾ എല്ലാം ടെസ്റ്റ് ചെയ്യുക
+ - നോട്ട്ബുക്കുകൾ തുടങ്ങി അവസാനംവരെ പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക
+ - ഇംഗ്ലീഷ് ഉള്ളടക്കം മാറ്റിയാൽ വിവർത്തനങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക
+4. **ക്വിസ് ആപ്പ് മാറ്റങ്ങൾ:** കമ്മിറ്റ് ചെയ്യുന്നതിന് മുമ്പ് `npm run lint` നടത്തുക
-### പരിഭാഷാ സംഭാവനകൾ
+### വിവർത്തന സംഭാവനകൾ
-- GitHub Actions ഉപയോഗിച്ച് co-op-translator വഴി ഓട്ടോമാറ്റിക് പരിഭാഷകൾ
-- മാനുവൽ പരിഭാഷകൾ `translations//`-ൽ
-- ക്വിസ് പരിഭാഷകൾ `etc/quiz-app/src/assets/translations/`-ൽ
-- പിന്തുണയുള്ള ഭാഷകൾ: 40+ (പൂർണ്ണ പട്ടിക README-യിൽ കാണുക)
+- GitHub Actions ഉപയോഗിച്ച് co-op-translator വഴി ആസ്വയിച്ച വിവർത്തനങ്ങൾ
+- മാനുവൽ വിവർത്തനങ്ങൾ `translations//` ൽ
+- ക്വിസ് വിവർത്തനങ്ങൾ `etc/quiz-app/src/assets/translations/` ൽ
+- പിന്തുണയുള്ള ഭാഷകൾ: 40+ (പൂർണ്ണ പട്ടികക്ക് README നോക്കുക)
### സജീവ സംഭാവന മേഖലകൾ
-നിലവിലെ ആവശ്യങ്ങൾക്കായി `etc/CONTRIBUTING.md` കാണുക:
-- ഡീപ്പ് റീ ഇൻഫോഴ്സ്മെന്റ് ലേണിംഗ് വിഭാഗങ്ങൾ
-- ഒബ്ജക്റ്റ് ഡിറ്റക്ഷൻ മെച്ചപ്പെടുത്തലുകൾ
-- നെയിംഡ് എൻറ്റിറ്റി റെക്കഗ്നിഷൻ ഉദാഹരണങ്ങൾ
-- കസ്റ്റം എംബെഡ്ഡിംഗ് ട്രെയിനിംഗ് സാമ്പിളുകൾ
+ഇപ്പോഴത്തെ ആവശ്യമുകൾക്കായി `etc/CONTRIBUTING.md` കാണുക:
+- ഡീപ് ശക്തീകരണ പഠനം എന്നിവ
+- വസ്തു തിരിച്ചറിവ് മെച്ചപ്പെടുത്തലുകൾ
+- നാമപ്പെടുത്തിയ സങ്കേത തിരിച്ചറിവ് ഉദാഹരണങ്ങൾ
+- കസ്റ്റം എംബെഡ്ഡിംഗ് പരിശീലന സാമ്പിളുകൾ
-## പരിസ്ഥിതി ക്രമീകരണം
+## പരിസ്ഥിതി കോൺഫിഗറേഷൻ
-### ആവശ്യമായ ആശ്രിതങ്ങൾ
+### ആവശ്യമായ ഡിപ്പെൻഡൻസികൾ
```bash
-# കോർ പൈത്തൺ പാക്കേജുകൾ (requirements.txt ൽ നിന്നുള്ള)
+# മുകളിൽ ആവശ്യമായ പാക്കേജുകൾ (requirements.txt) നിന്നും കോർ പൈത്തൺ പാക്കേജുകൾ
tensorflow==2.17.0
torch (via conda)
torchvision (via conda)
@@ -235,38 +228,36 @@ matplotlib==3.9
jupyter
```
+### പരിസ്ഥിതി വേരിയബിൾസ്
-### പരിസ്ഥിതി വേരിയബിളുകൾ
+അടിസ്ഥാന ഉപയോഗത്തിനായി പ്രത്യേക പരിസ്ഥിതി വേരിയബിൾസ് ആവശ്യമില്ല.
-അടിസ്ഥാന ഉപയോഗത്തിന് പ്രത്യേക പരിസ്ഥിതി വേരിയബിളുകൾ ആവശ്യമില്ല.
+Azure വിന്യാസങ്ങൾക്ക് (ക്വിസ് ആപ്പ്):
+- `AZURE_STATIC_WEB_APPS_API_TOKEN` (Azure സ്വയം സജ്ജമാക്കുന്നു)
-Azure ഡിപ്ലോയ്മെന്റുകൾക്കായി (ക്വിസ് ആപ്പ്):
-- `AZURE_STATIC_WEB_APPS_API_TOKEN` (Azure സ്വയം സജ്ജമാക്കും)
+## ഡീബഗ്ഗിംഗ്, പ്രശ്ന പരിഹാരം
-## ഡീബഗ്ഗിംഗ് & പ്രശ്നപരിഹാരം
+### പൊതു പ്രശ്നങ്ങൾ
-### സാധാരണ പ്രശ്നങ്ങൾ
+**പ്രശ്നം:** Conda പരിസ്ഥിതി സൃഷ്ടി പരാജയമാണ്
+- **പരിഹാരം:** ആദ്യം conda അപ്ഡേറ്റ് ചെയ്യുക: `conda update conda -y`
+- മതിയായ ഡ്രൈവ് സ്പേസ് ഉറപ്പാക്കുക (50GB ശുപാർശ)
-**പ്രശ്നം:** Conda പരിസ്ഥിതി സൃഷ്ടിക്കൽ പരാജയപ്പെടുന്നു
-- **പരിഹാരം:** ആദ്യം conda അപ്ഡേറ്റ് ചെയ്യുക: `conda update conda -y`
-- മതിയായ ഡിസ്ക് സ്പേസ് ഉറപ്പാക്കുക (50GB ശുപാർശ)
-
-**പ്രശ്നം:** Jupyter kernel കണ്ടെത്താനാകുന്നില്ല
-- **പരിഹാരം:**
+**പ്രശ്നം:** Jupyter കർണൽ കണ്ടെത്താനാകുന്നില്ല
+- **പരിഹാരം:**
```bash
conda activate ai4beg
python -m ipykernel install --user --name ai4beg
```
+**പ്രശ്നം:** നോട്ട്ബുക്കുകളിൽ GPU കണ്ടെത്താനാകുന്നില്ല
+- **പരിഹാരം:**
+ - CUDA ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്നുവോ പരിശോധിക്കുക: `nvidia-smi`
+ - PyTorch GPU അഡപ്ട്ടർ പരിശോധന: `python -c "import torch; print(torch.cuda.is_available())"`
+ - TensorFlow GPU പരിശോധിക്കൽ: `python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"`
-**പ്രശ്നം:** നോട്ട്ബുക്കുകളിൽ GPU കണ്ടെത്താനാകുന്നില്ല
-- **പരിഹാരം:**
- - CUDA ഇൻസ്റ്റലേഷൻ പരിശോധിക്കുക: `nvidia-smi`
- - PyTorch GPU ലഭ്യത പരിശോധിക്കുക: `python -c "import torch; print(torch.cuda.is_available())"`
- - TensorFlow GPU ലഭ്യത പരിശോധിക്കുക: `python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"`
-
-**പ്രശ്നം:** ക്വിസ് ആപ്പ് ആരംഭിക്കുന്നില്ല
-- **പരിഹാരം:**
+**പ്രശ്നം:** ക്വിസ് ആപ്പ് ആരംഭിക്കുന്നില്ല
+- **പരിഹാരം:**
```bash
cd etc/quiz-app
rm -rf node_modules package-lock.json
@@ -274,56 +265,55 @@ Azure ഡിപ്ലോയ്മെന്റുകൾക്കായി (ക്
npm run serve
```
-
-**പ്രശ്നം:** Binder ടൈംഔട്ട് അല്ലെങ്കിൽ ഡൗൺലോഡുകൾ തടയുന്നു
-- **പരിഹാരം:** മികച്ച റിസോഴ്സ് ആക്സസിനായി GitHub Codespaces അല്ലെങ്കിൽ ലോകൽ സെറ്റപ്പ് ഉപയോഗിക്കുക
+**പ്രശ്നം:** Binder സമയം പാർത്തുകൂടി അല്ലെങ്കിൽ ഡൗൺലോഡുകൾ തടയുന്നു
+- **പരിഹാരം:** മികച്ച റിസോഴ്സ് ആക്സസിനായി GitHub Codespaces അല്ലെങ്കിൽ ലോകൽ സജ്ജീകരണം ഉപയോഗിക്കുക
### മെമ്മറി പ്രശ്നങ്ങൾ
-ചില പാഠങ്ങൾ വലിയ RAM ആവശ്യപ്പെടുന്നു (8GB+ ശുപാർശ):
-- റിസോഴ്സ്-ഇന്റൻസീവ് പാഠങ്ങൾക്കായി ക്ലൗഡ് VM-കൾ ഉപയോഗിക്കുക
-- മോഡലുകൾ ട്രെയിൻ ചെയ്യുമ്പോൾ മറ്റ് ആപ്ലിക്കേഷനുകൾ അടയ്ക്കുക
-- മെമ്മറി കുറയുമ്പോൾ നോട്ട്ബുക്കുകളിൽ ബാച്ച് സൈസ് കുറയ്ക്കുക
+ചില പാഠങ്ങൾക്ക് വലിയ റാം ആവശ്യമുണ്ട് (കുറഞ്ഞത് 8GB ശുപാർശ ചെയ്യുന്നു):
+- പ്രയാസമേറിയ പാഠങ്ങൾക്ക് ക്ലൗഡ് VMകൾ ഉപയോഗിക്കുക
+- മോഡൽ ട്രെയ്നിംഗ് സമയത്ത് മറ്റ് ആപ്പുകൾ അടയ്ക്കുക
+- മെമ്മറി പൂർണ്ണമായാൽ നോട്ട്ബുക്കുകളിൽ ബാച്ച് വലുപ്പം കുറക്കുക
## അധിക കുറിപ്പുകൾ
-### കോഴ്സ് ഇൻസ്ട്രക്ടർമാർക്കായി
+### പാഠം പകർന്നടുക്കുന്ന അധ്യാപകർക്ക്
-- പഠന മാർഗ്ഗനിർദ്ദേശങ്ങൾക്ക് `lessons/0-course-setup/for-teachers.md` കാണുക
-- പാഠങ്ങൾ സ്വയംപര്യാപ്തമാണ്, തുടർച്ചയായി അല്ലെങ്കിൽ തിരഞ്ഞെടുക്കി പഠിപ്പിക്കാം
-- ഏകദേശം 12 ആഴ്ച, ആഴ്ചയിൽ 2 പാഠങ്ങൾ
+- പഠന മാർഗ്ഗനിർദേശങ്ങൾക്ക് `lessons/0-course-setup/for-teachers.md` കാണുക
+- പാഠങ്ങൾ സ്വയംപര്യാപ്തവായും പരമ്പരയായി പഠിപ്പിക്കാവുന്നതുമായും ആണ്
+- കാൽപ്പനിക സമയം: 12 ആഴ്ച, ആഴ്ചയ്ക്ക് 2 പാഠങ്ങൾ
### ക്ലൗഡ് റിസോഴ്സുകൾ
-- **Azure for Students:** വിദ്യാർത്ഥികൾക്ക് സൗജന്യ ക്രെഡിറ്റുകൾ
-- **Microsoft Learn:** പാഠ്യപദ്ധതിയുമായി ബന്ധിപ്പിച്ച അനുബന്ധ പഠന പാതകൾ
-- **Binder:** സൗജന്യമാണ്, പക്ഷേ പരിമിതമായ റിസോഴ്സുകളും ചില നെറ്റ്വർക്ക് നിയന്ത്രണങ്ങളും
+- **വിദ്യാർത്ഥികൾക്കായി Azure:** ഫ്രീ ക്രെഡിറ്റുകൾ ലഭ്യമാണ്
+- **Microsoft Learn:** ബഹുഭാഷാ പഠനപാതകളും ബന്ധിപ്പിച്ചിട്ടുള്ളത്
+- **Binder:** സൗജന്യമാണ്, പക്ഷേ ചില സർക്കാർ നിയന്ത്രണങ്ങളിലും പരിധികളിലും
-### കോഡ് പ്രവർത്തന ഓപ്ഷനുകൾ
+### കോഡ് എക്സിക്യൂഷൻ ഓപ്ഷനുകൾ
-1. **ലോകൽ (ശുപാർശ):** പൂർണ്ണ നിയന്ത്രണം, മികച്ച പ്രകടനം, GPU പിന്തുണ
-2. **GitHub Codespaces:** ക്ലൗഡ് അടിസ്ഥാനമാക്കിയ VS Code, വേഗത്തിലുള്ള ആക്സസിനായി
-3. **Binder:** ബ്രൗസർ അടിസ്ഥാനമാക്കിയ Jupyter, സൗജന്യമാണ് പക്ഷേ പരിമിതം
-4. **Azure ML Notebooks:** GPU പിന്തുണയുള്ള എന്റർപ്രൈസ് ഓപ്ഷൻ
-5. **Google Colab:** നോട്ട്ബുക്കുകൾ വ്യക്തിഗതമായി അപ്ലോഡ് ചെയ്യുക, സൗജന്യ GPU ലെയർ ലഭ്യമാണ്
+1. **ലോകൽ (ശിപാർശ):** പൂർണ്ണ നിയന്ത്രണം, മികച്ച പ്രകടനം, GPU പിന്തുണ
+2. **GitHub Codespaces:** ക്ലൗഡ് അടിസ്ഥാനമാക്കിയുള്ള VS കോഡ്, പെട്ടെന്ന് ആക്സസിനായി നല്ലത്
+3. **Binder:** ബ്രൗസർ അടിസ്ഥാനമാക്കി Jupyter, സൗജന്യമാണ്, പക്ഷേ പരിമിതിയായ
+4. **Azure ML നോട്ട്ബുക്കുകൾ:** GPU പിന്തുണയോടെ എന്റർപ്രൈസ് ഓപ്ഷൻ
+5. **Google Colab:** നോട്ട്ബുക്കുകൾ ഒറ്റത്തവണ അപ്ലോഡ് ചെയ്യുക, സൗജന്യ GPU തരം ലഭ്യമാണ്
-### നോട്ട്ബുക്കുകളുമായി ജോലി ചെയ്യൽ
+### നോട്ട്ബുക്കുകളുമായി ജോലി ചെയ്യൽ
-- പഠനത്തിനായി സെൽ-ബൈ-സെൽ പ്രവർത്തിപ്പിക്കാൻ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നു
-- പല നോട്ട്ബുക്കുകളും ആദ്യ പ്രവർത്തനത്തിൽ ഡാറ്റാസെറ്റുകൾ ഡൗൺലോഡ് ചെയ്യും (സമയം എടുക്കാം)
-- ചില മോഡലുകൾക്ക് യുക്തിസഹമായ ട്രെയിനിംഗിനായി GPU ആവശ്യമാണ്
+- പഠനത്തിനായി സെല്ലിനടിയായി നോട്ട്ബുക്കുകൾ പ്രവർത്തിക്കാൻ രൂപകല്പ്പന ചെയ്തതാണ്
+- ആദ്യ പ്രവർത്തനത്തിൽ പല നോട്ട്ബുക്കുകളും ഡാറ്റാസെറ്റുകൾ ഡൗൺലോഡ് ചെയ്യുന്നു (സമയം വേണ്ടാം)
+- ചില മോഡലുകൾ യുക്തിപരമായ പരിശീലന സമയത്തിനായി GPU ആവശ്യമാണ്
- കംപ്യൂട്ട് ആവശ്യകത കുറയ്ക്കാൻ മുൻകൂട്ടി പരിശീലിച്ച മോഡലുകൾ ഉപയോഗിക്കുന്നു
### പ്രകടന പരിഗണനകൾ
-- പിന്നീട് വരുന്ന കമ്പ്യൂട്ടർ വിഷൻ പാഠങ്ങൾ (CNNs, GANs) GPU-യിൽ നിന്ന് പ്രയോജനം നേടും
-- NLP ട്രാൻസ്ഫോർമർ പാഠങ്ങൾ വലിയ RAM ആവശ്യപ്പെടാം
-- തുടക്കം മുതൽ പരിശീലനം വിദ്യാഭ്യാസപരമാണ്, പക്ഷേ സമയം കൂടുതലെടുക്കും
-- ട്രാൻസ്ഫർ ലേണിംഗ് ഉദാഹരണങ്ങൾ പരിശീലന സമയം കുറയ്ക്കുന്നു
+- പിന്നീട് കമ്പ്യൂട്ടർ വിഷ്വൻ പാഠങ്ങൾ (CNN, GAN) GPU ഉപയോഗിച്ച് മെച്ചപ്പെടുത്തുന്നു
+- NLP ട്രാൻസ്ഫോർമർ പാഠങ്ങൾക്ക് വലിയ RAM ആവശ്യമാകും
+- അടിസ്ഥാനത്തിൽ നിന്ന് പരിശീലനം സമയം കൂടുതലാണ്, എന്നാൽ പഠനപരമായതാണ്
+- ട്രാൻസ്ഫർ പഠന ഉദാഹരണങ്ങൾ പരിശീലന സമയം കുറഞ്ഞു
---
-**അസൂയാ**:
-ഈ രേഖ AI വിവർത്തന സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് വിവർത്തനം ചെയ്തതാണ്. നാം കൃത്യതയ്ക്ക് ശ്രമിച്ചെങ്കിലും, സ്വയം പ്രവർത്തിക്കുന്ന വിവർത്തനങ്ങളിൽ പിശകുകൾ അല്ലെങ്കിൽ തെറ്റുകൾ ഉണ്ടാകാമെന്ന് ദയവായി ശ്രദ്ധിക്കുക. അതിന്റെ മാതൃഭാഷയിലുള്ള യഥാർത്ഥ രേഖ അധികാരപരമായ ഉറവിടമായി കണക്കാക്കണം. നിർണായക വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ വിവർത്തനം ശുപാർശ ചെയ്യപ്പെടുന്നു. ഈ വിവർത്തനത്തിന്റെ ഉപയോഗത്തിൽ നിന്നുണ്ടാകുന്ന ഏതെങ്കിലും തെറ്റിദ്ധാരണകൾക്കോ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കോ ഞങ്ങൾ ഉത്തരവാദികളല്ല.
+**അറിയിപ്പ്**:
+ഈ രേഖ AI പരിഭാഷാ സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. ഞങ്ങൾ കൃത്യതയ്ക്കായി ശ്രമിക്കുന്നുവെങ്കിലും, ഓട്ടോമേറ്റഡ് പരിഭാഷകളിൽ പിഴവുകൾ അല്ലെങ്കിൽ തെറ്റായ വിവരങ്ങൾ ഉണ്ടാകാൻ സാധ്യതയുണ്ട്. അതിന്റെ സ്വാഭാവിക ഭാഷയിലുള്ള അസൽ രേഖയാണ് പ്രാമാണികമായ ഉറവിടമായി പരിഗണിക്കേണ്ടത്. നിർണായകമായ വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷ ശുപാർശ ചെയ്യുന്നു. ഈ പരിഭാഷ ഉപയോഗിച്ച് ഉണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾ അല്ലെങ്കിൽ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കായി ഞങ്ങൾ ഉത്തരവാദികളല്ല.
\ No newline at end of file
diff --git a/translations/ml/CONTRIBUTING.md b/translations/ml/CONTRIBUTING.md
new file mode 100644
index 00000000..f85e2cb0
--- /dev/null
+++ b/translations/ml/CONTRIBUTING.md
@@ -0,0 +1,29 @@
+# AI-For-Beginners-ലേക്ക് സംഭാവന നൽകൽ
+
+AI-For-Beginners-ലേക്ക് സംഭാവന നൽകുന്നതിൽ നിങ്ങളുടെ താൽപര്യത്തിന് നന്ദി! വിവർത്തനങ്ങൾ, പാഠം ശരിയാക്കലുകൾ, ഫോർമാറ്റ് ശരിയാക്കലുകൾ എന്നിവ ഞങ്ങൾ സ്വാഗതം ചെയ്യുന്നു.
+
+## Microsoft സംഭാവനാ ലൈസൻസ് കരാർ (CLA)
+
+ഈ പ്രോജക്റ്റ് സംഭാവനകളും നിർദേശങ്ങളും സ്വാഗതം ചെയ്യുന്നു. ഭൂരിഭാഗം സംഭാവനകൾക്ക് Contributor License Agreement (CLA)ക്ക് സമ്മതിക്കേണ്ടതാണ്, നിങ്ങൾക്ക് നിങ്ങളുടെ സംഭാവന ഉപയോഗിക്കാൻ അവകാശം ഉള്ളതായി പ്രകടിപ്പിക്കുന്നതിന്. വിശദമായി അറിയാൻ, സന്ദർശിക്കുക [https://cla.microsoft.com](https://cla.microsoft.com).
+
+നിങ്ങൾ ഒരു പുൾ റിക്വസ്റ്റ് സമർപ്പിക്കുമ്പോൾ, CLA-ബോട്ട് സ്വയം തീരുമാനിക്കും നിങ്ങൾക്ക് CLA നൽകേണ്ടതുണ്ടോയെന്ന്, അതിനനുസരിച്ച് പുൾ റിക്വസ്റ്റ് ലേബൽ, കമന്റ് എന്നിവ ചേർക്കും. ബോട്ടിന്റെ നിർദ്ദേശങ്ങൾ പാലിക്കുക. ഇത് ഒരു തവണ മാത്രമേ ഞങ്ങളുടെ CLA ഉപയോഗിക്കുന്ന എല്ലാ റിപ്പോസിറ്ററികളിലും ചെയ്യേണ്ടതുള്ളു.
+
+## സംഭാവന നൽകുന്ന വിധം
+
+### 1. ടൈപ്പോസ് / കോഡ് പിഴവുകൾ തിരുത്തൽ
+Jupyter നോട്ട്ബുക്ക് അല്ലെങ്കിൽ പാഠം മാർക്ക്ഡൗൺ ഫയലിൽ നിങ്ങൾക്ക് ഒരു ടൈപ്പോ അല്ലെങ്കിൽ പിഴവ് കണ്ടെത്തിയാൽ:
+1. റിപ്പോസിറ്ററി ഫോർക്കുചെയ്യുക.
+2. ടൈപ്പോ അല്ലെങ്കിൽ തകർന്ന ലിങ്ക് തിരുത്തുക.
+3. തിരുത്തലിന്റെ വ്യക്തമാക്കിയ വിവരണവുമായി ഒരു പുൾ റിക്വസ്റ്റ് സമർപ്പിക്കുക.
+
+### 2. വിവർത്തനങ്ങൾ സമർപ്പിക്കൽ
+പാഠങ്ങളുടെ മറ്റു ഭാഷകളിലെ വിവർത്തനങ്ങൾ ഞങ്ങൾ സ്വാഗതം ചെയ്യുന്നു! ഇതിനായി `translations/` ഡയറക്ടറിയിൽ നിലവിലുള്ള ഫോൾഡർ പേരുകൾ ഉപയോഗിച്ച്(ഉദാഹരണത്തിന് `translations/es/`, `translations/pt-BR/`, `translations/zh-CN/`) വിവർത്തനങ്ങൾ ഇടുക.
+
+കൂടുതൽ വിവരങ്ങൾക്ക്, കാണുക [etc/CONTRIBUTING.md](etc/CONTRIBUTING.md).
+
+---
+
+
+**അറിയിപ്പ്**:
+ഈ രേഖ AI പരിഭാഷാ സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. ഞങ്ങൾ കൃത്യതയ്ക്കായി ശ്രമിക്കുന്നുവെങ്കിലും, ഓട്ടോമേറ്റഡ് പരിഭാഷകളിൽ പിഴവുകൾ അല്ലെങ്കിൽ തെറ്റായ വിവരങ്ങൾ ഉണ്ടാകാൻ സാധ്യതയുണ്ട്. അതിന്റെ സ്വാഭാവിക ഭാഷയിലുള്ള അസൽ രേഖയാണ് പ്രാമാണികമായ ഉറവിടമായി പരിഗണിക്കേണ്ടത്. നിർണായകമായ വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷ ശുപാർശ ചെയ്യുന്നു. ഈ പരിഭാഷ ഉപയോഗിച്ച് ഉണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾ അല്ലെങ്കിൽ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കായി ഞങ്ങൾ ഉത്തരവാദികളല്ല.
+
\ No newline at end of file
diff --git a/translations/ml/examples/README.md b/translations/ml/examples/README.md
index e711c2c1..b7b48207 100644
--- a/translations/ml/examples/README.md
+++ b/translations/ml/examples/README.md
@@ -1,31 +1,31 @@
-# തുടക്കക്കാർക്ക് അനുയോജ്യമായ AI ഉദാഹരണങ്ങൾ
+# തുടക്കക്കാരോട് സൗഹൃദം പുലർത്തുന്ന AI ഉദാഹരണങ്ങൾ
-സ്വാഗതം! ഈ ഡയറക്ടറിയിൽ AI-യും മെഷീൻ ലേണിംഗും ആരംഭിക്കാൻ സഹായിക്കുന്ന ലളിതവും സ്വതന്ത്രവുമായ ഉദാഹരണങ്ങൾ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഓരോ ഉദാഹരണവും വിശദമായ കമന്റുകളും ഘട്ടം ഘട്ടമായ വിശദീകരണങ്ങളും ഉൾപ്പെടുത്തി തുടക്കക്കാർക്ക് സൗകര്യമാക്കിയാണ് രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്.
+സ്വാഗതം! ഈ ഡയറക്ടറിയിൽ AIയും മെഷീൻ ലേണിങ്ങും ആരംഭിക്കാൻ സഹായിക്കുന്ന ലളിതവും സ്വതന്ത്രവുമായ ഉദാഹരണങ്ങൾ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഓരോ ഉദാഹരണവും വിശദമായി കമന്റുകളും ഘട്ടം ഘട്ടമായ വ്യാഖ്യാനങ്ങളോടെയും തുടക്കക്കാരെ സഹായിക്കുന്ന വിധത്തിലാണ് രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്.
## 📚 ഉദാഹരണങ്ങളുടെ അവലോകനം
-| ഉദാഹരണം | വിവരണം | ബുദ്ധിമുട്ട് | മുൻപരിചയം |
+| ഉദാഹരണം | വിശദീകരണം | പ്രാരംഭത | ആധാരങ്ങൾ |
|---------|-------------|------------|---------------|
-| [Hello AI World](../../../examples/01-hello-ai-world.py) | നിങ്ങളുടെ ആദ്യ AI പ്രോഗ്രാം - ലളിതമായ പാറ്റേൺ തിരിച്ചറിയൽ | ⭐ തുടക്കക്കാർ | Python അടിസ്ഥാനങ്ങൾ |
-| [Simple Neural Network](../../../examples/02-simple-neural-network.py) | ഒരു ന്യൂറൽ നെറ്റ്വർക്ക് തൊട്ടുതുടങ്ങി നിർമ്മിക്കുക | ⭐⭐ തുടക്കക്കാർ+ | Python, അടിസ്ഥാന ഗണിതം |
-| [Image Classifier](./03-image-classifier.ipynb) | മുൻകൂട്ടി പരിശീലിപ്പിച്ച മോഡലിലൂടെ ചിത്രങ്ങൾ വർഗ്ഗീകരിക്കുക | ⭐⭐ തുടക്കക്കാർ+ | Python, numpy |
-| [Text Sentiment](../../../examples/04-text-sentiment.py) | ടെക്സ്റ്റിന്റെ മനോഭാവം (സ pozitive/negative) വിശകലനം ചെയ്യുക | ⭐⭐ തുടക്കക്കാർ+ | Python |
+| [Hello AI World](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/01-hello-ai-world.py) | നിങ്ങളുടെ ആദ്യ AI പ്രോഗ്രാം - ലളിതമായ പാറ്റേൺ തിരിച്ചറിവ് | ⭐ തുടക്കക്കാരൻ | പൈതൺ അടിസ്ഥാനങ്ങൾ |
+| [Simple Neural Network](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/02-simple-neural-network.py) | തലച്ചോറ് ശൃംഖല തുടങ്ങുക | ⭐⭐ തുടക്കക്കാരൻ+ | പൈതൺ, അടിസ്ഥാന ഗണിതം |
+| [Image Classifier](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/03-image-classifier.ipynb) | പ്രീ-ട്രെയ്നു ചെയ്ത മോഡലിൽ ചിത്രങ്ങൾ ജനിതീകരിക്കുക | ⭐⭐ തുടക്കക്കാരൻ+ | പൈതൺ, നംപൈ |
+| [Text Sentiment](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/04-text-sentiment.py) | വാചകത്തിന്റെ സംഭവം വിശകലനം ചെയ്യുക (സഖാത്മക/നിഷേധാത്മക) | ⭐⭐ തുടക്കക്കാരൻ+ | പൈതൺ |
-## 🚀 ആരംഭിക്കുന്നത്
+## 🚀 തുടക്കം കുറിക്കുക
-### മുൻപരിചയം
+### ആവശ്യമായ മുൻപരിചയം
-Python ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക (3.8 അല്ലെങ്കിൽ അതിനുമുകളിൽ ശുപാർശ ചെയ്യുന്നു). ആവശ്യമായ പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക:
+നിങ്ങളുടെ കമ്പ്യൂട്ടറിലേക്ക് പൈതൺ ഇൻസ്റ്റാൾ ചെയ്തുള്ള വിവരം ഉറപ്പാക്കുക (3.8 അല്ലെങ്കിൽ അതിനുമുമ്പ് ശുപാർശ ചെയ്യപ്പെടുന്നു). ആവശ്യമായ പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക:
```bash
-# പൈത്തൺ സ്ക്രിപ്റ്റുകൾക്കായി
+# പൈഥൺ സ്ക്രിപ്റ്റുകൾക്കായി
pip install numpy
# ജൂപ്പിറ്റർ നോട്ട്ബുക്കുകൾക്കായി (ഇമേജ് ക്ലാസിഫയർ)
pip install jupyter numpy pillow tensorflow
```
-അല്ലെങ്കിൽ പ്രധാന പാഠ്യപദ്ധതിയിൽ നിന്നുള്ള conda പരിസ്ഥിതി ഉപയോഗിക്കുക:
+അല്ലെങ്കിൽ പ്രധാന കോഴ്സിൽ നിന്നും കോണ്ടാ എൻവയോൺമെന്റ് ഉപയോഗിക്കുക:
```bash
conda env create --name ai4beg --file ../environment.yml
@@ -34,54 +34,54 @@ conda activate ai4beg
### ഉദാഹരണങ്ങൾ പ്രവർത്തിപ്പിക്കൽ
-**Python സ്ക്രിപ്റ്റുകൾക്കായി (.py ഫയലുകൾ):**
+**പൈതൺ സ്ക്രിപ്റ്റുകൾക്കായി (.py ഫയലുകൾ):**
```bash
python 01-hello-ai-world.py
```
-**Jupyter നോട്ട്ബുക്കുകൾക്കായി (.ipynb ഫയലുകൾ):**
+**ജൂപ്പിറ്റർ നോട്ട്ബുക്കുകൾക്കായി (.ipynb ഫയലുകൾ):**
```bash
jupyter notebook 03-image-classifier.ipynb
```
-## 📖 പഠന മാർഗ്ഗം
+## 📖 പഠന മാർഗ്ഗരേഖ
-ഉദാഹരണങ്ങൾ ക്രമത്തിൽ പിന്തുടരാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു:
+നിർദേശിച്ചിരിക്കുന്ന ക്രമത്തിലും മാർഗ്ഗരേഖയിൽ ഉൾപ്പെടുന്ന ഉദാഹരണങ്ങൾ അനുഗമിക്കുക:
-1. **"Hello AI World" -ൽ തുടങ്ങുക** - പാറ്റേൺ തിരിച്ചറിയലിന്റെ അടിസ്ഥാനങ്ങൾ പഠിക്കുക
-2. **ഒരു ലളിതമായ ന്യൂറൽ നെറ്റ്വർക്ക് നിർമ്മിക്കുക** - ന്യൂറൽ നെറ്റ്വർക്ക് എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് മനസിലാക്കുക
-3. **ചിത്ര വർഗ്ഗീകരണം പരീക്ഷിക്കുക** - യഥാർത്ഥ ചിത്രങ്ങളുമായി AI പ്രവർത്തനം കാണുക
-4. **ടെക്സ്റ്റ് മനോഭാവം വിശകലനം ചെയ്യുക** - സ്വാഭാവിക ഭാഷാ പ്രോസസ്സിംഗ് അന്വേഷിക്കുക
+1. **"Hello AI World"-ൽ തുടങ്ങുക** - പാറ്റേൺ തിരിച്ചറിവിന്റെ അടിസ്ഥാനങ്ങൾ പഠിക്കുക
+2. **ലളിതമായ തലച്ചോറ് ശൃംഖല നിർമ്മിക്കുക** - Neural Network എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് മനസിലാക്കുക
+3. **ചിത്ര ജനിതീകരണം ശ്രമിക്കുക** - യാഥാർത്ഥ്യ ചിത്രങ്ങളോടെ AI കാണുക
+4. **വാചകത്തിന്റെ സംഭവം വിശകലനം ചെയ്യുക** - സ്വാഭാവിക ഭാഷാ പ്രോസസിംഗിനെ ആഴത്തിൽ പഠിക്കുക
-## 💡 തുടക്കക്കാർക്ക് ഉപദേശങ്ങൾ
+## 💡 തുടക്കക്കാരുടെ ശ്രദ്ധയ്ക്ക്
-- **കോഡ് കമന്റുകൾ ശ്രദ്ധാപൂർവ്വം വായിക്കുക** - ഓരോ വരിയും എന്ത് ചെയ്യുന്നു എന്ന് വിശദീകരിക്കുന്നു
-- **പരീക്ഷണം നടത്തുക!** - മൂല്യങ്ങൾ മാറ്റി നോക്കൂ, എന്ത് സംഭവിക്കുന്നു എന്ന് കാണൂ
-- **എല്ലാം മനസിലാക്കാൻ പാടില്ലെന്ന് ഭയപ്പെടേണ്ട** - പഠനം സമയം എടുക്കും
-- **ചോദ്യങ്ങൾ ചോദിക്കുക** - [ചർച്ചാ ബോർഡ്](https://github.com/microsoft/AI-For-Beginners/discussions) ഉപയോഗിക്കുക
+- **കോഡിലെ കുറിപ്പുകൾ ശ്രദ്ധാപൂർവ്വം വായിക്കുക** - ഓരോ വരിയും എന്ത് ചെയ്യുന്നതാണെന്നും അവർ വിശദീകരിക്കുന്നു
+- **പ്രയോജനപ്പെടുത്തുക!** - മൂല്യങ്ങൾ മാറ്റി നോക്കുക, എന്ത് സംഭവിക്കുന്നുവെന്ന് കാണുക
+- **എല്ലാം ഉടനടി മനസിലാക്കാൻ പാടില്ല** - പഠിക്കാൻ സമയം ആവശ്യമാണ്
+- **ചോദ്യങ്ങൾ ചോദിക്കുക** - [Discussion board](https://github.com/microsoft/AI-For-Beginners/discussions) ഉപയോഗിക്കുക
-## 🔗 അടുത്ത ഘട്ടങ്ങൾ
+## 🔗 അടുത്ത പടികൾ
-ഈ ഉദാഹരണങ്ങൾ പൂർത്തിയാക്കിയ ശേഷം, പൂർണ്ണ പാഠ്യപദ്ധതി പരിശോധിക്കുക:
+ഈ ഉദാഹരണങ്ങൾ പൂർത്തിയാക്കിയതിനു ശേഷം, സമഗ്ര കോഴ്സ് പരിശോധിക്കുക:
- [AI-യിലേക്ക് പരിചയം](../lessons/1-Intro/README.md)
-- [ന്യൂറൽ നെറ്റ്വർക്ക്](../lessons/3-NeuralNetworks/README.md)
-- [കമ്പ്യൂട്ടർ വിഷൻ](../lessons/4-ComputerVision/README.md)
-- [സ്വാഭാവിക ഭാഷാ പ്രോസസ്സിംഗ്](../lessons/5-NLP/README.md)
+- [തലച്ചോറ് ശൃംഖലകൾ](../lessons/3-NeuralNetworks/README.md)
+- [കമ്പ്യൂട്ടർ വിസൻ](../lessons/4-ComputerVision/README.md)
+- [സ്വാഭാവിക ഭാഷാ പ്രോസസിംഗ്](../lessons/5-NLP/README.md)
-## 🤝 സംഭാവനകൾ
+## 🤝 സംഭാവന ചെയ്യുക
-ഈ ഉദാഹരണങ്ങൾ സഹായകമാണെന്ന് തോന്നുന്നുവോ? അവ മെച്ചപ്പെടുത്താൻ സഹായിക്കുക:
+ഈ ഉദാഹരണങ്ങൾ നിങ്ങൾക്ക് സഹായകരമായോയെന്ന് തോന്നുന്നുവെങ്കിൽ, അവ മെച്ചപ്പെടുത്താൻ സഹായിക്കൂ:
- പ്രശ്നങ്ങൾ റിപ്പോർട്ട് ചെയ്യുക അല്ലെങ്കിൽ മെച്ചപ്പെടുത്തലുകൾ നിർദ്ദേശിക്കുക
-- തുടക്കക്കാർക്കായി കൂടുതൽ ഉദാഹരണങ്ങൾ ചേർക്കുക
-- ഡോക്യുമെന്റേഷൻ, കമന്റുകൾ മെച്ചപ്പെടുത്തുക
+- തുടക്കക്കാർക്ക് കൂടുതൽ ഉദാഹരണങ്ങൾ ചേർക്കുക
+- ഡോക്യുമെന്റേഷൻ, കുറിപ്പുകൾ മെച്ചപ്പെടുത്തുക
---
-*ഓർക്കുക: ഓരോ വിദഗ്ധനും ഒരിക്കൽ തുടക്കക്കാരനായിരുന്നു. സന്തോഷകരമായ പഠനം! 🎓*
+*ഓർക്കുക: mỗi വിദഗ്ധനും ഒരുപാട് മുമ്പായി തുടക്കക്കാരനായിരുന്നു. സന്തോഷകരമായ പഠനം! 🎓*
---
-**അസൂയാ**:
-ഈ രേഖ AI വിവർത്തന സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് വിവർത്തനം ചെയ്തതാണ്. നാം കൃത്യതയ്ക്ക് ശ്രമിച്ചെങ്കിലും, സ്വയം പ്രവർത്തിക്കുന്ന വിവർത്തനങ്ങളിൽ പിശകുകൾ അല്ലെങ്കിൽ തെറ്റുകൾ ഉണ്ടാകാമെന്ന് ദയവായി ശ്രദ്ധിക്കുക. അതിന്റെ മാതൃഭാഷയിലുള്ള യഥാർത്ഥ രേഖ അധികാരമുള്ള ഉറവിടമായി കണക്കാക്കണം. നിർണായക വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ വിവർത്തനം ശുപാർശ ചെയ്യപ്പെടുന്നു. ഈ വിവർത്തനം ഉപയോഗിക്കുന്നതിൽ നിന്നുണ്ടാകുന്ന ഏതെങ്കിലും തെറ്റിദ്ധാരണകൾക്കോ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കോ ഞങ്ങൾ ഉത്തരവാദികളല്ല.
+**അറിയിപ്പ്**:
+ഈ രേഖ AI പരിഭാഷാ സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. ഞങ്ങൾ കൃത്യതയ്ക്കായി ശ്രമിക്കുന്നുവെങ്കിലും, ഓട്ടോമേറ്റഡ് പരിഭാഷകളിൽ പിഴവുകൾ അല്ലെങ്കിൽ തെറ്റായ വിവരങ്ങൾ ഉണ്ടാകാൻ സാധ്യതയുണ്ട്. അതിന്റെ സ്വാഭാവിക ഭാഷയിലുള്ള അസൽ രേഖയാണ് പ്രാമാണികമായ ഉറവിടമായി പരിഗണിക്കേണ്ടത്. നിർണായകമായ വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷ ശുപാർശ ചെയ്യുന്നു. ഈ പരിഭാഷ ഉപയോഗിച്ച് ഉണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾ അല്ലെങ്കിൽ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കായി ഞങ്ങൾ ഉത്തരവാദികളല്ല.
\ No newline at end of file
diff --git a/translations/ml/lessons/0-course-setup/how-to-run.md b/translations/ml/lessons/0-course-setup/how-to-run.md
index 06b222ee..b7efd519 100644
--- a/translations/ml/lessons/0-course-setup/how-to-run.md
+++ b/translations/ml/lessons/0-course-setup/how-to-run.md
@@ -1,12 +1,12 @@
-# കോഡ് എങ്ങനെ പ്രവർത്തിപ്പിക്കാം
+# കോഡ് എങ്ങനെ ഓടിക്കാം
-ഈ പാഠ്യപദ്ധതിയിൽ നിങ്ങൾ പ്രവർത്തിപ്പിക്കാൻ ആഗ്രഹിക്കുന്ന അനേകം പ്രവർത്തനക്ഷമമായ ഉദാഹരണങ്ങളും ലാബുകളും ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഇത് ചെയ്യാൻ, ഈ പാഠ്യപദ്ധതിയുടെ ഭാഗമായിട്ടുള്ള Jupyter നോട്ട്ബുക്കുകളിൽ Python കോഡ് പ്രവർത്തിപ്പിക്കുന്ന හැකിയുള്ളത് ആവശ്യമാണ്. കോഡ് പ്രവർത്തിപ്പിക്കുന്നതിന് നിങ്ങൾക്ക് വിവിധ വഴികൾ ലഭ്യമാണ്:
+ഈ സെഷനിൽ നിരവധി പ്രവർത്തിപ്പിക്കാൻ കഴിയുന്ന ഉദാഹരണങ്ങളും ലബ്ബുകളും ഉൾപ്പെടുന്നു, നിങ്ങൾ ഓടിക്കാൻ ആഗ്രഹിക്കുന്നതുമുണ്ട്. ഇതു ചെയ്യാൻ, ഈ സെഷന്റെ ഭാഗമാണ് എന്ന് നൽകിയിരിക്കുന്ന Jupyter നോട്ട്ബുക്കുകളിൽ Python കോഡ് 실행 ചെയ്യാൻ കഴിവ് വേണം. കോഡ് ഓടിക്കാൻ നിങ്ങൾക്കുള്ള ചില ഓപ്ഷനുകൾ:
-## നിങ്ങളുടെ കംപ്യൂട്ടറിൽ പ്രാദേശികമായി പ്രവർത്തിപ്പിക്കുക
+## നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ഫലപ്രദമായി ഓടിക്കുക
-നിങ്ങളുടെ കംപ്യൂട്ടറിൽ കോഡ് പ്രവർത്തിപ്പിക്കാനായി Python ഇൻസ്റ്റലേഷൻ ആവശ്യമുണ്ട്. ഒരു ശുപാർശയാണ് **[miniconda](https://conda.io/en/latest/miniconda.html)** ഇൻസ്റ്റാൾ ചെയ്യുക - ഇത് ഭാരം കുറഞ്ഞ ഒരു ഇൻസ്റ്റലേഷൻ ആണ്, വിവിധ Python **വെർച്വൽ എൻവയോൺമെന്റുകൾ**ക്കായി `conda` പാക്കേജ് മാനേജറെ പിന്തുണയ്ക്കുന്നു.
+നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ കോഡ് ഫലപ്രദമായി ഓടിക്കാൻ, Python ഇൻസ്റ്റളേഷൻ ആവശ്യമാണ്. ഒരു ശിപാർശ **[miniconda](https://conda.io/en/latest/miniconda.html)** ഇൻസ്റ്റാൾ ചെയ്യുകയാണ് - ഇത് വ്യത്യസ്ത Python **വിചിത്ര ചുറ്റുപാടുകൾ**ക്കായി `conda` പാക്കേജ് മാനേജർ പിന്തുണയ്ക്കുന്ന തണുത്ത ഇൻസ്റ്റലേഷൻ ആണു.
-miniconda ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, റെപ്പോസിറ്ററി ക്ലോൺ ചെയ്ത് ഈ കോഴ്സിനു ഉപയോഗിക്കുന്ന ഒരു വെർച്വൽ എൻവയോൺമെന്റ് സൃഷ്ടിക്കുക:
+miniconda ഇൻസ്റ്റാൾ ചെയ്ത பிறகு, റിപോസിറ്ററി ക്ലോൺ ചെയ്ത് ഈ കോഴ്സിനു വേണ്ടി ഉപയോഗിക്കാനായി ഒരു വിചിത്ര ചുറ്റുപാട് സൃഷ്ടിക്കുക:
```bash
git clone http://github.com/microsoft/ai-for-beginners
@@ -15,58 +15,57 @@ conda env create --name ai4beg --file .devcontainer/environment.yml
conda activate ai4beg
```
-### Python എക്സ്റ്റൻഷനോടെ Visual Studio Code ഉപയോഗിക്കൽ
+### Python Extension ഉപയോഗിച്ച് Visual Studio Code ഉപയോഗിക്കൽ
-ഈ പാഠ്യപദ്ധതിയിൽ ഉൾപ്പെടുന്ന ഫയലുകൾ [Visual Studio Code](http://code.visualstudio.com/?WT.mc_id=academic-77998-cacaste) ൽ [Python എക്സ്റ്റൻഷൻ](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-77998-cacaste) ഉപയോഗിച്ച് തുറന്നപ്പോൾ മികച്ച അനുഭവം നൽകുന്നു.
+ഈ സെഷൻ ഏറ്റവും നല്ല രീതിയിൽ ഉപയോഗിക്കാനാണ് [Visual Studio Code](http://code.visualstudio.com/?WT.mc_id=academic-77998-cacaste) ൽ [Python Extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-77998-cacaste) ഉപയോഗിച്ച് തുറക്കുന്നത്.
-> **കുറിപ്പ്**: ഇൻസ്റ്റാൾ ചെയ്ത് റെപ്പോസിറ്ററി VS Code-ൽ തുറന്നാൽ, Python എക്സ്റ്റൻഷനുകൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ സ്വയം നിർദേശിക്കും. മുകളിൽ പറഞ്ഞതുപോലെ miniconda യും ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതാണ്.
+> **കുറിപ്പ്**: ഒരിക്കൽ നിങ്ങൾ ക്ലോൺ ചെയ്ത് VS Code ൽ ഡയറക്ടറി തുറന്നാൽ, അത് Python എക്സ്റ്റൻഷനുകൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ സ്വയമേവ നിർദ്ദേശിക്കും. മുകളിൽ വിവരിച്ചതുപോലെ miniconda ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതും വരും.
-> **കുറിപ്പ്**: VS Code നിങ്ങൾക്ക് കോണ്ടൈനറിൽ റെപ്പോസിറ്ററി വീണ്ടും തുറക്കാൻ നിർദേശം നൽകുന്നത് നിങ്ങൾ തള്ളുക, ലൊക്കൽ Python ഇൻസ്റ്റലേഷൻ ഉപയോഗിക്കുന്നതിനായി.
+> **കുറിപ്പ്**: VS Code റിപോസിറ്ററി ഒരു കണ്ടെയ്നറിൽ വീണ്ടും തുറക്കാൻ നിർദ്ദേശിച്ചാൽ, ലോക്കൽ Python ഇൻസ്റ്റളേഷൻ ഉപയോഗിക്കാൻ നിങ്ങൾ അത് നിരാകരിക്കണം.
### ബ്രൗസറിൽ Jupyter ഉപയോഗിക്കൽ
-നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ബ്രൗസർ വഴി Jupyter പരിതസ്ഥിതിയും ഉപയോഗിക്കാൻ കഴിയും. ക്ലാസിക്കൽ Jupyter-നും JupyterHub-ക്കും ഓട്ടോ-കമ്പ്ലീഷനും, കോഡ് ഹൈലൈറ്റിംഗും ഉൾപ്പെടെയുള്ള സൗകര്യപ്രദമായ വികസന പരിതസ്ഥിതി ലഭ്യമാണ്.
+നിങ്ങളുടെ സ്വന്തം കമ്പ്യൂട്ടറിലെ ബ്രൗസറിൽ Jupyter പരിതസ്ഥിതി ഉപയോഗിക്കാം. ജനംപ്രിയ Jupyter ഉം JupyterHub ഉം ഓട്ടോ-കമ്പ്ലിഷൻ, കോഡ് ഹൈലൈറ്റിംഗ് തുടങ്ങിയ സുഖകരമായ വികസന പരിതസ്ഥിതി സൃഷ്ടിക്കുന്നു.
-പ്രാദേശികമായി Jupyter ആരംഭിക്കാൻ, കോഴ്സ് ഡയറക്ടറിയിൽ പോയി പ്രവർത്തിപ്പിക്കുക:
+Jupyter ലോക്കലായി ആരംഭിക്കാൻ, കോഴ്സ് ഡയറക്ടറിയിലേക്ക് പോകൂ, തുടർന്ന് 실행ചെയ്യൂ:
```bash
jupyter notebook
```
- അല്ലെങ്കിൽ
+അല്ലെങ്കിൽ
```bash
jupyterhub
```
-
-എന്റെ `.ipynb` ഫയലുകളിലേതെങ്കിലും തിരഞ്ഞെടുക്കാവുന്നതായി തുറന്ന് ജോലി ആരംഭിക്കാം.
+നിങ്ങൾ പിന്നീട് `.ipynb` ഫയലുകളിൽ എവിടെയെങ്കിലും പോകാം, അവ തുറക്കാം, പ്രവർത്തനം തുടങ്ങിയ്ക്കാം.
-### കോണ്ടൈനറിൽ പ്രവർത്തിപ്പിക്കൽ
+### കണ്ടെയ്നറിൽ ഓടിക്കൽ
-Python ഇൻസ്റ്റലേഷൻക്കു بدലെ ഒരു മാർഗം, കോഡ് കോണ്ടൈനറിൽ പ്രവർത്തിപ്പിക്കുകയാണ്. ഞങ്ങളുടെ റെപ്പോസിറ്ററിയിൽ `.devcontainer` എന്ന പ്രത്യേക ഫോൾഡർ കോണ്ടെയ്നർ നിർമ്മിക്കാൻ നിർദ്ദേശങ്ങൾ നൽകിയിട്ടുള്ളതിനാൽ, VS Code കോഡ് വീണ്ടും ഒരു കോണ്ടെയ്നറിൽ തുറക്കാനുള്ള അവസരം നൽകുന്നു. ഇത് Docker ഇൻസ്റ്റലേഷൻ ആവശ്യമാണ്, കൂടാതെ കൂടുതൽ സങ്കീർണമാണ്, അതുകൊണ്ടു് ഇത് കൂടുതൽ പരിചയസമ്പന്നരായ ഉപയോക്താക്കൾക്കായി ശിപാർശ ചെയ്യുന്നു.
+Python ഇൻസ്റ്റാളേഷൻക്കുമൊപ്പം ഒരു വൈകര്യം കോഡ് കണ്ടെയ്നറിൽ ഓടിക്കുക ആകുന്നു. നമ്മുടെ റിപോസിറ്ററിയിൽ ഈ റീപോയ്ക്ക് കണ്ടെയ്നർ നിർമ്മിക്കാൻ നിശ്ചയിക്കുന്ന പ്രത്യേക `.devcontainer` ഫോൾഡർ ഉണ്ട്, അതിനാൽ VS Code കോഡ് വീണ്ടും കണ്ടെയ്നറിൽ തുറക്കാനുള്ള അവസരം നൽകുന്നു. ഇത് Docker ഇൻസ്റ്റലേഷൻ ആവശ്യമാണ്, കൂടാതെ കൂടുതൽ സങ്കീർണ്ണമാണ്, അതിനാൽ അനുഭവസമ്പന്നർക്ക് നിർദ്ദേശിക്കുന്നു.
-## ക്ലൗഡിൽ പ്രവർത്തിപ്പിക്കൽ
+## ക്ലൗഡിൽ ഓടിക്കൽ
-Python പ്രാദേശികമായി ഇൻസ്റ്റാൾ ചെയ്യാൻ ആഗ്രഹിക്കാത്തവർക്കും, ഏതെങ്കിലും ക്ലൗഡ് വിഭവങ്ങൾ ലഭ്യമെങ്കിൽ - കോഡ് ക്ലൗഡിൽ പ്രവർത്തിപ്പിക്കാനുള്ള നല്ല മാർഗ്ഗമാണ്. നിങ്ങൾക്ക് ഇത് നടത്താൻ ചില മാർഗ്ഗങ്ങൾ ഉണ്ട്:
+Python ലോക്കലായി ഇൻസ്റ്റാൾ ചെയ്യാൻ താൽപര്യമില്ലെങ്കിൽ, ചില ക്ലൗഡ് റിസോഴ്സുകൾക്കുള്ള ആക്സസ് ഉള്ള ആളുകൾക്ക്, കോഡ് ക്ലൗഡിൽ ഓടിക്കുക നല്ല ഒരു ഓപ്ഷൻ ആകും. ഇതു ചെയ്യാനുള്ള ചില വഴികൾ:
-* **[GitHub Codespaces](https://github.com/features/codespaces)** ഉപയോഗിക്കൽ - GitHub-ൽ നിങ്ങൾക്കായി സൃഷ്ടിച്ച വെർച്വൽ എൻവയോൺമെന്റ്, VS Code ബ്രൗസർ ഇന്റർഫേസ് വഴി ലഭ്യമാണ്. Codespaces ലഭ്യമെങ്കിൽ, റെപ്പോസിറ്ററിയിൽ **Code** ബട്ടൺ ക്ലിക്കുചെയ്ത് കോഡ്സ്പേസ് ആരംഭിപ്പിച്ച് വൈകാതെ പ്രവർത്തനക്ഷമമാക്കാം.
-* **[Binder](https://mybinder.org/v2/gh/microsoft/ai-for-beginners/HEAD)** ഉപയോഗിക്കുക. [Binder](https://mybinder.org) GitHub-ൽ ചില കോഡ് പരീക്ഷിക്കാൻ സൗജന്യ ക്ലൗഡ് കംപ്യൂട്ടിംഗ് വിഭവങ്ങൾ നൽകുന്നു. ഫ്രണ്ട് പേജിൽ റെപ്പോസിറ്ററി Binder-ൽ തുറക്കാനുള്ള ബട്ടൺ ഉണ്ട് - അത് നിങ്ങളെ നേരിട്ട് ബൈണ്ടർ സൈറ്റിലേക്കു കൊണ്ടുപോകും, അടിസ്ഥാനം കോണ്ടെയ്നർ നിർമിച്ച് Jupyter വെബ് ഇന്റർഫേസ് സജ്ജമാക്കും.
+* GitHub ൽ നിങ്ങക്കായി സൃഷ്ടിച്ച ഒരു വിചിത്ര പരിതസ്ഥിതിയായ **[GitHub Codespaces](https://github.com/features/codespaces)** ഉപയോഗിക്കുക, ഇത് VS Code ബ്രൗസർ ഇന്റർഫെയ്സിലൂടെ ആക്സസ്സ് ചെയ്യാം. Codespaces ആക്സസ് ഉണ്ടെങ്കിൽ, റീപോയിലെ **Code** ബട്ടൺ ക്ലിക്ക് ചെയ്ത് കോഡ്സ്പേസ് ആരംഭിച്ച് ഉടൻ പ്രവർത്തനം തുടങ്ങാം.
+* **[Binder](https://mybinder.org/v2/gh/microsoft/ai-for-beginners/HEAD)** ഉപയോഗിക്കുക. [Binder](https://mybinder.org) പബ്ലിക് GitHub കോഡ് പരീക്ഷിക്കാൻ സൗജന്യ ക്ലൗഡ് കമ്പ്യൂട്ടിംഗ് റിസോഴ്സുകൾ നൽകുന്നു. മുൻപത്തെ പേജിൽ റിപോസിറ്ററി Binder ൽ തുറക്കാൻ ഒരു ബട്ടൺ ഉണ്ട് - ഇത് ഉടൻ ബൈൻഡർ സൈറ്റിലേക്ക് നിങ്ങളെ കൊണ്ടുപോകും, ആ കീഴ്ത്തുള്ള കണ്ടെയ്നർ നിർമ്മിച്ച് Jupyter വെബ് ഇന്റർഫെയ്സ് ആരംഭിക്കും.
-> **കുറിപ്പ്**: തെറ്റായി ഉപയോഗം തടയാൻ Binder ചില വെബ് വിഭവങ്ങളിൽ പ്രവേശനം തടയുന്നു. ഇത് പൊതുജന ഇന്റർനെറ്റിൽ നിന്ന് മോഡലുകളും/ഡാറ്റാസെറ്റുകളും കൊണ്ടുവരുന്ന ചില കോഡുകൾ പ്രവർത്തിക്കാൻ തടസ്സം സൃഷ്ടിക്കാം. നിങ്ങൾക്ക് പ്രവർത്തന മാർഗ്ഗങ്ങൾ കണ്ടെത്തേണ്ടിവരും. കൂടാതെ, Binder നൽകുന്ന കംപ്യൂട്ടിംഗ് വിഭവങ്ങൾ അടിസ്ഥാനപരമാണെന്ന്, പ്രത്യേകിച്ച് ബുദ്ധിമുട്ടുള്ള, തുടർന്ന് വരുന്ന പാഠങ്ങളിൽ പരിശീലനം നാൾപ്പലമാണ്.
+> **കുറിപ്പ്**: ഉപയോഗമാറ്റം തടയാൻ, Binder ചില വെബ് റിസോഴ്സുകളിലേക്ക് ആക്സസ് തടഞ്ഞിട്ടുണ്ട്. ഇത് ചില കോഡുകൾ പ്രവർത്തിക്കാൻ തടസ്സം വരുത്താം, പ്രത്യേകിച്ച് മോഡലുകളും/അഥവാ ഡാറ്റാസെറ്റുകളും പബ്ലിക് ഇന്റർനെറ്റിൽ നിന്നുമെത്തുന്ന കോഡുകൾക്ക്. നിങ്ങൾക്ക് ചില ഉപായങ്ങൾ കണ്ടെത്തേണ്ടി വരും. കൂടാതെ Binder നൽകുന്ന കംപ്യൂട്ടിങ്ങ് ശേഷി വളരെ അടിസ്ഥാനപരമാണ്, അതുകൊണ്ട് പരിശീലനം മന്ദഗതിയാകും, പ്രത്യേകിച്ചും പിന്നീട് കൂടുതൽ സങ്കീർണ്ണ പാഠങ്ങളിലായി.
-## GPU ഉപയോഗിച്ച് ക്ലൗഡിൽ പ്രവർത്തിപ്പിക്കൽ
+##GPU യുമായി ക്ലൗഡിൽ ഓടിക്കൽ
-ഈ പാഠ്യപദ്ധതിയിലെ ചില പിന്നീട് വരുന്ന പാഠങ്ങൾ GPU പിന്തുണയാൽ വളരെ പ്രയോജനവും. മോഡൽ പരിശീലനം, ഉദാഹരണത്തിന്, അല്ലാത്തപ്പോൾ വേദനകരമായി സ്ലോ ആയേക്കാം. ചില മാർഗ്ഗങ്ങൾ നിങ്ങൾ പിന്തുടരാം, പ്രത്യേകിച്ച് നിങ്ങളുടെ സ്ഥാപനത്തിലൂടെയോ അല്ലെങ്കിൽ [Azure for Students](https://azure.microsoft.com/free/students/?WT.mc_id=academic-77998-cacaste) വഴിയോ ക്ലൗഡിൽ പ്രവേശനമുണ്ടെങ്കിൽ:
+ഈ സെഷനിലെ ചില பின்னണി പാഠങ്ങൾ GPU പിന്തുണ പ്രധാനമാണ്. ഉദാഹരണത്തിന്, മോഡൽ പരിശീലനം അത്രമേൽ മന്ദഗതിയുള്ളതാണ് പുരാതന രീതികളിൽ. നിങ്ങൾക്ക് ക്ലൗഡ് ആക്സസ് ഉണ്ടെങ്കിൽ, പ്രത്യേകിച്ച് [Azure for Students](https://azure.microsoft.com/free/students/?WT.mc_id=academic-77998-cacaste) വഴി അല്ലെങ്കിൽ നിങ്ങളുടെ സ്ഥാപനത്തിലൂടെ, നിങ്ങൾക്ക് പാലിക്കാവുന്ന ചില ഓപ്ഷനുകൾ:
-* [Data Science Virtual Machine](https://docs.microsoft.com/learn/modules/intro-to-azure-data-science-virtual-machine/?WT.mc_id=academic-77998-cacaste) സൃഷ്ടിച്ച് Jupyter വഴിയേ അതുമായി കണക്ട് ചെയ്യുക. പിന്നീട് Maschine-ല് റെപ്പോ ക്ലോൺ ചെയ്ത് പഠനം ആരംഭിക്കാം. NC-സീരിസ് VMs GPU പിന്തുണ നൽകുന്നു.
+* [Data Science Virtual Machine](https://docs.microsoft.com/learn/modules/intro-to-azure-data-science-virtual-machine/?WT.mc_id=academic-77998-cacaste) സൃഷ്ടിച്ച് Jupyter വഴി അതിൽ കോൺക്റ്റ് ചെയ്യുക. തുടർന്ന് റിപോയെ മെഷീനിൽ ക്ലോൺ ചെയ്ത് പഠനം തുടങ്ങാം. NC-സീരീസ് VM-കൾ GPU പിന്തുണയുള്ളവയാണ്.
-> **കുറിപ്പ്**: ചില സബ്സ്ക്രിപ്ഷനുകൾ, Azure for Students ഉൾപ്പെടെ, GPU പിന്തുണ ആദ്യസ്ഥിതിയിൽ നൽകിയിട്ടില്ല. GPU കോറുകൾ അധികമായി ആവശ്യപ്പെടേണ്ടി വരാം ടെക്നിക്കൽ സഹായ അഭ്യർത്ഥനയിലൂടെ.
+> **കുറിപ്പ്**: Azure for Students അടക്കമുള്ള ചില സബ്സ്ക്രിപ്ഷനുകൾ ബോക്സിന്റെ പുറത്തുനിന്നു GPU പിന്തുണ നൽകാറില്ല. കൂടത്ത GPU കോറുകൾ ആവശ്യമായാൽ ടെക്നിക്കൽ പിന്തുണ അഭ്യർത്ഥിക്കേണ്ടി വരും.
-* [Azure Machine Learning Workspace](https://azure.microsoft.com/services/machine-learning/?WT.mc_id=academic-77998-cacaste) സൃഷ്ടിച്ച് അവിടെ നോട്ട്ബുക്ക് ഫീച്ചർ ഉപയോഗിക്കുക. [ഈ വീഡിയോ](https://azure-for-academics.github.io/quickstart/azureml-papers/) Azure ML നോട്ട്ബുക്കിൽ റെപ്പോസിറ്ററി ക്ലോൺ ചെയ്ത് ഉപയോഗിക്കുന്ന വിധം കാണിക്കുന്നു.
+* [Azure Machine Learning Workspace](https://azure.microsoft.com/services/machine-learning/?WT.mc_id=academic-77998-cacaste) സൃഷ്ടിച്ച് പിന്നീട് അവിടെ നോട്ട്ബുക്ക് ഫീച്ചർ ഉപയോഗിക്കുക. [ഈ വീഡിയോ](https://azure-for-academics.github.io/quickstart/azureml-papers/) കാണിക്കുന്നത് Azure ML നോട്ട്ബുക്ക്-ൽ രിപോസിറ്ററി ക്ലോൺ ചെയ്ത് ഇതുപോലെ പ്രവർത്തിപ്പിക്കുന്ന വിധമാണ്.
-Google Colab-യും ഉപയോഗിക്കാം, അത് ചില സൗജന്യ GPU പിന്തുണയോടെ വരുന്നു, Jupyter നോട്ട്ബുക്കുകൾ അഥവാ ഒന്ന് ഒന്ന് അപ്ലോഡ് ചെയ്തു പ്രവർത്തിപ്പിക്കാം.
+Google Colab-ഉം നിങ്ങൾക്ക് ഉപയോഗിക്കാം, അത് സൗജന്യ GPU പിന്തുണ നൽകുന്നു, Jupyter നോട്ട്ബുക്കുകൾ അവിടെ അപ്ലോഡ് ചെയ്ത് ഒരൊറ്റത്തെയും പ്രവർത്തിപ്പിക്കാം.
---
-**അസാദ്ധ്യതാ പ്രസ്താവനം**:
-ഈ രേഖ [Co-op Translator](https://github.com/Azure/co-op-translator) എന്ന എഐ വിവർത്തന സേവനം ഉപയോഗിച്ച് വിവർത്തനം ചെയ്തമാണ്. ഞങ്ങൾ ശരിശുദ്ധതയിൽ ശ്രമിച്ചിരുന്നെങ്കിലും, സ്വയമേവ ഉള്ള വിവർത്തനങ്ങളിൽ പിഴവുകൾ അല്ലെങ്കിൽ അശുദ്ധികളുണ്ടാകാമെന്ന് ദയവായി ശ്രദ്ധിക്കുക. അതിന്റെ ഭാഷയിൽ ഉള്ള മൗലിക രേഖ പ്രാധാന്യവാനായ ഉറവിടമായി മാറ്റി കണ്ടിരിക്കണം. പ്രധാന വിവരങ്ങൾക്ക് പ്രൊഫഷണൽ മനുഷ്യ വിവർത്തനം നിർദ്ദേശിക്കുന്നു. ഈ വിവർത്തനം ഉപയോഗിക്കുന്നതിൽ നിന്നുള്ള എല്ലാ തെറ്റുകൾക്കും അല്ലെങ്കിൽ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കും ഞങ്ങൾ ഉത്തരവാദിത്തം വഹിക്കുന്നില്ല.
+**അറിയിപ്പ്**:
+ഈ രേഖ AI പരിഭാഷാ സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. ഞങ്ങൾ കൃത്യതയ്ക്കായി ശ്രമിക്കുന്നുവെങ്കിലും, ഓട്ടോമേറ്റഡ് പരിഭാഷകളിൽ പിഴവുകൾ അല്ലെങ്കിൽ തെറ്റായ വിവരങ്ങൾ ഉണ്ടാകാൻ സാധ്യതയുണ്ട്. അതിന്റെ സ്വാഭാവിക ഭാഷയിലുള്ള അസൽ രേഖയാണ് പ്രാമാണികമായ ഉറവിടമായി പരിഗണിക്കേണ്ടത്. നിർണായകമായ വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷ ശുപാർശ ചെയ്യുന്നു. ഈ പരിഭാഷ ഉപയോഗിച്ച് ഉണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾ അല്ലെങ്കിൽ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കായി ഞങ്ങൾ ഉത്തരവാദികളല്ല.
\ No newline at end of file
diff --git a/translations/ml/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb b/translations/ml/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
index a53d2807..2e356899 100644
--- a/translations/ml/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
+++ b/translations/ml/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
@@ -1,1497 +1,1502 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# മുൻപരിചയമുള്ള മോഡലുകളും ട്രാൻസ്ഫർ ലേണിംഗും\n",
- "\n",
- "CNN-കൾ പരിശീലിപ്പിക്കാൻ വളരെ സമയം വേണ്ടിവരും, കൂടാതെ അതിനായി വലിയ ഡാറ്റ ആവശ്യമാണ്. എന്നാൽ, ഒരു വലിയ ഭാഗം സമയം ചെലവഴിക്കുന്നത് ഒരു നെറ്റ്വർക്കിന്റെ ഏറ്റവും മികച്ച ലോ-ലെവൽ ഫിൽട്ടറുകൾ പഠിക്കാൻ ആണ്, അവ ചിത്രങ്ങളിൽ നിന്നുള്ള പാറ്റേണുകൾ എടുക്കാൻ ഉപയോഗിക്കുന്നു. ഒരു സ്വാഭാവികമായ ചോദ്യം ഉയരുന്നു - ഒരു ഡാറ്റാസെറ്റിൽ പരിശീലിപ്പിച്ച ഒരു ന്യൂറൽ നെറ്റ്വർക്ക് ഉപയോഗിച്ച്, പൂർണ്ണ പരിശീലന പ്രക്രിയയില്ലാതെ വ്യത്യസ്ത ചിത്രങ്ങൾ വർഗ്ഗീകരിക്കാൻ അതിനെ അനുയോജ്യമായി മാറ്റാമോ?\n",
- "\n",
- "ഈ സമീപനം **ട്രാൻസ്ഫർ ലേണിംഗ്** എന്ന് വിളിക്കുന്നു, കാരണം ഒരു ന്യൂറൽ നെറ്റ്വർക്ക് മോഡലിൽ നിന്നുള്ള ചില അറിവ് മറ്റൊരു മോഡലിലേക്ക് മാറ്റുന്നു. ട്രാൻസ്ഫർ ലേണിംഗിൽ, സാധാരണയായി, വലിയ ചിത്ര ഡാറ്റാസെറ്റിൽ, ഉദാഹരണത്തിന് **ImageNet**-ൽ, മുൻപരിചയമുള്ള ഒരു മോഡലിൽ നിന്ന് ആരംഭിക്കുന്നു. ആ മോഡലുകൾ സാധാരണ ചിത്രങ്ങളിൽ നിന്നുള്ള വ്യത്യസ്ത ഫീച്ചറുകൾ എടുക്കുന്നതിൽ ഇതിനകം നല്ല പ്രകടനം കാണിക്കുന്നു, പലപ്പോഴും ആ ഫീച്ചറുകളുടെ മുകളിൽ ഒരു ക്ലാസിഫയർ നിർമ്മിക്കുന്നത് നല്ല ഫലം നൽകും.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [],
- "source": [
- "import tensorflow as tf\n",
- "from tensorflow import keras\n",
- "import matplotlib.pyplot as plt\n",
- "import numpy as np\n",
- "import os\n",
- "from tfcv import *"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## പൂച്ചകളും നായകളും ഡാറ്റാസെറ്റ്\n",
- "\n",
- "ഈ യൂണിറ്റിൽ, പൂച്ചകളും നായകളും ചിത്രങ്ങൾ വർഗ്ഗീകരിക്കുന്ന യഥാർത്ഥ ജീവിത പ്രശ്നം നാം പരിഹരിക്കും. അതിനായി, നാം [Kaggle Cats vs. Dogs Dataset](https://www.kaggle.com/c/dogs-vs-cats) ഉപയോഗിക്കും, ഇത് [Microsoft-ൽ നിന്നും](https://www.microsoft.com/en-us/download/details.aspx?id=54765&WT.mc_id=academic-77998-cacaste) ഡൗൺലോഡ് ചെയ്യാനും കഴിയും.\n",
- "\n",
- "ഈ ഡാറ്റാസെറ്റ് ഡൗൺലോഡ് ചെയ്ത് `data` ഡയറക്ടറിയിൽ എക്സ്ട്രാക്റ്റ് ചെയ്യാം (ഈ പ്രക്രിയക്ക് കുറച്ച് സമയം എടുക്കാം!):\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "if not os.path.exists('data/kagglecatsanddogs_5340.zip'):\n",
- " !wget -P data https://download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_5340.zip"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [],
- "source": [
- "import zipfile\n",
- "if not os.path.exists('data/PetImages'):\n",
- " with zipfile.ZipFile('data/kagglecatsanddogs_5340.zip', 'r') as zip_ref:\n",
- " zip_ref.extractall('data')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ദുരിതകരമായി, ഡാറ്റാസെറ്റിൽ ചില കുഴപ്പമുള്ള ഇമേജ് ഫയലുകൾ ഉണ്ട്. കുഴപ്പമുള്ള ഫയലുകൾ പരിശോധിക്കാൻ നമുക്ക് വേഗത്തിൽ ക്ലീനിംഗ് നടത്തേണ്ടതുണ്ട്. ഈ ട്യൂട്ടോറിയൽ നശിപ്പിക്കാതിരിക്കാൻ, ഡാറ്റാസെറ്റ് പരിശോധിക്കുന്ന കോഡ് ഒരു മോഡ്യൂളിലേക്ക് മാറ്റി.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Corrupt image or wrong format: data/PetImages/Cat/12235.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/2663.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4929.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8183.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11083.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6435.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6491.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7968.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6768.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11397.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8295.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4874.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/23.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11864.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3491.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11729.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3197.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/10874.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6376.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9361.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9328.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/910.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/2021.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/666.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3710.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9171.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6906.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11095.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/660.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8415.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3161.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/850.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7003.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1267.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7642.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8553.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6900.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4334.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/10404.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6980.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/936.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9619.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3300.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7647.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/2742.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9565.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1757.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11874.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1936.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/5077.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7845.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8832.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11935.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9208.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4322.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7978.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/10820.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/391.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/10073.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8958.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/8470.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/445.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4821.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11565.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4351.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4833.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/140.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3153.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/5370.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/5819.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3649.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4293.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/3967.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1937.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/10125.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1386.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4750.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6029.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/5614.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/2569.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9778.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/6486.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11210.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/7502.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/2189.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1151.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4629.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/12080.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/10501.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/1914.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/11086.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/4000.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/9100.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/5553.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Cat/12269.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5243.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3288.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11912.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3320.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11166.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8194.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2353.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9026.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8557.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7969.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8693.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4367.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1900.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5730.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9961.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8126.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8521.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11560.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11233.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11675.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8889.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9414.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3588.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10353.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10733.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6238.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5618.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7743.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10747.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6503.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11410.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5955.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2915.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3136.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4086.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2905.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2494.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3546.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5547.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9851.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9188.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4203.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8715.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4640.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1866.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7718.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7514.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1017.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/12102.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/296.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6718.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11253.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10173.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11849.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10383.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10678.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5790.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6318.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1884.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4654.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9145.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2479.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/12289.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2688.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4134.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10637.jpg\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/anaconda/envs/py38_tensorflow/lib/python3.8/site-packages/PIL/TiffImagePlugin.py:793: UserWarning: Truncated File Read\n",
- " warnings.warn(str(msg))\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Corrupt image or wrong format: data/PetImages/Dog/543.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8730.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/12114.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/522.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10863.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10401.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7739.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/561.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1308.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9643.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3155.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5736.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4257.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11853.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6855.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1259.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7652.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/573.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11702.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/414.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4301.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9500.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10726.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9367.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2877.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10907.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10972.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7311.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10797.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2317.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7128.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6500.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11285.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6430.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6032.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10969.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8364.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11692.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3038.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5604.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/565.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9640.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7459.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6305.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6555.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/11590.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6059.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3927.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10705.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/2384.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/3885.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/663.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9043.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8563.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9556.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/9967.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10158.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5263.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/8641.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7369.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/4924.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/10351.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/6213.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/5104.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1356.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7133.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/7112.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/1168.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/719.jpg\n",
- "Corrupt image or wrong format: data/PetImages/Dog/50.jpg\n"
- ]
- }
- ],
- "source": [
- "check_image_dir('data/PetImages/Cat/*.jpg')\n",
- "check_image_dir('data/PetImages/Dog/*.jpg')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## ഡാറ്റാസെറ്റ് ലോഡ് ചെയ്യൽ\n",
- "\n",
- "മുൻ ഉദാഹരണങ്ങളിൽ, നാം Keras-ൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഡാറ്റാസെറ്റുകൾ ലോഡ് ചെയ്തിരുന്നു. ഇപ്പോൾ നാം നമ്മുടെ സ്വന്തം ഡാറ്റാസെറ്റുമായി ഇടപഴകുകയാണ്, അത് ചിത്രങ്ങളുടെ ഒരു ഡയറക്ടറിയിൽ നിന്ന് ലോഡ് ചെയ്യേണ്ടതാണ്.\n",
- "\n",
- "യഥാർത്ഥ ജീവിതത്തിൽ, ചിത്ര ഡാറ്റാസെറ്റുകളുടെ വലിപ്പം വളരെ വലുതായിരിക്കാം, എല്ലാ ഡാറ്റയും മെമ്മറിയിൽ ഒതുക്കാൻ കഴിയുമെന്ന് ആശ്രയിക്കാനാകില്ല. അതിനാൽ, ഡാറ്റാസെറ്റുകൾ സാധാരണയായി ട്രെയിനിംഗിന് അനുയോജ്യമായ മിനിബാച്ചുകളായി ഡാറ്റ നൽകുന്ന **ജനറേറ്ററുകളായി** പ്രതിനിധീകരിക്കപ്പെടുന്നു.\n",
- "\n",
- "ചിത്ര വർഗ്ഗീകരണവുമായി ഇടപഴകാൻ, Keras പ്രത്യേക ഫംഗ്ഷൻ `image_dataset_from_directory` ഉൾപ്പെടുത്തിയിട്ടുണ്ട്, ഇത് വ്യത്യസ്ത ക്ലാസുകളുമായി ബന്ധപ്പെട്ട സബ് ഡയറക്ടറികളിൽ നിന്ന് ചിത്രങ്ങൾ ലോഡ് ചെയ്യാൻ കഴിയും. ഈ ഫംഗ്ഷൻ ചിത്രങ്ങളുടെ സ്കെയിലിംഗും കൈകാര്യം ചെയ്യുന്നു, കൂടാതെ ഡാറ്റാസെറ്റ് ട്രെയിൻ, ടെസ്റ്റ് ഉപസെറ്റുകളായി വിഭജിക്കാനും കഴിയും:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Found 24769 files belonging to 2 classes.\n",
- "Using 19816 files for training.\n",
- "Found 24769 files belonging to 2 classes.\n",
- "Using 4953 files for validation.\n"
- ]
- }
- ],
- "source": [
- "data_dir = 'data/PetImages'\n",
- "batch_size = 64\n",
- "ds_train = keras.preprocessing.image_dataset_from_directory(\n",
- " data_dir,\n",
- " validation_split = 0.2,\n",
- " subset = 'training',\n",
- " seed = 13,\n",
- " image_size = (224,224),\n",
- " batch_size = batch_size\n",
- ")\n",
- "ds_test = keras.preprocessing.image_dataset_from_directory(\n",
- " data_dir,\n",
- " validation_split = 0.2,\n",
- " subset = 'validation',\n",
- " seed = 13,\n",
- " image_size = (224,224),\n",
- " batch_size = batch_size\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "രണ്ടു കോൾസിനും ഒരേ `seed` മൂല്യം സജ്ജീകരിക്കുന്നത് പ്രധാനമാണ്, കാരണം ഇത് ട്രെയിൻ, ടെസ്റ്റ് ഡാറ്റാസെറ്റുകൾക്കിടയിലെ ചിത്രങ്ങളുടെ വിഭജനം ബാധിക്കുന്നു.\n",
- "\n",
- "ഡാറ്റാസെറ്റ് ഡയറക്ടറികളിൽ നിന്നാണ് ക്ലാസ് നാമങ്ങൾ സ്വയം എടുക്കുന്നത്, ആവശ്യമായാൽ നിങ്ങൾക്ക് അവയെ വിളിച്ച് ആക്സസ് ചെയ്യാം:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['Cat', 'Dog']"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "ds_train.class_names"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "നാം ലഭിച്ച ഡാറ്റാസെറ്റുകൾ മോഡൽ പരിശീലിപ്പിക്കാൻ നേരിട്ട് `fit` ഫംഗ്ഷനിലേക്ക് നൽകാം. അവയിൽ അനുയോജ്യമായ ചിത്രങ്ങളും ലേബലുകളും ഉൾപ്പെടുന്നു, ഇവയെ താഴെ കാണുന്ന ഘടന ഉപയോഗിച്ച് ലൂപ്പ് ചെയ്യാം:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Training batch shape: features=(64, 224, 224, 3), labels=(64,)\n"
- ]
- },
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "for x,y in ds_train:\n",
- " print(f\"Training batch shape: features={x.shape}, labels={y.shape}\")\n",
- " x_sample, y_sample = x,y\n",
- " break\n",
- " \n",
- "display_dataset(x_sample.numpy().astype(np.int),np.expand_dims(y_sample,1),classes=ds_train.class_names)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "> **കുറിപ്പ്**: ഡാറ്റാസെറ്റിലെ എല്ലാ ചിത്രങ്ങളും 0-255 പരിധിയിലുള്ള ഫ്ലോട്ടിംഗ് പോയിന്റ് ടെൻസറുകളായി പ്രതിനിധീകരിച്ചിരിക്കുന്നു. അവയെ ന്യൂറൽ നെറ്റ്വർക്കിലേക്ക് നൽകുന്നതിന് മുമ്പ്, ആ മൂല്യങ്ങളെ 0-1 പരിധിയിലേക്ക് സ്കെയിൽ ചെയ്യേണ്ടതുണ്ട്. ചിത്രങ്ങൾ പ്ലോട്ട് ചെയ്യുമ്പോൾ, അതേപോലെ ചെയ്യേണ്ടതോ, അല്ലെങ്കിൽ മൂല്യങ്ങളെ `int` തരം (മുകളിൽ കൊടുത്തിരിക്കുന്ന കോഡിൽ ചെയ്തതുപോലെ) ആയി മാറ്റേണ്ടതോ ഉണ്ട്, അതിലൂടെ `matplotlib`-ന് നാം അസ്കെയിൽ ചെയ്ത യഥാർത്ഥ ചിത്രം പ്ലോട്ട് ചെയ്യണമെന്ന് കാണിക്കാം.\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## മുൻകൂട്ടി പരിശീലിപ്പിച്ച മോഡലുകൾ\n",
- "\n",
- "ചിത്ര വർഗ്ഗീകരണത്തിന് വേണ്ടിയുള്ള പല ജോലികൾക്കും മുൻകൂട്ടി പരിശീലിപ്പിച്ച ന്യൂറൽ നെറ്റ്വർക്ക് മോഡലുകൾ കണ്ടെത്താൻ കഴിയും. ആ മോഡലുകളിൽ പലതും `keras.applications` നെയിംസ്പേസിനുള്ളിൽ ലഭ്യമാണ്, കൂടാതെ ഇന്റർനെറ്റിൽ കൂടുതൽ മോഡലുകൾ ലഭ്യമാണ്. ഏറ്റവും ലളിതമായ VGG-16 മോഡൽ എങ്ങനെ ലോഡ് ചെയ്ത് ഉപയോഗിക്കാമെന്ന് നോക്കാം:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels.h5\n",
- "553467904/553467096 [==============================] - 6s 0us/step\n",
- "Most probable class = [208]\n",
- "Downloading data from https://storage.googleapis.com/download.tensorflow.org/data/imagenet_class_index.json\n",
- "40960/35363 [==================================] - 0s 0us/step\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- "[[('n02099712', 'Labrador_retriever', 0.5340957),\n",
- " ('n02100236', 'German_short-haired_pointer', 0.0939442),\n",
- " ('n02092339', 'Weimaraner', 0.08160535),\n",
- " ('n02099849', 'Chesapeake_Bay_retriever', 0.057179328),\n",
- " ('n02109047', 'Great_Dane', 0.03733857)]]"
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "vgg = keras.applications.VGG16()\n",
- "inp = keras.applications.vgg16.preprocess_input(x_sample[:1])\n",
- "\n",
- "res = vgg(inp)\n",
- "print(f\"Most probable class = {tf.argmax(res,1)}\")\n",
- "\n",
- "keras.applications.vgg16.decode_predictions(res.numpy())"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ഇവിടെ ചില പ്രധാന കാര്യങ്ങളുണ്ട്:\n",
- "* ഏതെങ്കിലും പ്രീ-ട്രെയിൻ ചെയ്ത നെറ്റ്വർക്കിലേക്ക് ഇൻപുട്ട് നൽകുന്നതിന് മുമ്പ് അത് ഒരു പ്രത്യേക രീതിയിൽ പ്രീ-പ്രോസസ് ചെയ്യണം. ഇത് ചെയ്യുന്നത് ബന്ധപ്പെട്ട `preprocess_input` ഫംഗ്ഷൻ വിളിച്ച് ആണ്, ഇത് ഒരു ബാച്ച് ചിത്രങ്ങൾ സ്വീകരിച്ച് അവയുടെ പ്രോസസ്സ് ചെയ്ത രൂപം തിരികെ നൽകുന്നു. VGG-16 ന്റെ കാര്യത്തിൽ, ചിത്രങ്ങൾ നോർമലൈസ് ചെയ്യപ്പെടുകയും ഓരോ ചാനലിനും മുൻകൂട്ടി നിർവചിച്ച ശരാശരി മൂല്യം കുറയ്ക്കപ്പെടുകയും ചെയ്യുന്നു. കാരണം VGG-16 യഥാർത്ഥത്തിൽ ഈ പ്രീ-പ്രോസസ്സിംഗ് ഉപയോഗിച്ച് പരിശീലിപ്പിക്കപ്പെട്ടതാണ്.\n",
- "* ന്യുറൽ നെറ്റ്വർക്ക് ഇൻപുട്ട് ബാച്ചിൽ പ്രയോഗിക്കപ്പെടുന്നു, ഫലമായി ഓരോ ക്ലാസിന്റെയും സാധ്യത കാണിക്കുന്ന 1000-ഘടക ടENSOR ബാച്ച് ലഭിക്കുന്നു. ഈ ടENSOR-ൽ `argmax` വിളിച്ച് ഏറ്റവും സാധ്യതയുള്ള ക്ലാസ് നമ്പർ കണ്ടെത്താം.\n",
- "* ലഭിച്ച ഫലം ഒരു [ImageNet ക്ലാസിന്റെ നമ്പർ](https://gist.github.com/yrevar/942d3a0ac09ec9e5eb3a) ആണ്. ഈ ഫലത്തിന് അർത്ഥം നൽകാൻ, നാം `decode_predictions` ഫംഗ്ഷൻ ഉപയോഗിക്കാം, ഇത് ടോപ്പ് n ക്ലാസുകൾ അവരുടെ പേരുകളോടൊപ്പം തിരികെ നൽകുന്നു.\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "വീജിജി-16 നെറ്റ്വർക്കിന്റെ ആർക്കിടെക്ചറും നോക്കാം:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Model: \"vgg16\"\n",
- "_________________________________________________________________\n",
- "Layer (type) Output Shape Param # \n",
- "=================================================================\n",
- "input_1 (InputLayer) [(None, 224, 224, 3)] 0 \n",
- "_________________________________________________________________\n",
- "block1_conv1 (Conv2D) (None, 224, 224, 64) 1792 \n",
- "_________________________________________________________________\n",
- "block1_conv2 (Conv2D) (None, 224, 224, 64) 36928 \n",
- "_________________________________________________________________\n",
- "block1_pool (MaxPooling2D) (None, 112, 112, 64) 0 \n",
- "_________________________________________________________________\n",
- "block2_conv1 (Conv2D) (None, 112, 112, 128) 73856 \n",
- "_________________________________________________________________\n",
- "block2_conv2 (Conv2D) (None, 112, 112, 128) 147584 \n",
- "_________________________________________________________________\n",
- "block2_pool (MaxPooling2D) (None, 56, 56, 128) 0 \n",
- "_________________________________________________________________\n",
- "block3_conv1 (Conv2D) (None, 56, 56, 256) 295168 \n",
- "_________________________________________________________________\n",
- "block3_conv2 (Conv2D) (None, 56, 56, 256) 590080 \n",
- "_________________________________________________________________\n",
- "block3_conv3 (Conv2D) (None, 56, 56, 256) 590080 \n",
- "_________________________________________________________________\n",
- "block3_pool (MaxPooling2D) (None, 28, 28, 256) 0 \n",
- "_________________________________________________________________\n",
- "block4_conv1 (Conv2D) (None, 28, 28, 512) 1180160 \n",
- "_________________________________________________________________\n",
- "block4_conv2 (Conv2D) (None, 28, 28, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block4_conv3 (Conv2D) (None, 28, 28, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block4_pool (MaxPooling2D) (None, 14, 14, 512) 0 \n",
- "_________________________________________________________________\n",
- "block5_conv1 (Conv2D) (None, 14, 14, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block5_conv2 (Conv2D) (None, 14, 14, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block5_conv3 (Conv2D) (None, 14, 14, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block5_pool (MaxPooling2D) (None, 7, 7, 512) 0 \n",
- "_________________________________________________________________\n",
- "flatten (Flatten) (None, 25088) 0 \n",
- "_________________________________________________________________\n",
- "fc1 (Dense) (None, 4096) 102764544 \n",
- "_________________________________________________________________\n",
- "fc2 (Dense) (None, 4096) 16781312 \n",
- "_________________________________________________________________\n",
- "predictions (Dense) (None, 1000) 4097000 \n",
- "=================================================================\n",
- "Total params: 138,357,544\n",
- "Trainable params: 138,357,544\n",
- "Non-trainable params: 0\n",
- "_________________________________________________________________\n"
- ]
- }
- ],
- "source": [
- "vgg.summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## GPU കണക്കുകൂട്ടലുകൾ\n",
- "\n",
- "VGG-16 പോലുള്ള ഡീപ്പ് ന്യൂറൽ നെറ്റ്വർക്കുകളും മറ്റ് ആധുനിക ആർക്കിടെക്ചറുകളും പ്രവർത്തിക്കാൻ വളരെ അധികം കണക്കുകൂട്ടൽ ശേഷി ആവശ്യമാണ്. GPU ആക്സിലറേഷൻ ലഭ്യമായാൽ അത് ഉപയോഗിക്കുന്നത് യുക്തിയുള്ളതാണ്. ഭാഗ്യവശാൽ, Keras GPU ലഭ്യമായാൽ കണക്കുകൂട്ടലുകൾ സ്വയം വേഗത്തിലാക്കുന്നു. Tensorflow GPU ഉപയോഗിക്കാൻ കഴിയുന്നുണ്ടോ എന്ന് താഴെ കൊടുത്തിരിക്കുന്ന കോഡ് ഉപയോഗിച്ച് പരിശോധിക്കാം:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "tf.config.list_physical_devices('GPU')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## VGG ഫീച്ചറുകൾ എടുക്കൽ\n",
- "\n",
- "നമ്മുടെ ചിത്രങ്ങളിൽ നിന്ന് ഫീച്ചറുകൾ എടുക്കാൻ VGG-16 ഉപയോഗിക്കണമെങ്കിൽ, അവസാന ക്ലാസിഫിക്കേഷൻ ലെയറുകൾ ഇല്ലാത്ത മോഡൽ വേണം. ടോപ്പ് ലെയറുകൾ ഇല്ലാതെ VGG-16 മോഡൽ സൃഷ്ടിക്കാൻ ഈ കോഡ് ഉപയോഗിക്കാം:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Shape after applying VGG-16: (7, 7, 512)\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 15,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "vgg = keras.applications.VGG16(include_top=False)\n",
- "\n",
- "inp = keras.applications.vgg16.preprocess_input(x_sample[:1])\n",
- "res = vgg(inp)\n",
- "print(f\"Shape after applying VGG-16: {res[0].shape}\")\n",
- "plt.figure(figsize=(15,3))\n",
- "plt.imshow(res[0].numpy().reshape(-1,512))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ഫീച്ചർ ടെൻസറിന്റെ അളവ് 7x7x512 ആണ്, പക്ഷേ അതിനെ ദൃശ്യവൽക്കരിക്കാൻ 2D രൂപത്തിലേക്ക് പുനഃരൂപീകരിക്കേണ്ടി വന്നു.\n",
- "\n",
- "ഇപ്പോൾ ആ ഫീച്ചറുകൾ ചിത്രങ്ങൾ വർഗ്ഗീകരിക്കാൻ ഉപയോഗിക്കാമോ എന്ന് നോക്കാം. ചില ചിത്രങ്ങളുടെ ഭാഗം (നമ്മുടെ കേസിൽ 50 മിനിബാച്ചുകൾ) കൈമാറി, അവയുടെ ഫീച്ചർ വെക്ടറുകൾ മുൻകൂട്ടി കണക്കാക്കാം. അതിന് Tensorflow **dataset** API ഉപയോഗിക്കാം. `map` ഫംഗ്ഷൻ ഒരു dataset എടുത്ത് നൽകിയ ലാംബ്ഡാ ഫംഗ്ഷൻ പ്രയോഗിച്ച് അതിനെ മാറ്റുന്നു. ഈ സംവിധാനം ഉപയോഗിച്ച്, VGG-നാൽ എക്സ്ട്രാക്റ്റ് ചെയ്ത ഫീച്ചറുകൾ അടങ്ങിയ പുതിയ dataset-കൾ, `ds_features_train` ഉം `ds_features_test` ഉം നിർമ്മിക്കുന്നു, അവിടെ യഥാർത്ഥ ചിത്രങ്ങൾക്കുപകരം ഫീച്ചറുകൾ ഉൾപ്പെടുന്നു.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 41,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "(64, 7, 7, 512) (64,)\n"
- ]
- }
- ],
- "source": [
- "num = batch_size*50\n",
- "ds_features_train = ds_train.take(50).map(lambda x,y : (vgg(x),y))\n",
- "ds_features_test = ds_test.take(10).map(lambda x,y : (vgg(x),y))\n",
- "\n",
- "for x,y in ds_features_train:\n",
- " print(x.shape,y.shape)\n",
- " break"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "നാം ഡാറ്റാസെറ്റ് വലിപ്പം പരിമിതപ്പെടുത്താൻ `.take(50)` എന്ന കൺസ്ട്രക്ഷൻ ഉപയോഗിച്ചു, നമ്മുടെ പ്രദർശനം വേഗത്തിലാക്കാൻ. നിങ്ങൾക്ക് തീർച്ചയായും ഈ പരീക്ഷണം പൂർണ്ണ ഡാറ്റാസെറ്റിൽ നടത്താം.\n",
- "\n",
- "ഇപ്പോൾ നമുക്ക് എക്സ്ട്രാക്റ്റ് ചെയ്ത ഫീച്ചറുകളുള്ള ഒരു ഡാറ്റാസെറ്റ് ഉണ്ടാകുമ്പോൾ, പൂച്ചകളും നായകളും വേർതിരിക്കാൻ ഒരു ലളിതമായ ഡെൻസ് ക്ലാസിഫയർ പരിശീലിപ്പിക്കാം. ഈ നെറ്റ്വർക്ക് (7,7,512) ആകൃതിയിലുള്ള ഫീച്ചർ വെക്ടർ സ്വീകരിച്ച്, നായയോ പൂച്ചയോ ആയ ഒരു ഔട്ട്പുട്ട് നൽകും. ഇത് ബൈനറി ക്ലാസിഫിക്കേഷൻ ആയതിനാൽ, `sigmoid` ആക്ടിവേഷൻ ഫംഗ്ഷനും `binary_crossentropy` ലോസ്സും ഉപയോഗിക്കുന്നു.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 44,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "50/50 [==============================] - 1896s 38s/step - loss: 1.4845 - acc: 0.9144 - val_loss: 0.7220 - val_acc: 0.9516\n"
- ]
- }
- ],
- "source": [
- "model = keras.models.Sequential([\n",
- " keras.layers.Flatten(input_shape=(7,7,512)),\n",
- " keras.layers.Dense(1,activation='sigmoid')\n",
- "])\n",
- "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])\n",
- "hist = model.fit(ds_features_train, validation_data=ds_features_test)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ഫലം മികച്ചതാണ്, പൂച്ചയും നായയും ഏകദേശം 95% സാധ്യതയോടെ വേർതിരിക്കാൻ കഴിയും! എന്നാൽ, മാനുവൽ ഫീച്ചർ എക്സ്ട്രാക്ഷൻ വളരെ സമയം എടുക്കുന്നുണ്ടെന്ന് തോന്നുന്നതിനാൽ, ഞങ്ങൾ ഈ സമീപനം എല്ലാ ചിത്രങ്ങളിലേക്കും പരീക്ഷിച്ചിട്ടില്ല, വെറും ഒരു ഉപസമൂഹത്തിൽ മാത്രമാണ് പരീക്ഷിച്ചത്.\n",
- "\n",
- "## ഒരു VGG നെറ്റ്വർക്കിനെ ഉപയോഗിച്ച് ട്രാൻസ്ഫർ ലേണിംഗ്\n",
- "\n",
- "മാനുവൽ ആയി ഫീച്ചറുകൾ മുൻകൂട്ടി കണക്കാക്കാതെ, ട്രെയിനിംഗിനിടെ മുഴുവൻ ഒറിജിനൽ VGG-16 നെറ്റ്വർക്ക് ഉപയോഗിച്ച്, ഫീച്ചർ എക്സ്ട്രാക്ടറെ ആദ്യ ലെയറായി ഞങ്ങളുടെ നെറ്റ്വർക്കിൽ ചേർക്കാം.\n",
- "\n",
- "Keras ആർക്കിടെക്ചറിന്റെ സുന്ദരത ഇതാണ്: മുകളിൽ നിർവചിച്ച VGG-16 മോഡൽ മറ്റൊരു ന്യൂറൽ നെറ്റ്വർക്കിൽ ഒരു ലെയറായി ഉപയോഗിക്കാം! അതിന് മുകളിൽ ഡെൻസ് ക്ലാസിഫയർ ചേർത്ത്, പിന്നീടു ബാക്ക് പ്രൊപ്പഗേഷൻ ഉപയോഗിച്ച് മുഴുവൻ നെറ്റ്വർക്ക് ട്രെയിൻ ചെയ്യാം.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Model: \"sequential\"\n",
- "_________________________________________________________________\n",
- "Layer (type) Output Shape Param # \n",
- "=================================================================\n",
- "vgg16 (Functional) (None, 7, 7, 512) 14714688 \n",
- "_________________________________________________________________\n",
- "flatten (Flatten) (None, 25088) 0 \n",
- "_________________________________________________________________\n",
- "dense (Dense) (None, 1) 25089 \n",
- "=================================================================\n",
- "Total params: 14,739,777\n",
- "Trainable params: 25,089\n",
- "Non-trainable params: 14,714,688\n",
- "_________________________________________________________________\n"
- ]
- }
- ],
- "source": [
- "model = keras.models.Sequential()\n",
- "model.add(keras.applications.VGG16(include_top=False,input_shape=(224,224,3)))\n",
- "model.add(keras.layers.Flatten())\n",
- "model.add(keras.layers.Dense(1,activation='sigmoid'))\n",
- "\n",
- "model.layers[0].trainable = False\n",
- "\n",
- "model.summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "ഈ മോഡൽ ഒരു end-to-end ക്ലാസിഫിക്കേഷൻ നെറ്റ്വർക്കിനെപ്പോലെ ആണ്, ഒരു ചിത്രം എടുത്ത് ക്ലാസ് തിരിച്ചറിയുന്നു. എന്നാൽ, സങ്കീർണ്ണമായ കാര്യം എന്തെന്നാൽ, VGG16-നെ ഫീച്ചർ എക്സ്ട്രാക്ടറായി ഉപയോഗിക്കണം, പുനഃപരിശീലനം നടത്തേണ്ടതില്ല. അതിനാൽ, convolutional ഫീച്ചർ എക്സ്ട്രാക്ടറിന്റെ വെയ്റ്റുകൾ **ഫ്രീസ് ചെയ്യേണ്ടതാണ്**. നെറ്റ്വർക്കിന്റെ ആദ്യ ലെയർ `model.layers[0]` എന്ന കോൾ വഴി ആക്സസ് ചെയ്യാം, പിന്നെ `trainable` പ്രോപ്പർട്ടി `False` ആയി സജ്ജീകരിക്കണം.\n",
- "\n",
- "> **Note**: ഫീച്ചർ എക്സ്ട്രാക്ടർ വെയ്റ്റുകൾ ഫ്രീസ് ചെയ്യുന്നത് അത്യാവശ്യമാണ്, കാരണം അല്ലെങ്കിൽ പരിശീലനമില്ലാത്ത ക്ലാസിഫയർ ലെയർ convolutional എക്സ്ട്രാക്ടറിന്റെ മുൻപരിശീലിത വെയ്റ്റുകൾ നശിപ്പിക്കാം.\n",
- "\n",
- "നമ്മുടെ നെറ്റ്വർക്കിലെ മൊത്തം പാരാമീറ്ററുകളുടെ എണ്ണം ഏകദേശം 15 മില്യൺ ആണെങ്കിലും, നാം വെറും 25,000 പാരാമീറ്ററുകൾ മാത്രമാണ് പരിശീലിപ്പിക്കുന്നത് എന്ന് ശ്രദ്ധിക്കാം. മുകളിൽ ഉള്ള convolutional ഫിൽട്ടറുകളുടെ മറ്റ് എല്ലാ പാരാമീറ്ററുകളും മുൻപരിശീലിതമാണ്. ഇത് നല്ലതാണ്, കാരണം കുറച്ച് ഉദാഹരണങ്ങളോടെ കുറച്ച് പാരാമീറ്ററുകൾ ഫൈൻ-ട്യൂൺ ചെയ്യാൻ സാധിക്കുന്നു.\n",
- "\n",
- "ഇപ്പോൾ നാം നമ്മുടെ നെറ്റ്വർക്ക് പരിശീലിപ്പിച്ച് എത്രത്തോളം നല്ലത് ആകാമെന്ന് നോക്കാം. പ്രവർത്തനം കുറച്ച് സമയം നീണ്ടേക്കാം എന്ന് പ്രതീക്ഷിക്കുക, ചിലപ്പോൾ പ്രവർത്തനം നിർത്തിയിരിക്കുന്നതുപോലെ തോന്നിയാലും ആശങ്കപ്പെടേണ്ടതില്ല.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "310/310 [==============================] - 265s 716ms/step - loss: 0.9917 - acc: 0.9512 - val_loss: 0.8156 - val_acc: 0.9671\n"
- ]
- }
- ],
- "source": [
- "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])\n",
- "hist = model.fit(ds_train, validation_data=ds_test)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "നമുക്ക് ശരാശരി കൃത്യതയുള്ള പൂച്ചകളും നായകളും തിരിച്ചറിയുന്ന ക്ലാസിഫയർ ലഭിച്ചിരിക്കുന്നു എന്ന് തോന്നുന്നു!\n",
- "\n",
- "## മോഡൽ സേവ് ചെയ്യലും ലോഡ് ചെയ്യലും\n",
- "\n",
- "മോഡൽ പരിശീലിപ്പിച്ചതിനു ശേഷം, ഭാവിയിൽ ഉപയോഗിക്കാനായി മോഡൽ ആർക്കിടെക്ചറും പരിശീലിപ്പിച്ച വെയ്റ്റുകളും ഒരു ഫയലിൽ സേവ് ചെയ്യാം:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "INFO:tensorflow:Assets written to: data/cats_dogs.tf/assets\n"
- ]
- }
- ],
- "source": [
- "model.save('data/cats_dogs.tf')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "നാം പിന്നീട് മോഡൽ ഫയലിൽ നിന്ന് എപ്പോൾ വേണമെങ്കിലും ലോഡ് ചെയ്യാൻ കഴിയും. അടുത്ത പരീക്ഷണം മോഡൽ നശിപ്പിച്ചാൽ ഇത് ഉപകാരപ്രദമായിരിക്കാം - നിങ്ങൾക്ക് തുടക്കം മുതൽ വീണ്ടും തുടങ്ങേണ്ടതില്ല.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [],
- "source": [
- "model = keras.models.load_model('data/cats_dogs.tf')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## ഫൈൻ-ട്യൂണിംഗ് ട്രാൻസ്ഫർ ലേണിംഗ്\n",
- "\n",
- "മുൻവഭാഗത്തിൽ, ഞങ്ങൾ നമ്മുടെ സ്വന്തം ഡാറ്റാസെറ്റിലെ ചിത്രങ്ങൾ ക്ലാസിഫൈ ചെയ്യാൻ അവസാന ക്ലാസിഫയർ ലെയർ പരിശീലിപ്പിച്ചു. എന്നാൽ, ഫീച്ചർ എക്സ്ട്രാക്ടറെ പുനർപരിശീലനം ചെയ്തില്ല, ഞങ്ങളുടെ മോഡൽ ImageNet ഡാറ്റയിൽ മോഡൽ പഠിച്ച ഫീച്ചറുകളിലാണ് ആശ്രയിച്ചിരിക്കുന്നത്. നിങ്ങളുടെ വസ്തുക്കൾ സാധാരണ ImageNet ചിത്രങ്ങളിൽ നിന്ന് ദൃശ്യപരമായി വ്യത്യസ്തമാണെങ്കിൽ, ഈ ഫീച്ചറുകളുടെ സംയോജനം ഏറ്റവും നല്ലതായിരിക്കില്ല. അതിനാൽ കോൺവല്യൂഷണൽ ലെയറുകളും പരിശീലിപ്പിക്കാൻ തുടങ്ങുന്നത് യുക്തിയുള്ളതാണ്.\n",
- "\n",
- "അത് ചെയ്യാൻ, മുമ്പ് ഫ്രോസൺ ചെയ്ത കോൺവല്യൂഷണൽ ഫിൽട്ടർ പാരാമീറ്ററുകൾ അൺഫ്രീസ് ചെയ്യാം.\n",
- "\n",
- "> **Note:** പാരാമീറ്ററുകൾ ആദ്യം ഫ്രീസ് ചെയ്ത് ക്ലാസിഫിക്കേഷൻ ലെയറിലെ വെയ്റ്റുകൾ സ്ഥിരതയാർജ്ജിക്കാൻ കുറച്ച് എപ്പോക്കുകൾ പരിശീലനം നടത്തുന്നത് പ്രധാനമാണ്. പാരാമീറ്ററുകൾ അൺഫ്രീസ് ചെയ്ത നിലയിൽ ഉടൻ തന്നെ എൻഡ്-ടു-എൻഡ് നെറ്റ്വർക്ക് പരിശീലിപ്പിക്കാൻ തുടങ്ങുകയാണെങ്കിൽ, വലിയ പിശകുകൾ കോൺവല്യൂഷണൽ ലെയറുകളിലെ മുൻപരിശീലിത വെയ്റ്റുകൾ നശിപ്പിക്കാനുള്ള സാധ്യത കൂടുതലാണ്.\n",
- "\n",
- "ഞങ്ങളുടെ കോൺവല്യൂഷണൽ VGG-16 മോഡൽ ആദ്യ ലെയറിനുള്ളിൽ സ്ഥിതിചെയ്യുന്നു, അത് തന്നെ നിരവധി ലെയറുകൾ അടങ്ങിയതാണ്. അതിന്റെ ഘടന നോക്കാം:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Model: \"vgg16\"\n",
- "_________________________________________________________________\n",
- "Layer (type) Output Shape Param # \n",
- "=================================================================\n",
- "input_1 (InputLayer) [(None, 224, 224, 3)] 0 \n",
- "_________________________________________________________________\n",
- "block1_conv1 (Conv2D) (None, 224, 224, 64) 1792 \n",
- "_________________________________________________________________\n",
- "block1_conv2 (Conv2D) (None, 224, 224, 64) 36928 \n",
- "_________________________________________________________________\n",
- "block1_pool (MaxPooling2D) (None, 112, 112, 64) 0 \n",
- "_________________________________________________________________\n",
- "block2_conv1 (Conv2D) (None, 112, 112, 128) 73856 \n",
- "_________________________________________________________________\n",
- "block2_conv2 (Conv2D) (None, 112, 112, 128) 147584 \n",
- "_________________________________________________________________\n",
- "block2_pool (MaxPooling2D) (None, 56, 56, 128) 0 \n",
- "_________________________________________________________________\n",
- "block3_conv1 (Conv2D) (None, 56, 56, 256) 295168 \n",
- "_________________________________________________________________\n",
- "block3_conv2 (Conv2D) (None, 56, 56, 256) 590080 \n",
- "_________________________________________________________________\n",
- "block3_conv3 (Conv2D) (None, 56, 56, 256) 590080 \n",
- "_________________________________________________________________\n",
- "block3_pool (MaxPooling2D) (None, 28, 28, 256) 0 \n",
- "_________________________________________________________________\n",
- "block4_conv1 (Conv2D) (None, 28, 28, 512) 1180160 \n",
- "_________________________________________________________________\n",
- "block4_conv2 (Conv2D) (None, 28, 28, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block4_conv3 (Conv2D) (None, 28, 28, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block4_pool (MaxPooling2D) (None, 14, 14, 512) 0 \n",
- "_________________________________________________________________\n",
- "block5_conv1 (Conv2D) (None, 14, 14, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block5_conv2 (Conv2D) (None, 14, 14, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block5_conv3 (Conv2D) (None, 14, 14, 512) 2359808 \n",
- "_________________________________________________________________\n",
- "block5_pool (MaxPooling2D) (None, 7, 7, 512) 0 \n",
- "=================================================================\n",
- "Total params: 14,714,688\n",
- "Trainable params: 0\n",
- "Non-trainable params: 14,714,688\n",
- "_________________________________________________________________\n"
- ]
- }
- ],
- "source": [
- "model.layers[0].summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "നാം കോൺവല്യൂഷണൽ ബേസ് എല്ലാ ലെയറുകളും അൺഫ്രീസ് ചെയ്യാൻ കഴിയും:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "model.layers[0].trainable = True"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "എങ്കിലും, എല്ലാം ഒരുമിച്ച് അൺഫ്രീസ് ചെയ്യുന്നത് ഏറ്റവും നല്ല ആശയമല്ല. നമ്മുടെ ചിത്രങ്ങൾക്ക് പ്രസക്തമായ ഉയർന്ന തലത്തിലുള്ള പാറ്റേണുകൾ അടങ്ങിയിരിക്കുന്നതിനാൽ ആദ്യം ചില അവസാന കോൺവല്യൂഷൻ ലെയറുകൾ മാത്രം അൺഫ്രീസ് ചെയ്യാം. ഉദാഹരണത്തിന്, ആദ്യം, അവസാന 4 ലെയറുകൾ ഒഴികെ എല്ലാ ലെയറുകളും ഫ്രീസ് ചെയ്യാം:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Model: \"sequential\"\n",
- "_________________________________________________________________\n",
- "Layer (type) Output Shape Param # \n",
- "=================================================================\n",
- "vgg16 (Functional) (None, 7, 7, 512) 14714688 \n",
- "_________________________________________________________________\n",
- "flatten (Flatten) (None, 25088) 0 \n",
- "_________________________________________________________________\n",
- "dense (Dense) (None, 1) 25089 \n",
- "=================================================================\n",
- "Total params: 14,739,777\n",
- "Trainable params: 7,104,513\n",
- "Non-trainable params: 7,635,264\n",
- "_________________________________________________________________\n"
- ]
- }
- ],
- "source": [
- "for i in range(len(model.layers[0].layers)-4):\n",
- " model.layers[0].layers[i].trainable = False\n",
- "model.summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "പരിശീലനയോഗ്യമായ പാരാമീറ്ററുകളുടെ എണ്ണം ഗണ്യമായി വർദ്ധിച്ചുവെന്ന് ശ്രദ്ധിക്കുക, എന്നാൽ ഇത് എല്ലാപാരാമീറ്ററുകളുടെ ഏകദേശം 50% മാത്രമാണ്.\n",
- "\n",
- "അൺഫ്രീസ് ചെയ്തശേഷം, നാം കുറച്ച് കൂടുതൽ എപ്പോക്കുകൾ പരിശീലനം നടത്താം (നമ്മുടെ ഉദാഹരണത്തിൽ, നാം ഒരു എപ്പോക്ക് മാത്രം നടത്തും). മുൻപരിചയമുള്ള വെയ്റ്റുകളിലെ സ്വാധീനം കുറയ്ക്കാൻ താഴ്ന്ന ലേണിംഗ് റേറ്റ് തിരഞ്ഞെടുക്കാം. എങ്കിലും, കുറഞ്ഞ ലേണിംഗ് റേറ്റിനൊപ്പം പോലും, പരിശീലനത്തിന്റെ തുടക്കത്തിൽ കൃത്യത കുറയുമെന്ന് പ്രതീക്ഷിക്കാം, പിന്നീട് സ്ഥിരമായ വെയ്റ്റുകളേക്കാൾ അല്പം ഉയർന്ന നിലയിൽ എത്തും.\n",
- "\n",
- "> **Note:** ഈ പരിശീലനം വളരെ മന്ദഗതിയിലാണ് നടക്കുന്നത്, കാരണം നമുക്ക് നെറ്റ്വർക്കിലെ നിരവധി ലെയറുകളിലൂടെ ഗ്രേഡിയന്റുകൾ തിരിച്ചടക്കേണ്ടതുണ്ട്!\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "310/310 [==============================] - 201s 645ms/step - loss: 0.5270 - acc: 0.9776 - val_loss: 1.4132 - val_acc: 0.9653\n"
- ]
- }
- ],
- "source": [
- "hist = model.fit(ds_train, validation_data=ds_test)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "നാം കൂടുതൽ പാരാമീറ്ററുകളുള്ള ശക്തമായ നെറ്റ്വർക്ക് ഉപയോഗിക്കുന്നതിനാൽ പരിശീലന കൃത്യത കൂടുതലാകാൻ സാധ്യതയുണ്ട്, എന്നാൽ സാധുവായ കൃത്യത അത്ര കൂടുതലാകില്ല.\n",
- "\n",
- "നിങ്ങൾക്ക് കൂടുതൽ കൃത്യത നേടാൻ കഴിയുന്നുണ്ടോ എന്ന് പരിശോധിക്കാൻ നെറ്റ്വർക്കിന്റെ കുറച്ച് കൂടുതൽ ലെയറുകൾ അൺഫ്രീസ് ചെയ്ത് കൂടുതൽ പരിശീലനം നടത്താൻ മടിക്കേണ്ട.\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## മറ്റ് കമ്പ്യൂട്ടർ വിഷൻ മോഡലുകൾ\n",
- "\n",
- "VGG-16 ഏറ്റവും ലളിതമായ കമ്പ്യൂട്ടർ വിഷൻ ആർക്കിടെക്ചറുകളിൽ ഒന്നാണ്. Keras നിരവധി മുൻകൂട്ടി പരിശീലിച്ച നെറ്റ്വർക്കുകൾ നൽകുന്നു. അവയിൽ ഏറ്റവും വ്യാപകമായി ഉപയോഗിക്കുന്നവയാണ് Microsoft വികസിപ്പിച്ച **ResNet** ആർക്കിടെക്ചറുകളും Googleയുടെ **Inception** മോഡലും. ഉദാഹരണത്തിന്, ഏറ്റവും ലളിതമായ ResNet-50 മോഡലിന്റെ ആർക്കിടെക്ചർ പരിശോധിക്കാം (ResNet വ്യത്യസ്ത ആഴമുള്ള മോഡലുകളുടെ ഒരു കുടുംബമാണ്, നിങ്ങൾക്ക് ResNet-152 പരീക്ഷിച്ച് വളരെ ആഴമുള്ള മോഡൽ എങ്ങനെയാണെന്ന് കാണാം):\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Model: \"resnet50\"\n",
- "__________________________________________________________________________________________________\n",
- "Layer (type) Output Shape Param # Connected to \n",
- "==================================================================================================\n",
- "input_3 (InputLayer) [(None, 224, 224, 3) 0 \n",
- "__________________________________________________________________________________________________\n",
- "conv1_pad (ZeroPadding2D) (None, 230, 230, 3) 0 input_3[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv1_conv (Conv2D) (None, 112, 112, 64) 9472 conv1_pad[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv1_bn (BatchNormalization) (None, 112, 112, 64) 256 conv1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv1_relu (Activation) (None, 112, 112, 64) 0 conv1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "pool1_pad (ZeroPadding2D) (None, 114, 114, 64) 0 conv1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "pool1_pool (MaxPooling2D) (None, 56, 56, 64) 0 pool1_pad[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_1_conv (Conv2D) (None, 56, 56, 64) 4160 pool1_pool[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_1_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block1_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_1_relu (Activation (None, 56, 56, 64) 0 conv2_block1_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_2_conv (Conv2D) (None, 56, 56, 64) 36928 conv2_block1_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_2_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block1_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_2_relu (Activation (None, 56, 56, 64) 0 conv2_block1_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_0_conv (Conv2D) (None, 56, 56, 256) 16640 pool1_pool[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_3_conv (Conv2D) (None, 56, 56, 256) 16640 conv2_block1_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_0_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block1_0_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_3_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block1_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_add (Add) (None, 56, 56, 256) 0 conv2_block1_0_bn[0][0] \n",
- " conv2_block1_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block1_out (Activation) (None, 56, 56, 256) 0 conv2_block1_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_1_conv (Conv2D) (None, 56, 56, 64) 16448 conv2_block1_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_1_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block2_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_1_relu (Activation (None, 56, 56, 64) 0 conv2_block2_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_2_conv (Conv2D) (None, 56, 56, 64) 36928 conv2_block2_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_2_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block2_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_2_relu (Activation (None, 56, 56, 64) 0 conv2_block2_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_3_conv (Conv2D) (None, 56, 56, 256) 16640 conv2_block2_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_3_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block2_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_add (Add) (None, 56, 56, 256) 0 conv2_block1_out[0][0] \n",
- " conv2_block2_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block2_out (Activation) (None, 56, 56, 256) 0 conv2_block2_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_1_conv (Conv2D) (None, 56, 56, 64) 16448 conv2_block2_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_1_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block3_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_1_relu (Activation (None, 56, 56, 64) 0 conv2_block3_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_2_conv (Conv2D) (None, 56, 56, 64) 36928 conv2_block3_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_2_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block3_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_2_relu (Activation (None, 56, 56, 64) 0 conv2_block3_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_3_conv (Conv2D) (None, 56, 56, 256) 16640 conv2_block3_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_3_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block3_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_add (Add) (None, 56, 56, 256) 0 conv2_block2_out[0][0] \n",
- " conv2_block3_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv2_block3_out (Activation) (None, 56, 56, 256) 0 conv2_block3_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_1_conv (Conv2D) (None, 28, 28, 128) 32896 conv2_block3_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block1_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_1_relu (Activation (None, 28, 28, 128) 0 conv3_block1_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block1_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block1_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_2_relu (Activation (None, 28, 28, 128) 0 conv3_block1_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_0_conv (Conv2D) (None, 28, 28, 512) 131584 conv2_block3_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block1_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_0_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block1_0_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block1_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_add (Add) (None, 28, 28, 512) 0 conv3_block1_0_bn[0][0] \n",
- " conv3_block1_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block1_out (Activation) (None, 28, 28, 512) 0 conv3_block1_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_1_conv (Conv2D) (None, 28, 28, 128) 65664 conv3_block1_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block2_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_1_relu (Activation (None, 28, 28, 128) 0 conv3_block2_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block2_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block2_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_2_relu (Activation (None, 28, 28, 128) 0 conv3_block2_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block2_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block2_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_add (Add) (None, 28, 28, 512) 0 conv3_block1_out[0][0] \n",
- " conv3_block2_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block2_out (Activation) (None, 28, 28, 512) 0 conv3_block2_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_1_conv (Conv2D) (None, 28, 28, 128) 65664 conv3_block2_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block3_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_1_relu (Activation (None, 28, 28, 128) 0 conv3_block3_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block3_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block3_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_2_relu (Activation (None, 28, 28, 128) 0 conv3_block3_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block3_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block3_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_add (Add) (None, 28, 28, 512) 0 conv3_block2_out[0][0] \n",
- " conv3_block3_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block3_out (Activation) (None, 28, 28, 512) 0 conv3_block3_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_1_conv (Conv2D) (None, 28, 28, 128) 65664 conv3_block3_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block4_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_1_relu (Activation (None, 28, 28, 128) 0 conv3_block4_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block4_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block4_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_2_relu (Activation (None, 28, 28, 128) 0 conv3_block4_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block4_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block4_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_add (Add) (None, 28, 28, 512) 0 conv3_block3_out[0][0] \n",
- " conv3_block4_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv3_block4_out (Activation) (None, 28, 28, 512) 0 conv3_block4_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_1_conv (Conv2D) (None, 14, 14, 256) 131328 conv3_block4_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block1_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_1_relu (Activation (None, 14, 14, 256) 0 conv4_block1_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block1_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block1_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_2_relu (Activation (None, 14, 14, 256) 0 conv4_block1_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_0_conv (Conv2D) (None, 14, 14, 1024) 525312 conv3_block4_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block1_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_0_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block1_0_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block1_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_add (Add) (None, 14, 14, 1024) 0 conv4_block1_0_bn[0][0] \n",
- " conv4_block1_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block1_out (Activation) (None, 14, 14, 1024) 0 conv4_block1_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block1_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block2_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_1_relu (Activation (None, 14, 14, 256) 0 conv4_block2_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block2_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block2_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_2_relu (Activation (None, 14, 14, 256) 0 conv4_block2_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block2_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block2_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_add (Add) (None, 14, 14, 1024) 0 conv4_block1_out[0][0] \n",
- " conv4_block2_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block2_out (Activation) (None, 14, 14, 1024) 0 conv4_block2_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block2_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block3_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_1_relu (Activation (None, 14, 14, 256) 0 conv4_block3_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block3_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block3_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_2_relu (Activation (None, 14, 14, 256) 0 conv4_block3_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block3_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block3_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_add (Add) (None, 14, 14, 1024) 0 conv4_block2_out[0][0] \n",
- " conv4_block3_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block3_out (Activation) (None, 14, 14, 1024) 0 conv4_block3_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block3_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block4_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_1_relu (Activation (None, 14, 14, 256) 0 conv4_block4_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block4_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block4_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_2_relu (Activation (None, 14, 14, 256) 0 conv4_block4_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block4_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block4_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_add (Add) (None, 14, 14, 1024) 0 conv4_block3_out[0][0] \n",
- " conv4_block4_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block4_out (Activation) (None, 14, 14, 1024) 0 conv4_block4_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block4_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block5_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_1_relu (Activation (None, 14, 14, 256) 0 conv4_block5_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block5_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block5_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_2_relu (Activation (None, 14, 14, 256) 0 conv4_block5_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block5_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block5_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_add (Add) (None, 14, 14, 1024) 0 conv4_block4_out[0][0] \n",
- " conv4_block5_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block5_out (Activation) (None, 14, 14, 1024) 0 conv4_block5_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block5_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block6_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_1_relu (Activation (None, 14, 14, 256) 0 conv4_block6_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block6_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block6_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_2_relu (Activation (None, 14, 14, 256) 0 conv4_block6_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block6_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block6_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_add (Add) (None, 14, 14, 1024) 0 conv4_block5_out[0][0] \n",
- " conv4_block6_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv4_block6_out (Activation) (None, 14, 14, 1024) 0 conv4_block6_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_1_conv (Conv2D) (None, 7, 7, 512) 524800 conv4_block6_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_1_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block1_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_1_relu (Activation (None, 7, 7, 512) 0 conv5_block1_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_2_conv (Conv2D) (None, 7, 7, 512) 2359808 conv5_block1_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_2_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block1_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_2_relu (Activation (None, 7, 7, 512) 0 conv5_block1_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_0_conv (Conv2D) (None, 7, 7, 2048) 2099200 conv4_block6_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 conv5_block1_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_0_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block1_0_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_3_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block1_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_add (Add) (None, 7, 7, 2048) 0 conv5_block1_0_bn[0][0] \n",
- " conv5_block1_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block1_out (Activation) (None, 7, 7, 2048) 0 conv5_block1_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_1_conv (Conv2D) (None, 7, 7, 512) 1049088 conv5_block1_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_1_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block2_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_1_relu (Activation (None, 7, 7, 512) 0 conv5_block2_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_2_conv (Conv2D) (None, 7, 7, 512) 2359808 conv5_block2_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_2_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block2_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_2_relu (Activation (None, 7, 7, 512) 0 conv5_block2_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 conv5_block2_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_3_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block2_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_add (Add) (None, 7, 7, 2048) 0 conv5_block1_out[0][0] \n",
- " conv5_block2_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block2_out (Activation) (None, 7, 7, 2048) 0 conv5_block2_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_1_conv (Conv2D) (None, 7, 7, 512) 1049088 conv5_block2_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_1_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block3_1_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_1_relu (Activation (None, 7, 7, 512) 0 conv5_block3_1_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_2_conv (Conv2D) (None, 7, 7, 512) 2359808 conv5_block3_1_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_2_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block3_2_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_2_relu (Activation (None, 7, 7, 512) 0 conv5_block3_2_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 conv5_block3_2_relu[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_3_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block3_3_conv[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_add (Add) (None, 7, 7, 2048) 0 conv5_block2_out[0][0] \n",
- " conv5_block3_3_bn[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "conv5_block3_out (Activation) (None, 7, 7, 2048) 0 conv5_block3_add[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "avg_pool (GlobalAveragePooling2 (None, 2048) 0 conv5_block3_out[0][0] \n",
- "__________________________________________________________________________________________________\n",
- "predictions (Dense) (None, 1000) 2049000 avg_pool[0][0] \n",
- "==================================================================================================\n",
- "Total params: 25,636,712\n",
- "Trainable params: 25,583,592\n",
- "Non-trainable params: 53,120\n",
- "__________________________________________________________________________________________________\n"
- ]
- }
- ],
- "source": [
- "resnet = keras.applications.ResNet50()\n",
- "resnet.summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "നിങ്ങൾക്ക് കാണാമല്ലോ, മോഡലിൽ അതേ പരിചിതമായ ഘടകങ്ങൾ ഉൾക്കൊള്ളുന്നു: കോൺവല്യൂഷണൽ ലെയറുകൾ, പൂലിംഗ് ലെയറുകൾ, ഒടുവിൽ ഡെൻസ് ക്ലാസിഫയർ. VGG-16 ട്രാൻസ്ഫർ ലേണിംഗിനായി ഉപയോഗിച്ച പോലെ തന്നെ ഈ മോഡൽ ഉപയോഗിക്കാം. മുകളിൽ നൽകിയ കോഡിൽ വ്യത്യസ്ത ResNet മോഡലുകൾ അടിസ്ഥാന മോഡലായി ഉപയോഗിച്ച് പരീക്ഷണം നടത്തുകയും കൃത്യത എങ്ങനെ മാറുന്നു എന്ന് കാണുകയും ചെയ്യാം.\n",
- "\n",
- "## ബാച്ച് നോർമലൈസേഷൻ\n",
- "\n",
- "ഈ നെറ്റ്വർക്കിൽ മറ്റൊരു തരത്തിലുള്ള ലെയർ ഉണ്ട്: **ബാച്ച് നോർമലൈസേഷൻ**. ബാച്ച് നോർമലൈസേഷന്റെ ആശയം ന്യുറൽ നെറ്റ്വർക്കിലൂടെ ഒഴുകുന്ന മൂല്യങ്ങളെ ശരിയായ പരിധിയിലേക്ക് കൊണ്ടുവരുകയാണ്. സാധാരണയായി, ന്യുറൽ നെറ്റ്വർക്കുകൾ ഏറ്റവും നല്ല രീതിയിൽ പ്രവർത്തിക്കുന്നത് എല്ലാ മൂല്യങ്ങളും [-1,1] അല്ലെങ്കിൽ [0,1] പരിധിയിലായിരിക്കുമ്പോഴാണ്, അതുകൊണ്ടുതന്നെ നാം നമ്മുടെ ഇൻപുട്ട് ഡാറ്റ അനുസരിച്ച് സ്കെയിൽ/നോർമലൈസ് ചെയ്യുന്നു. എന്നാൽ, ഒരു ഡീപ്പ് നെറ്റ്വർക്കിന്റെ പരിശീലനത്തിനിടെ, മൂല്യങ്ങൾ ഈ പരിധിയിൽ നിന്ന് വളരെ പുറത്തേക്ക് പോകാൻ സാധ്യതയുണ്ട്, ഇത് പരിശീലനം പ്രയാസമാക്കുന്നു. ബാച്ച് നോർമലൈസേഷൻ ലെയർ നിലവിലെ മിനിബാച്ചിലെ എല്ലാ മൂല്യങ്ങൾക്കും ശരാശരി, സ്റ്റാൻഡേർഡ് ഡിവിയേഷൻ കണക്കാക്കി, അവ ഉപയോഗിച്ച് സിഗ്നൽ നോർമലൈസ് ചെയ്ത് ന്യുറൽ നെറ്റ്വർക്കിന്റെ അടുത്ത ലെയറിലേക്ക് അയയ്ക്കുന്നു. ഇത് ഡീപ്പ് നെറ്റ്വർക്കുകളുടെ സ്ഥിരത വളരെ മെച്ചപ്പെടുത്തുന്നു.\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## പ്രധാന കാര്യങ്ങൾ\n",
- "\n",
- "ട്രാൻസ്ഫർ ലേണിംഗ് ഉപയോഗിച്ച്, ഞങ്ങൾ നമ്മുടെ കസ്റ്റം ഒബ്ജക്റ്റ് ക്ലാസിഫിക്കേഷൻ ടാസ്കിനായി ഒരു ക്ലാസിഫയർ വേഗത്തിൽ ഒരുക്കാൻ കഴിഞ്ഞു, കൂടാതെ ഉയർന്ന കൃത്യതയും നേടാൻ കഴിഞ്ഞു. എന്നാൽ, ഈ ഉദാഹരണം പൂർണ്ണമായും നീതിയുള്ളതായിരുന്നില്ല, കാരണം ഒറിജിനൽ VGG-16 നെറ്റ്വർക്ക് പൂച്ചകളും നായകളും തിരിച്ചറിയാൻ മുൻകൂട്ടി പരിശീലിപ്പിച്ചിരുന്നതാണ്, അതിനാൽ ഞങ്ങൾ നെറ്റ്വർക്കിൽ ഇതിനകം ഉണ്ടായിരുന്ന പല പാറ്റേണുകളും വീണ്ടും ഉപയോഗിച്ചുകൊണ്ടായിരുന്നു. പ്ലാന്റിലെ പ്രൊഡക്ഷൻ ലൈൻ വിശദാംശങ്ങൾ പോലുള്ള കൂടുതൽ വിദൂരമായ ഡൊമെയ്ൻ-സ്പെസിഫിക് ഒബ്ജക്റ്റുകളിൽ കുറവായ കൃത്യത പ്രതീക്ഷിക്കാം, അല്ലെങ്കിൽ വ്യത്യസ്ത വൃക്ഷ ഇലകൾ പോലുള്ളവ.\n",
- "\n",
- "നാം ഇപ്പോൾ പരിഹരിക്കുന്ന കൂടുതൽ സങ്കീർണ്ണമായ ടാസ്കുകൾക്ക് ഉയർന്ന കംപ്യൂട്ടേഷൻ ശക്തി ആവശ്യമാണ്, അതിനാൽ CPU-യിൽ എളുപ്പത്തിൽ പരിഹരിക്കാൻ കഴിയില്ല. അടുത്ത യൂണിറ്റിൽ, കുറവ് കംപ്യൂട്ട് റിസോഴ്സുകൾ ഉപയോഗിച്ച് സമാന മോഡൽ പരിശീലിപ്പിക്കാൻ കൂടുതൽ ലഘുവായ ഇംപ്ലിമെന്റേഷൻ ഉപയോഗിക്കാൻ ശ്രമിക്കും, ഇതിന്റെ ഫലമായി കൃത്യത കുറച്ച് മാത്രം കുറയും.\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "---\n\n\n**അസൂയാ**: \nഈ രേഖ AI വിവർത്തന സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് വിവർത്തനം ചെയ്തതാണ്. നാം കൃത്യതയ്ക്ക് ശ്രമിച്ചിട്ടുണ്ടെങ്കിലും, സ്വയം പ്രവർത്തിക്കുന്ന വിവർത്തനങ്ങളിൽ പിശകുകൾ അല്ലെങ്കിൽ തെറ്റുകൾ ഉണ്ടാകാമെന്ന് ദയവായി ശ്രദ്ധിക്കുക. അതിന്റെ മാതൃഭാഷയിലുള്ള യഥാർത്ഥ രേഖ അധികാരപരമായ ഉറവിടമായി കണക്കാക്കണം. നിർണായക വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ വിവർത്തനം ശുപാർശ ചെയ്യപ്പെടുന്നു. ഈ വിവർത്തനം ഉപയോഗിക്കുന്നതിൽ നിന്നുണ്ടാകുന്ന ഏതെങ്കിലും തെറ്റിദ്ധാരണകൾക്കോ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കോ ഞങ്ങൾ ഉത്തരവാദികളല്ല.\n\n"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "py38_tensorflow",
- "language": "python",
- "name": "conda-env-py38_tensorflow-py"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.8.10"
- },
- "coopTranslator": {
- "original_hash": "c189abc107848f96051085cc30945129",
- "translation_date": "2025-11-26T00:59:20+00:00",
- "source_file": "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb",
- "language_code": "ml"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# പ്രീ-ട്രെയിൻ ചെയ്ത മോഡലുകളും ട്രാൻസ്ഫർ ലേണിംഗും\n",
+ "\n",
+ "CNN-കൾ ട്രെയിൻ ചെയ്യാൻ വളരെ സമയം വേണ്ടിവരും, കൂടാതെ അതിനായി വളരെ ഡാറ്റയും ആവശ്യമാണ്. എന്നാൽ, ഒരു നെറ്റ്വർക്കിന്റെ ടാസ്ക് ഇമേജുകളിൽ നിന്നുള്ള മാതൃകകൾ കണ്ടെത്താനായി ഉപയോഗിക്കുന്ന മികച്ച ലോ-ലെവൽ ഫിൽറ്ററുകൾ പഠിക്കുന്നതിൽ കൂടുതലായി സമയം ചെലവഴിക്കാറുണ്ട്. ഒരു സ്വാഭാവികമായ ചോദ്യം ഉയരുന്നു - നാം ഒരു ഡാറ്റാസെറ്റിൽ പ്രീ-ട്രെയിൻ ചെയ്ത ഒരു ന്യൂട്രൽ നെറ്റ്വർക്ക് മറ്റൊരു ചിത്രങ്ങളെ ക്ലാസിഫൈ ചെയ്യുന്നതിന് മുഴുവൻ ട്രെയിനിങ് പ്രക്രിയയില്ലാതെ ഉപയോഗിക്കാമോ?\n",
+ "\n",
+ "ഈ സമീപനം **ട്രാൻസ്ഫർ ലേണിംഗ്** എന്നാണ് അറിയപ്പെടുന്നത്, കാരണം നാം ഒരു ന്യൂട്രൽ നെറ്റ്വർക്ക് മോഡലിൽ നിന്ന് മറ്റൊരു മോഡലിലേക്ക് ഒരു അറിവ് കൈമാറുകയാണ്. ട്രാൻസ്ഫർ ലേണിംഗിൽ, സാധാരണയായി നാം പ്രീ-ട്രെയിൻ ചെയ്ത ഒരു മോഡലിൽ നിന്ന് തുടക്കം കുറിക്കുന്നു, അത് **ImageNet** പോലുള്ള വലിയ ഒരു ചിത്രം ഡാറ്റാസെറ്റിൽ ട്രെയിൻ ചെയ്തിട്ടുണ്ട്. ആ മോഡലുകൾ സാധാരണ ചിത്രങ്ങളിൽ നിന്നുള്ള വ്യത്യസ്ത ഫീച്ചറുകൾ എടുക്കുന്നതിൽ ইতিমധ്യമുണ്ട്, പലപ്പോഴും ആ ഫീച്ചറുകളുടെ മേൽ ഒരു ക്ലാസിഫയർ നിർമ്മിക്കുന്നത് നല്ല ഫലം നൽകും.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import tensorflow as tf\n",
+ "from tensorflow import keras\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "import os\n",
+ "from tfcv import *"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## പൂച്ചകളും നായ്ക്കളും ഡാറ്റാസെറ്റ്\n",
+ "\n",
+ "ഈ യൂണിറ്റിൽ, നാം പൗരപ്രവൃത്തി Probleനമാണ് പൂച്ചകളും നായ്ക്കളും ചിത്രങ്ങൾ വർഗ്ഗീകരിക്കുന്നതു. അതുവഴി, നാം [Kaggle Cats vs. Dogs Dataset](https://www.kaggle.com/c/dogs-vs-cats) ഉപയോഗിക്കും, ഇത് [Microsoft-ൽ നിന്നും](https://www.microsoft.com/en-us/download/details.aspx?id=54765&WT.mc_id=academic-77998-cacaste) ഡൗൺലോഡ് ചെയ്യാം.\n",
+ "\n",
+ "ഈ ഡാറ്റാസെറ്റ് ഡൗൺലോഡ് ചെയ്ത് അതിനെ `data` ഡയറക്ടറിയിലേക്ക് എക്സ്ട്രാക്റ്റ് ചെയ്യാം (ഈ പ്രക്രിയയ്ക്ക് കുറച്ച് സമയം എടുക്കാം!):\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "if not os.path.exists('data/kagglecatsanddogs_5340.zip'):\n",
+ " !wget -P data https://download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_5340.zip"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import zipfile\n",
+ "if not os.path.exists('data/PetImages'):\n",
+ " with zipfile.ZipFile('data/kagglecatsanddogs_5340.zip', 'r') as zip_ref:\n",
+ " zip_ref.extractall('data')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ദുഷ്പ്രാപ്തമായ ചിത്രഫയലുകൾ ഡാറ്റാസെറ്റിൽ ചിലയുണ്ട്. കേടായ ഫയലുകൾ പരിശോധിക്കാൻ നമുക്കു വേഗത്തിൽ ശുദ്ധീകരണം നടത്തേണ്ടതാണ്. ഈ ട്യൂറോറിയലിനെ നശിപ്പിക്കാതിരിക്കാൻ, ഡാറ്റാസെറ്റ് പരിശോധിക്കുന്ന കോഡിനെ ഒരു മോഡ്യൂളിലേക്ക് മാറ്റി. \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Corrupt image or wrong format: data/PetImages/Cat/12235.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/2663.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4929.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8183.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11083.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6435.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6491.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7968.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6768.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11397.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8295.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4874.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/23.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11864.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3491.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11729.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3197.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/10874.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6376.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9361.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9328.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/910.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/2021.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/666.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3710.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9171.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6906.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11095.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/660.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8415.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3161.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/850.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7003.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1267.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7642.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8553.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6900.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4334.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/10404.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6980.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/936.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9619.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3300.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7647.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/2742.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9565.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1757.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11874.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1936.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/5077.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7845.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8832.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11935.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9208.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4322.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7978.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/10820.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/391.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/10073.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8958.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/8470.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/445.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4821.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11565.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4351.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4833.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/140.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3153.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/5370.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/5819.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3649.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4293.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/3967.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1937.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/10125.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1386.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4750.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6029.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/5614.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/2569.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9778.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/6486.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11210.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/7502.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/2189.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1151.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4629.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/12080.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/10501.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/1914.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/11086.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/4000.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/9100.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/5553.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Cat/12269.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5243.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3288.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11912.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3320.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11166.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8194.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2353.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9026.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8557.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7969.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8693.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4367.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1900.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5730.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9961.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8126.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8521.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11560.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11233.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11675.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8889.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9414.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3588.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10353.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10733.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6238.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5618.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7743.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10747.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6503.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11410.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5955.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2915.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3136.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4086.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2905.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2494.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3546.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5547.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9851.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9188.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4203.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8715.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4640.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1866.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7718.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7514.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1017.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/12102.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/296.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6718.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11253.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10173.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11849.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10383.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10678.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5790.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6318.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1884.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4654.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9145.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2479.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/12289.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2688.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4134.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10637.jpg\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/anaconda/envs/py38_tensorflow/lib/python3.8/site-packages/PIL/TiffImagePlugin.py:793: UserWarning: Truncated File Read\n",
+ " warnings.warn(str(msg))\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Corrupt image or wrong format: data/PetImages/Dog/543.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8730.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/12114.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/522.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10863.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10401.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7739.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/561.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1308.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9643.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3155.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5736.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4257.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11853.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6855.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1259.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7652.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/573.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11702.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/414.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4301.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9500.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10726.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9367.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2877.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10907.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10972.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7311.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10797.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2317.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7128.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6500.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11285.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6430.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6032.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10969.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8364.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11692.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3038.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5604.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/565.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9640.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7459.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6305.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6555.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/11590.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6059.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3927.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10705.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/2384.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/3885.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/663.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9043.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8563.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9556.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/9967.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10158.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5263.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/8641.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7369.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/4924.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/10351.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/6213.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/5104.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1356.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7133.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/7112.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/1168.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/719.jpg\n",
+ "Corrupt image or wrong format: data/PetImages/Dog/50.jpg\n"
+ ]
+ }
+ ],
+ "source": [
+ "check_image_dir('data/PetImages/Cat/*.jpg')\n",
+ "check_image_dir('data/PetImages/Dog/*.jpg')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## ഡാറ്റാസെറ്റ് ലോഡിംഗ്\n",
+ "\n",
+ "മുൻകൂട്ടി ഉള്ള ഉദാഹരണങ്ങളിൽ, നാം Keras-ൽ ഉൾക്കടക്കപ്പെടുന്ന ഡാറ്റാസെറ്റുകൾ ലോഡ് ചെയ്തുകൊണ്ടിരുന്നുവല്ലോ. ഇനി നമുക്ക് നമ്മുടെ സ്വന്തം ഡാറ്റാസെറ്റ് കൈകാര്യം ചെയ്യാൻ തയാറിടുകയാണ്, ഇത് ചിത്രങ്ങളുടെയും ഡയറക്ടറിയിൽ നിന്ന് ലോഡ് ചെയ്യേണ്ടതാണ്.\n",
+ "\n",
+ "യഥാർത്ഥ ജീവിതത്തിൽ, ചിത്ര ഡാറ്റാസെറ്റുകളുടെ വലുപ്പം വളരെ വലുതായിരിക്കും, എല്ലാ ഡാറ്റയും മമ്മറിയിൽ ചേരുമെന്ന് ആശ്രയിക്കാനാകില്ല. അതിനാൽ, ഡാറ്റാസെറ്റുകൾ training-നായി അനുയോജ്യമായ മിനിബാച്ചുകളായി ഡാറ്റ മടക്കാൻ കഴിവുള്ള **ജെനറേറ്ററുകൾ** ആയി പ്രതിനിധീകരിക്കാറുണ്ട്.\n",
+ "\n",
+ "ചിത്രം ക്ലാസിഫിക്കേഷനുമായി ബന്ധപ്പെട്ട്, Keras-ൽ പ്രത്യേക ഫംഗ്ഷൻ ആയ `image_dataset_from_directory` ഉണ്ട്, ഇത് വ്യത്യസ്ത ക്ലാസുകളോട് ബന്ധപ്പെട്ട ഉപഡയരക്ടറികളിൽ നിന്നുള്ള ചിത്രങ്ങൾ ലോഡ് ചെയ്യാൻ കഴിവുള്ളതാണ്. ഈ ഫംഗ്ഷൻ ചിത്രങ്ങളുടെ സ്കെയിൽ ചെയ്യലും കൈകാര്യം ചെയ്യുന്നു, കൂടാതെ ഇത് ഡാറ്റാസെറ്റ് ട്രയിൻ, ടെസ്റ്റ് സബ്സെറ്റുകളായി വിഭജിക്കാനും കഴിയും:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Found 24769 files belonging to 2 classes.\n",
+ "Using 19816 files for training.\n",
+ "Found 24769 files belonging to 2 classes.\n",
+ "Using 4953 files for validation.\n"
+ ]
+ }
+ ],
+ "source": [
+ "data_dir = 'data/PetImages'\n",
+ "batch_size = 64\n",
+ "ds_train = keras.preprocessing.image_dataset_from_directory(\n",
+ " data_dir,\n",
+ " validation_split = 0.2,\n",
+ " subset = 'training',\n",
+ " seed = 13,\n",
+ " image_size = (224,224),\n",
+ " batch_size = batch_size\n",
+ ")\n",
+ "ds_test = keras.preprocessing.image_dataset_from_directory(\n",
+ " data_dir,\n",
+ " validation_split = 0.2,\n",
+ " subset = 'validation',\n",
+ " seed = 13,\n",
+ " image_size = (224,224),\n",
+ " batch_size = batch_size\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ട്രെയിൻ, ടെസ്റ്റ് ഡാറ്റാസെറ്റുകൾക്ക് ഇടയിലുള്ള ചിത്രങ്ങളുടെ വിഭജനത്തെ ഇത് ബാധിക്കുന്നതിനാൽ, രണ്ടു കോൾസിനും സമാനമായ `seed` വില ക്രമീകരിക്കുക അത്യന്താപേക്ഷിതമാണ്.\n",
+ "\n",
+ "ഡാറ്റാസെറ്റ് ഡയറക്ടറികളിൽ നിന്ന് ക്ലാസ് പേരുകൾ സ്വയം തിരഞ്ഞെടുത്തുകൊള്ളുന്നു, ആവശ്യമായ പക്ഷം നിങ്ങള് അത് വിളിച്ചിട്ടുണ്ട് വഴി ആക്സസ് ചെയ്യാമെന്ന്:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['Cat', 'Dog']"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ds_train.class_names"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "നാം ലഭിച്ച ഡാറ്റാസെറ്റുകൾ മോഡൽ പരിശീലിക്കാൻ ശരിയായി `fit` ഫംഗ്ഷനിലേക്ക് നേരിട്ട് കൈമാറാം. അവ ഉചിതമായ ചിത്രങ്ങളും ലേബലുകളും ഉൾക്കൊള്ളുന്നു, ഇവയെ താഴെ കാണിച്ചിട്ടുള്ള ഘടന ഉപയോഗിച്ച് ലൂപ്പ് ചെയ്യാം:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Training batch shape: features=(64, 224, 224, 3), labels=(64,)\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "for x,y in ds_train:\n",
+ " print(f\"Training batch shape: features={x.shape}, labels={y.shape}\")\n",
+ " x_sample, y_sample = x,y\n",
+ " break\n",
+ " \n",
+ "display_dataset(x_sample.numpy().astype(np.int),np.expand_dims(y_sample,1),classes=ds_train.class_names)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "> **ഗమనിക്കുക**: ഡാറ്റാസെറ്റിലെ എല്ലാ ചിത്രങ്ങളും 0-255 പരിധിയിലുള്ള ഫ്ലോട്ടിംഗ് പോയിന്റ് ടെൻസറുകളായി പ്രതിനിധീകരിച്ചിരിക്കുന്നു. അവയെ ന്യൂറൽ നെറ്റ്വർക്കിലേക്ക് പാസ്സാക്കുന്നതിന് മുൻപ്, നമുക്ക് ആ മൂല്യം 0-1 പരിധിയിലേക്ക് സ്കേയ്ല് ചെയ്യേണ്ടതുണ്ട്. ചിത്രങ്ങൾ പ്ലോട്ട് ചെയ്യുമ്പോൾ, അതേ പ്രവർത്തി ചെയ്യേണ്ടതായിരിക്കും, അല്ലെങ്കിൽ മൂല്യങ്ങളെ `int` തരം ആയി മാറ്റണം (മുകളിലുള്ള കോഡിൽ ചെയ്തതുപോലെ), അങ്ങനെ `matplotlib` നമുക്ക് അസൽ സ്കേയ്ല് ചെയ്തിട്ടില്ലാത്ത ചിത്രമാണ് പ്ലോട്ട് ചെയ്യാൻ ആഗ്രഹിക്കുന്നുവെന്ന് കാണിക്കാൻ കഴിയട്ടെ.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## മുൻപരിചയമുള്ള മോഡലുകൾ\n",
+ "\n",
+ "നിരവധി ചിത്ര വർഗ്ഗീകരണ ജോലിക്കായി മുൻപരിചയമുള്ള ന്യൂറൽ നെറ്റ്വർക്ക് മോഡലുകൾ കഴിവുള്ളവയാണ്. അവയിൽ പല മോഡലുകളും `keras.applications` നെയിംസ്പെയ്സിനുള്ളിൽ ലഭ്യമാണ്, കൂടാതെ ഇന്റർനെറ്റിൽ കൂടി കൂടുതൽ മോഡലുകൾ കണ്ടെത്താനാകും. ഏറ്റവും ലളിതമായ VGG-16 മോഡൽ എങ്ങനെ ലോഡ് ചെയ്ത് ഉപയോഗിക്കാമെന്ന് നോക്കാം:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels.h5\n",
+ "553467904/553467096 [==============================] - 6s 0us/step\n",
+ "Most probable class = [208]\n",
+ "Downloading data from https://storage.googleapis.com/download.tensorflow.org/data/imagenet_class_index.json\n",
+ "40960/35363 [==================================] - 0s 0us/step\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "[[('n02099712', 'Labrador_retriever', 0.5340957),\n",
+ " ('n02100236', 'German_short-haired_pointer', 0.0939442),\n",
+ " ('n02092339', 'Weimaraner', 0.08160535),\n",
+ " ('n02099849', 'Chesapeake_Bay_retriever', 0.057179328),\n",
+ " ('n02109047', 'Great_Dane', 0.03733857)]]"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# SHA-256 of VGG16 weights (with top)\n",
+ "VGG16_WEIGHTS_SHA256 = '64373286793e3c8b2b4e3219cbf3544bce2f55ab4682710a29f5e7af8f5e4f61'\n",
+ "\n",
+ "_weights_path = keras.utils.get_file(\n",
+ " 'vgg16_weights_tf_dim_ordering_tf_kernels.h5',\n",
+ " 'https://storage.googleapis.com/tensorflow/keras-applications/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels.h5',\n",
+ " file_hash=VGG16_WEIGHTS_SHA256,\n",
+ " hash_algorithm='sha256',\n",
+ ")\n",
+ "\n",
+ "vgg = keras.applications.VGG16(weights=_weights_path)\n",
+ "inp = keras.applications.vgg16.preprocess_input(x_sample[:1])\n",
+ "\n",
+ "res = vgg(inp)\n",
+ "print(f\"Most probable class = {tf.argmax(res,1)}\")\n",
+ "\n",
+ "keras.applications.vgg16.decode_predictions(res.numpy())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ഇവിടെ ചില പ്രധാന കാര്യങ്ങൾ ഉണ്ട്:\n",
+ "* ഏത് പ്രീ-ട്രെയ്ൻ ചെയ്ത നെറ്റ്വർക്കിനും ഒരു ഇൻപുട്ട് നൽകുന്നതിന് മുന്നിൽ അത് ഒരു നിർദേശിച്ച രീതിയിൽ പ്രീ-പ്രോസസ്സ് ചെയ്യേണ്ടി വരും. ഇത് ബന്ധപ്പെട്ട `preprocess_input` ഫംഗ്ഷൻ വിളിച്ച് ചെയ്യപ്പെടുന്നു, അത് ചിത്രങ്ങളുടെയും ഒരു ബാച്ച് സ്വീകരിച്ച് അവയുടെ പ്രോസസ്ഡ് രൂപം തിരികെ നൽകുന്നു. VGG-16-ന്റെ കേസിൽ, ചിത്രങ്ങൾ നോർമലൈസ് ചെയ്യപ്പെടുന്നു, കൂടാതെ ഓരോ ചാനലിനും വേണ്ടി നിർവചിച്ചിട്ടുള്ള ശരാശരി മൂല്യം കുറച്ച് അമൾക്കുമെന്നതാണ് കാരണം. കാരണം VGG-16 ആദ്യം ഇതായി പ്രീ-പ്രോസസ്സിംഗ് ഉപയോഗിച്ചു പരിശീലിപ്പിച്ചിരുന്നതാണ്.\n",
+ "* അക്കാലത്തേക്ക് ന്യൂറൽ നെറ്റ്വർക്ക് ഇൻപുട്ട് ബാച്ചിന് പ്രയോഗിക്കപ്പെടുന്നു, ഫലം ആയി നാം 1000 ഘടകങ്ങളുള്ള ടെൻസറുകളുടെ ബാച്ച് ലഭിക്കും, അത് ഓരോ ക്ലാസിന്റെയും സാധ്യത കാണിക്കുന്നു. ഇത്തരം ടെൻസറിൽ `argmax` വിളിച്ച് ഏറ്റവും സാധ്യതയിലുള്ള ക്ലാസ് നമ്പർ കണ്ടെത്താം.\n",
+ "* ലഭിച്ച ഫലം [ഒരു `ImageNet` ക്ലാസിന്റെ നമ്പറാണ്](https://gist.github.com/yrevar/942d3a0ac09ec9e5eb3a). ഇത് മനസ്സിലാക്കാൻ, `decode_predictions` ഫംഗ്ഷൻ ഉപയോഗിച്ച് മുൻനിര n ക്ലാസുകളും അവയുടെ പേരുകളും തിരികെ ലഭിക്കും.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "VGG-16 നെറ്റ്വർക്കിന്റെ ആർക്കിടെക്ചറും നോക്കാം:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Model: \"vgg16\"\n",
+ "_________________________________________________________________\n",
+ "Layer (type) Output Shape Param # \n",
+ "=================================================================\n",
+ "input_1 (InputLayer) [(None, 224, 224, 3)] 0 \n",
+ "_________________________________________________________________\n",
+ "block1_conv1 (Conv2D) (None, 224, 224, 64) 1792 \n",
+ "_________________________________________________________________\n",
+ "block1_conv2 (Conv2D) (None, 224, 224, 64) 36928 \n",
+ "_________________________________________________________________\n",
+ "block1_pool (MaxPooling2D) (None, 112, 112, 64) 0 \n",
+ "_________________________________________________________________\n",
+ "block2_conv1 (Conv2D) (None, 112, 112, 128) 73856 \n",
+ "_________________________________________________________________\n",
+ "block2_conv2 (Conv2D) (None, 112, 112, 128) 147584 \n",
+ "_________________________________________________________________\n",
+ "block2_pool (MaxPooling2D) (None, 56, 56, 128) 0 \n",
+ "_________________________________________________________________\n",
+ "block3_conv1 (Conv2D) (None, 56, 56, 256) 295168 \n",
+ "_________________________________________________________________\n",
+ "block3_conv2 (Conv2D) (None, 56, 56, 256) 590080 \n",
+ "_________________________________________________________________\n",
+ "block3_conv3 (Conv2D) (None, 56, 56, 256) 590080 \n",
+ "_________________________________________________________________\n",
+ "block3_pool (MaxPooling2D) (None, 28, 28, 256) 0 \n",
+ "_________________________________________________________________\n",
+ "block4_conv1 (Conv2D) (None, 28, 28, 512) 1180160 \n",
+ "_________________________________________________________________\n",
+ "block4_conv2 (Conv2D) (None, 28, 28, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block4_conv3 (Conv2D) (None, 28, 28, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block4_pool (MaxPooling2D) (None, 14, 14, 512) 0 \n",
+ "_________________________________________________________________\n",
+ "block5_conv1 (Conv2D) (None, 14, 14, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block5_conv2 (Conv2D) (None, 14, 14, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block5_conv3 (Conv2D) (None, 14, 14, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block5_pool (MaxPooling2D) (None, 7, 7, 512) 0 \n",
+ "_________________________________________________________________\n",
+ "flatten (Flatten) (None, 25088) 0 \n",
+ "_________________________________________________________________\n",
+ "fc1 (Dense) (None, 4096) 102764544 \n",
+ "_________________________________________________________________\n",
+ "fc2 (Dense) (None, 4096) 16781312 \n",
+ "_________________________________________________________________\n",
+ "predictions (Dense) (None, 1000) 4097000 \n",
+ "=================================================================\n",
+ "Total params: 138,357,544\n",
+ "Trainable params: 138,357,544\n",
+ "Non-trainable params: 0\n",
+ "_________________________________________________________________\n"
+ ]
+ }
+ ],
+ "source": [
+ "vgg.summary()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## GPU കംപ്യൂട്ടേഷനുകൾ\n",
+ "\n",
+ "VGG-16 പോലുള്ള ആഴത്തിലുള്ള ന്യൂറൽ നെറ്റ്വർക്കുകളും മറ്റു കൂടുതൽ ആധുനിക വാസ്തവിക സൃഷ്ടികളും പ്രവർത്തിപ്പിക്കാൻ വളരെ അധികം കംപ്യൂട്ടേഷണൽ പവർ ആവശ്യമാണ്. GPU ആക്സിലറേഷൻ ലഭ്യമായാൽ അത് ഉപയോഗിക്കുന്നത് യുക്തിയോടെയാണ്. ഭാഗ്യവശാൽ, Keras GPU ലഭ്യമായാൽ കംപ്യൂട്ടേഷനുകൾ സ്വയം വേഗത്തിലാക്കുന്നു. Tensorflow GPU ഉപയോഗിക്കാൻ കഴിയുന്നുണ്ടോ എന്ന് താഴെ കാണിച്ചിരിക്കുന്ന കോഡ് ഉപയോഗിച്ച് പരിശോധിക്കാം:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tf.config.list_physical_devices('GPU')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "## VGG സവിശേഷതകൾ പുറത്തെടുക്കൽ\n",
+ "\n",
+ "നമ്മുടെ ചിത്രങ്ങളിൽ നിന്ന് സവിശേഷതകൾ പുറത്തെടുക്കാൻ VGG-16 ഉപയോഗിക്കണമെങ്കിൽ, അവസാനത്തെ വർഗ്ഗീകരണ שכതകളില്ലാത്ത മോഡൽ ആവശ്യമുണ്ട്. മുകളിലുള്ള שכതകൾ ഇല്ലാതെ VGG-16 മോഡൽ സൃഷ്ടിക്കാൻ ഈ കോഡ് ഉപയോഗിക്കാം:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Shape after applying VGG-16: (7, 7, 512)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "vgg = keras.applications.VGG16(include_top=False)\n",
+ "\n",
+ "inp = keras.applications.vgg16.preprocess_input(x_sample[:1])\n",
+ "res = vgg(inp)\n",
+ "print(f\"Shape after applying VGG-16: {res[0].shape}\")\n",
+ "plt.figure(figsize=(15,3))\n",
+ "plt.imshow(res[0].numpy().reshape(-1,512))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ഫീച്ചർ ടെൻസറിന്റെ ഡൈമെൻഷൻ 7x7x512 ആണ്, പക്ഷേ അതിനെ ദൃശ്യമാക്കുന്നതിനായി ഞങ്ങൾ അത് 2D രൂപത്തിലേക്ക് പുനഃരൂപപ്പെടുത്തേണ്ടിവന്നു.\n",
+ "\n",
+ "ഇപ്പോൾ ആ ഫീച്ചറുകൾ ചിത്രങ്ങളെ ശ്രേണി بند് ചെയ്യാൻ ഉപയോഗിക്കാമോ എന്നു നോക്കാം. ചില ചിത്രങ്ങളുടെ ഒരു ഭാഗം (ഞങ്ങളുടെ കാര്യത്തിൽ 50 മിനി ബാച്ചുകൾ) കൈയോടെ എടുത്ത് അവരുടെ ഫീച്ചർ വെക്ടറുകൾ മുൻകൂർ കണക്കാക്കാം. അത് ചെയ്യാൻ ഞങ്ങൾ Tensorflow **dataset** API ഉപയോഗിക്കാം. `map` ഫങ്ഷൻ ഒരു dataset എടുത്ത് നൽകിയ ലാംബ്ഡ-ഫങ്ഷൻ പ്രയോഗിച്ച് അതിനെ പരിവർത്തനം ചെയ്യുന്നു. ഈ സംവിധാനത്തിൽ VGG-നിർമ്മിത ഫീച്ചറുകൾ അടങ്ങിയ പുതിയ datasetകൾ, `ds_features_train` ഉം `ds_features_test` ഉം നിർമ്മിക്കുന്നു, യഥാർത്ഥ ചിത്രങ്ങളുടെ പകരം. \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(64, 7, 7, 512) (64,)\n"
+ ]
+ }
+ ],
+ "source": [
+ "num = batch_size*50\n",
+ "ds_features_train = ds_train.take(50).map(lambda x,y : (vgg(x),y))\n",
+ "ds_features_test = ds_test.take(10).map(lambda x,y : (vgg(x),y))\n",
+ "\n",
+ "for x,y in ds_features_train:\n",
+ " print(x.shape,y.shape)\n",
+ " break"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ഞങ്ങൾ ഡാറ്റാസെറ്റ് വലുപ്പം പരിധിയിടാൻ ഉപയോഗിച്ചത് `.take(50)` ആണ്, നമ്മുടെ പ്രദർശനം വെഗത്തിലാക്കാൻ. നിശ്ചയമായും നിങ്ങൾക്ക് ഈ പരീക്ഷണം പൂർണ്ണ ഡാറ്റാസെറ്റിൽ നടത്താം. \n",
+ "\n",
+ "എക്സ്ട്രാക്ടഡ് ഫീച്ചറുകളുള്ള ഒരു ഡാറ്റാസെറ്റ് ഇപ്പോൾ ഉണ്ടായിരിക്കെ, നാം ഒരു ലളിതമായ ഡെൻസ് ക്ലാസിഫയർ ട്രെയിൻ ചെയ്ത് പൂച്ചകളും നായ്ക്കളും തമ്മിൽ വ്യത്യസ്തമാക്കാം. ഈ നെറ്റ്വർക്ക് (7,7,512) ആകൃതിയിലുള്ള ഫീച്ചർ വെക്ടർ സ്വീകരിച്ച്, നായ്ക്കോ പൂച്ചയോ എങ്കിലോ ഒറ്റൗട്ട്പുട്ട് സൃഷ്ടിക്കും. ഇത് ബൈനറി ക്ലാസിഫിക്കേഷൻ ആയതിനാൽ, നാം `sigmoid` ആക്ടിവേഷൻ ഫങ്ഷനും `binary_crossentropy` ലോസ്സും ഉപയോഗിക്കുന്നു.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "50/50 [==============================] - 1896s 38s/step - loss: 1.4845 - acc: 0.9144 - val_loss: 0.7220 - val_acc: 0.9516\n"
+ ]
+ }
+ ],
+ "source": [
+ "model = keras.models.Sequential([\n",
+ " keras.layers.Flatten(input_shape=(7,7,512)),\n",
+ " keras.layers.Dense(1,activation='sigmoid')\n",
+ "])\n",
+ "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])\n",
+ "hist = model.fit(ds_features_train, validation_data=ds_features_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ഫലം ഉത്തമമാണ്, കമ്പിയും നായയും തമ്മിൽ ഏകദേശം 95% സാധ്യതയോടെ വേർതിരിക്കാം! എന്നാൽ, മാനുവൽ ഫീച്ചർ എക്സ്ട്രാക്ഷൻ വളരെ സമയം എടുക്കുമെന്ന് തോന്നുന്നതിനാൽ ഈ സമീപനം എല്ലാ ചിത്രങ്ങളുടെ സബ്സെറ്റ് മാത്രം പരീക്ഷിച്ചിട്ടുണ്ട്.\n",
+ "\n",
+ "## ഒരു VGG നെറ്റ്വർക്ക് ഉപയോഗിച്ചാണ് ട്രാൻസ്ഫർ ലേണിംഗ്\n",
+ "\n",
+ "പരിശീലന സമയത്ത് ഓരിജിനൽ VGG-16 നെറ്റ്വർക്ക് മുഴുവനായി ഉപയോഗിച്ച് ഫീച്ചർ എക്സ്ട്രാക്ടർ നമ്മുടെ നെറ്റ്വർക്കിന് ആദ്യ ലെയറായി ചേർക്കുന്ന വഴി മാനുവൽ ഫീച്ചർ പ്രീ-കമ്പ്യൂട്ട് ചെയ്യുന്നതു ഒഴിവാക്കാം.\n",
+ "\n",
+ "Keras ആർക്കിടെക്ചറിന്റെ സുന്ദര്യം അതെ, നാം മുകളിൽ നിർവചിച്ച VGG-16 മോഡൽ മറ്റൊരു ന്യൂറൽ നെറ്റ്വർക്കിൽ ഒരു ലെയറായി ഉപയോഗിക്കാം! അതിന് മുകളിൽ ഡെൻസെ ക്ലാസിഫയർ ഉള്ള ഒരു നെറ്റ്വർക്ക് നിർമ്മിച്ച്, പിന്നെ ബാക്ക് പ്രൊപ്പഗേഷൻ ഉപയോഗിച്ച് മുഴുവൻ നെറ്റ്വർക്കും പരിശീലിപ്പിക്ക മതിയാകും.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Model: \"sequential\"\n",
+ "_________________________________________________________________\n",
+ "Layer (type) Output Shape Param # \n",
+ "=================================================================\n",
+ "vgg16 (Functional) (None, 7, 7, 512) 14714688 \n",
+ "_________________________________________________________________\n",
+ "flatten (Flatten) (None, 25088) 0 \n",
+ "_________________________________________________________________\n",
+ "dense (Dense) (None, 1) 25089 \n",
+ "=================================================================\n",
+ "Total params: 14,739,777\n",
+ "Trainable params: 25,089\n",
+ "Non-trainable params: 14,714,688\n",
+ "_________________________________________________________________\n"
+ ]
+ }
+ ],
+ "source": [
+ "model = keras.models.Sequential()\n",
+ "model.add(keras.applications.VGG16(include_top=False,input_shape=(224,224,3)))\n",
+ "model.add(keras.layers.Flatten())\n",
+ "model.add(keras.layers.Dense(1,activation='sigmoid'))\n",
+ "\n",
+ "model.layers[0].trainable = False\n",
+ "\n",
+ "model.summary()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "ഈ മോഡൽ ഒരു എന്റ്-ടു-എന്റ് ക്ലാസിഫിക്കേഷൻ നെറ്റ്വർക്ക് പോലെ ആണ്, അത് ഒരു ചിത്രം എടുത്ത് ക്ലാസ് തിരികെ നൽകുന്നത്. എങ്കിലും, ട്രിക്കി കാര്യം એതാണ്, നമുക്ക് VGG16 ഒരു ഫീച്ചർ എക്സ്ട്രാക്ടറായി പ്രവർത്തിക്കണമെന്ന് ആഗ്രഹിക്കുന്നതാണ്, റീ-ട്രെയിൻ ചെയ്യരുത്. അതിനാൽ, നമുക്കു **കോൺവല്യൂഷണൽ ഫീച്ചർ എക്സ്ട്രാക്ടറിന്റെ ഭാരങ്ങൾ ഫ്രീസുചെയ്യേണ്ടത്** ആവശ്യമാണ്. നമുക്ക് നെറ്റ്വർക്കിന്റെ ആദ്യ ലെയർ ആക്സസ് ചെയ്യാൻ `model.layers[0]` വിളിക്കാം, പിന്നീട് `trainable` പ്രോപ്പർട്ടി `False` ആക്കേണ്ടതും മാത്രമാണ്.\n",
+ "\n",
+ "> **കുറിപ്പ്**: ഫീച്ചർ എക്സ്ട്രാക്ടർ ഭാരങ്ങൾ ഫ്രീസുചെയ്യുന്നത് ആവശ്യമാണ്, കാരണം അല്ലാതെ ട്രെയിൻ ചെയ്യാത്ത ക്ലാസിഫയർ ലെയർ മുൻ-ട്രെയിൻ ചെയ്ത കോൺവല്യൂഷണൽ എക്സ്ട്രാക്ടറിന്റെ എല്ലാ ഭാരങ്ങൾ നശിപ്പിക്കാം.\n",
+ "\n",
+ "നമ്മുടെ നെറ്റ്വർക്കിന്റെ മൊത്തം പാരാമീറ്ററുകളുടെ എണ്ണവും ഏകദേശം 15 ദശലക്ഷം ആണെന്ന് നിങ്ങൾ ശ്രദ്ധിച്ചേക്കാം, എന്നാൽ നാം 25k പാരാമീറ്ററുകൾ മാത്രം ട്രെയിൻ ചെയ്യുകയാണ്. മുകളിലത്തെ കോൺവല്യൂഷണൽ ഫിൽറ്ററുകളുടെ മറ്റു എല്ലാ പാരാമീറ്ററുകളും മുമ്പ് പരിശീലിച്ചിട്ടുണ്ട്. അത് നല്ലതാണ്, കാരണം കുറച്ച് ഉദാഹരണങ്ങളുമായി കുറച്ച് പാരാമീറ്ററുകൾ നന്നായി ഫൈൻ-ട്യൂൺ ചെയ്യാൻ സാധിക്കുന്നു.\n",
+ "\n",
+ "ഇപ്പോൾ നാം നമ്മുടെ നെറ്റ്വർക്ക് ട്രെയിൻ ചെയ്ത് എത്രത്തോളം നല്ലതാകാം എന്ന് കാണാം. വളരെ നീണ്ട സമയം നടത്തിവരാം എന്ന് കൽപ്പിക്കുക, പ്രവർത്തനം ഒരു നേരം നിശ്ചലമായ പോലെ തോന്നിയാലും വിഷമിക്കേണ്ട.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "310/310 [==============================] - 265s 716ms/step - loss: 0.9917 - acc: 0.9512 - val_loss: 0.8156 - val_acc: 0.9671\n"
+ ]
+ }
+ ],
+ "source": [
+ "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])\n",
+ "hist = model.fit(ds_train, validation_data=ds_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "നമുക്ക് മാറ്റഗണിതമായി ശരിയായ പൂച്ചകൾ vs.നായ്ക്കൾ ക്ലാസിഫയർ ലഭിച്ചിരിക്കുന്നു എന്നാണ് തോന്നുന്നത്! \n",
+ "\n",
+ "## മോഡൽ സംരക്ഷിക്കുകയും ലോഡ് ചെയ്യുകയും ചെയ്യുക\n",
+ "\n",
+ "മോഡൽ പരിശീലിപ്പിച്ചതിനു ശേഷം, നാം ഭാവിയില് ഉപയോഗിക്കാനായി മോഡൽ ആർക്കിടെക്ചർയും പരിശീലിപ്പിച്ച ഭാരങ്ങളും ഒരു ഫയലിൽ സംരക്ഷിക്കാം:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "INFO:tensorflow:Assets written to: data/cats_dogs.tf/assets\n"
+ ]
+ }
+ ],
+ "source": [
+ "model.save('data/cats_dogs.tf')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "പിന്നീട് നാം മോഡൽ fichier ൽ നിന്നും എപ്പോൾ വേണമെങ്കിലും ലോഡ് ചെയ്യാം. അടുത്ത പരീക്ഷണം മോഡൽ തകർത്തേക്കും എന്ന സാഹചര്യത്തിൽ ഇത് ഉപകാരപ്രദമാകാം - വീണ്ടും തുടങ്ങേണ്ട ആവശ്യമില്ല.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "model = keras.models.load_model('data/cats_dogs.tf')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## ഫൈൻ-ട്യൂണിംഗ് ട്രാൻസ്ഫർ ലേണിംഗ്\n",
+ "\n",
+ "മുൻവശമുള്ള സെക്ഷനിൽ, ഞങ്ങൾ ഞങ്ങളുടെ സ്വന്തം ഡാറ്റാസെറ്റിലുള്ള ചിത്രങ്ങൾ ക്ലാസിഫൈ ചെയ്യുന്നതിനായി അവസാന ക്ലാസിഫയറിന്റെ ലേയർ പരിശീലിപ്പിച്ചു. എന്നിരുന്നാലും, ഫീച്ചർ എക്സ്ട്രാക്ടർ ഞങ്ങൾ പുനർപഠിപ്പിച്ചിട്ടില്ല, കൂടാതെ നമ്മുടെ മോഡൽ മോഡൽ ImageNet ഡാറ്റയിൽ പഠിച്ച ഫീച്ചറുകളെയാണ് ആശ്രയിക്കുന്നത്. നിങ്ങളുടെ വസ്തുക്കൾ സാധാരണ ImageNet ചിത്രങ്ങളിൽ നിന്ന് ദൃശ്യപരമായി വ്യത്യസ്തമാണെങ്കിൽ, ഈ ഫീച്ചറുകളുടെ സംയോജനം മികച്ചതായി പ്രവര്ത്തിക്കാത്തതായിരിക്കും. അതിനാൽ കോൺവൊല്യൂഷണൽ ലേയറുകളെ പരിശീലിപ്പിക്കാനും ആരംഭിക്കുന്നത് അർത്ഥവത്താണ്.\n",
+ "\n",
+ "അത് ചെയ്യാൻ, നാം മുമ്പ് ഫ്രീസ് ചെയ്ത കോൺവൊല്യൂഷണൽ ഫിൽട്ടർ പാരാമീറ്ററുകൾ അന്ഫ്രീസ് ചെയ്യാവുന്നതാണ്.\n",
+ "\n",
+ "> **കുറിപ്പ്:** നിങ്ങൾ ആദ്യം പാരാമീറ്ററുകൾ ഫ്രീസ് ചെയ്ത് ക്ലാസിഫിക്കേഷൻ ലേയറിൽ ഭാരങ്ങൾ സ്ഥിരത പുതുക്കാൻ കുറച്ച് എപ്പോച്ചുകൾ പരിശീലനം നടത്തുന്നത് അനിവാര്യമാണ്. പാരാമീറ്ററുകൾ അന്ഫ്രീസ് ചെയ്ത ഉടനെ എടുക്കുന്ന എൻഡ്-ടു-എൻഡ് നെറ്റ്വർക്ക് പരിശീലനം വലിയ പിശകുകൾ കോൺവൊല്യൂഷണൽ ലേയറുകളിലെ മുൻപരിചയമുള്ള ഭാരങ്ങളെ നശിപ്പിക്കാൻ സാധ്യതയുണ്ട്.\n",
+ "\n",
+ "ഞങ്ങളുടെ കോൺവൊല്യൂഷണൽ VGG-16 മോഡൽ ആദ്യ ലേയർക്ക് ഉള്ളിൽ സ്ഥിതിചെയ്യുന്നു, കൂടാതെ അതിനുള്ളിൽ തന്നെ നിരവധി ലേയറുകൾ ഉണ്ട്. നാം അതിന്റെ ഘടന നോക്കാം:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Model: \"vgg16\"\n",
+ "_________________________________________________________________\n",
+ "Layer (type) Output Shape Param # \n",
+ "=================================================================\n",
+ "input_1 (InputLayer) [(None, 224, 224, 3)] 0 \n",
+ "_________________________________________________________________\n",
+ "block1_conv1 (Conv2D) (None, 224, 224, 64) 1792 \n",
+ "_________________________________________________________________\n",
+ "block1_conv2 (Conv2D) (None, 224, 224, 64) 36928 \n",
+ "_________________________________________________________________\n",
+ "block1_pool (MaxPooling2D) (None, 112, 112, 64) 0 \n",
+ "_________________________________________________________________\n",
+ "block2_conv1 (Conv2D) (None, 112, 112, 128) 73856 \n",
+ "_________________________________________________________________\n",
+ "block2_conv2 (Conv2D) (None, 112, 112, 128) 147584 \n",
+ "_________________________________________________________________\n",
+ "block2_pool (MaxPooling2D) (None, 56, 56, 128) 0 \n",
+ "_________________________________________________________________\n",
+ "block3_conv1 (Conv2D) (None, 56, 56, 256) 295168 \n",
+ "_________________________________________________________________\n",
+ "block3_conv2 (Conv2D) (None, 56, 56, 256) 590080 \n",
+ "_________________________________________________________________\n",
+ "block3_conv3 (Conv2D) (None, 56, 56, 256) 590080 \n",
+ "_________________________________________________________________\n",
+ "block3_pool (MaxPooling2D) (None, 28, 28, 256) 0 \n",
+ "_________________________________________________________________\n",
+ "block4_conv1 (Conv2D) (None, 28, 28, 512) 1180160 \n",
+ "_________________________________________________________________\n",
+ "block4_conv2 (Conv2D) (None, 28, 28, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block4_conv3 (Conv2D) (None, 28, 28, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block4_pool (MaxPooling2D) (None, 14, 14, 512) 0 \n",
+ "_________________________________________________________________\n",
+ "block5_conv1 (Conv2D) (None, 14, 14, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block5_conv2 (Conv2D) (None, 14, 14, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block5_conv3 (Conv2D) (None, 14, 14, 512) 2359808 \n",
+ "_________________________________________________________________\n",
+ "block5_pool (MaxPooling2D) (None, 7, 7, 512) 0 \n",
+ "=================================================================\n",
+ "Total params: 14,714,688\n",
+ "Trainable params: 0\n",
+ "Non-trainable params: 14,714,688\n",
+ "_________________________________________________________________\n"
+ ]
+ }
+ ],
+ "source": [
+ "model.layers[0].summary()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "നാം കോൺവല്യൂഷണൽ ബേസിന്റെ എല്ലാ ലെയറുകളും അൺഫ്രീസുചെയ്യാൻ കഴിയും:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "model.layers[0].trainable = True"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "എങ്കിലും, അവയെല്ലാം ഒരിക്കലിൽ അൺഫ്രീസ് ചെയ്യുക ഏറ്റവും മികച്ച ആശയം അല്ല. ആദ്യം തിരുചെറിയ കൺവോളൂഷൻ വരികളുടെ കുറച്ചു മാത്രമേ അൺഫ്രീസ് ചെയ്യാൻ കഴിയും, കാരണം അവയിൽ നമ്മുടെ ചിത്രങ്ങൾക്ക് പ്രസക്തമായ ഉയർന്ന നില പാറ്റേണുകൾ അടങ്ങിയിരിക്കുന്നു. ഉദാഹരണത്തിന്, ആരംഭത്തിൽ, അവസാന 4 വരികൾ ഒഴികെ എല്ലാം ഫ്രീസ് ചെയ്യാമെന്ന് തീരുമാനിക്കാം: \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Model: \"sequential\"\n",
+ "_________________________________________________________________\n",
+ "Layer (type) Output Shape Param # \n",
+ "=================================================================\n",
+ "vgg16 (Functional) (None, 7, 7, 512) 14714688 \n",
+ "_________________________________________________________________\n",
+ "flatten (Flatten) (None, 25088) 0 \n",
+ "_________________________________________________________________\n",
+ "dense (Dense) (None, 1) 25089 \n",
+ "=================================================================\n",
+ "Total params: 14,739,777\n",
+ "Trainable params: 7,104,513\n",
+ "Non-trainable params: 7,635,264\n",
+ "_________________________________________________________________\n"
+ ]
+ }
+ ],
+ "source": [
+ "for i in range(len(model.layers[0].layers)-4):\n",
+ " model.layers[0].layers[i].trainable = False\n",
+ "model.summary()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "പരിശീലിപ്പിക്കാൻ കഴിയുന്ന പാരാമീറ്ററുകളുടെ എണ്ണത്തിൽ വലിയ വർധനവുണ്ടായെങ്കിലും, അതെല്ലാ പാരാമീറ്ററുകളുടെയും ഏകദേശം 50% നിലയിലാണ് അതിന്ന് ഇപ്പോഴും കാണുന്നത് എന്ന് ശ്രദ്ധിക്കുക.\n",
+ "\n",
+ "അന്ഫ്രീസിംഗ് ചെയ്തശേഷം, നാം കൂടാതെ കുറച്ചിൽ അധികം epoch ട്രെയിനിംഗ് നടത്താവുന്നതാണ് (ഞങ്ങളുടെ ഉദാഹരണത്തിൽ, നാം ഒരെണ്ണം മാത്രം നടത്തും). പ്രീ-ട്രെയിൻ ചെയ്ത വെയിറ്റ്സുകൾക്ക് ഏറെ പ്രഭാവം ഉണ്ടായിരുതലിന് കുറവായ ലേണിംഗ് റേറ്റ് തിരഞ്ഞെടുക്കാവുന്നതാണ്. എന്നാൽ, കുറഞ്ഞ ലേണിംഗ് റേറ്റോടെ പോലും, ട്രെയിനിംഗിന്റെ തുടക്കത്തിൽ കൃത്യത കുറയുമെന്ന് പ്രതീക്ഷിക്കാം, പിന്നീട് ഫിക്സ്ഡ് വെയിറ്റ്സിന്റെ അവസ്ഥയേക്കാൾ അല്പം കൂടുതലായ നിലയിലേക്ക് എത്തും.\n",
+ "\n",
+ "> **നോട്ട്:** ഈ ട്രെയിനിംഗ് വളരെ മന്ദഗതിയിലാണ് നടക്കുന്നത്, കാരണം നെറ്റ്വർക്കിലെ നിരവധി ലെയറുകളിലൂടെ ഗ്രേഡിയന്റുകൾ ബാക്ക് പ്രോപ്പഗേറ്റ് ചെയ്യേണ്ടതിനാൽ!\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "310/310 [==============================] - 201s 645ms/step - loss: 0.5270 - acc: 0.9776 - val_loss: 1.4132 - val_acc: 0.9653\n"
+ ]
+ }
+ ],
+ "source": [
+ "hist = model.fit(ds_train, validation_data=ds_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "കൂടുതൽ പാരാമീറ്ററുകളുള്ള കൂടുതൽ ശക്തമായ നെറ്റ്വർക്ക് ഉപയോഗിക്കുന്നതിനാൽ(training accuracy) ഉയർന്ന ട്രെയിനിംഗ് കൃത്യത നേടാമെന്നാണ് സാധ്യത, എന്നാൽ വാലിഡേഷൻ കൃത്യത അത്രയും വളർച്ച കാണിക്കാത്തതാണ്.\n",
+ "\n",
+ "നിങ്ങൾക്ക് ഉയർന്ന കൃത്യത നേടാനാകുമോ എന്ന് കാണാൻ നെറ്റ്വർക്കിന്റെ കുറച്ചുകൂടി ലെയറുകൾ അന്ഫ്രീസ് ചെയ്ത് കുറച്ച് കൂടുതൽ പരിശീലിപ്പിക്കാൻ മടിക്കേണ്ട.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## മറ്റ് കമ്പ്യൂട്ടർ വിസൻ മോഡറുകൾ\n",
+ "\n",
+ "VGG-16 ഏറ്റവും ലളിതമായ കമ്പ്യൂട്ടർ വിസൻ ആർക്കിടെക്ചറുകളിൽ ഒന്നാണ്. Keras നിരവധി മുൻപരിചയമുള്ള നെറ്റ്വർക്കുകൾ നൽകുന്നു. അവയിൽ ഏറ്റവും വ്യാപകമായി ഉപയോഗിക്കപ്പെടുന്നത് Microsoft വികസിപ്പിച്ച **ResNet** ആർക്കിടെക്ചറുകളും Google വികസിപ്പിച്ച **Inception** ആണ്. ഉദാഹരണത്തിന്, ഏറ്റവും ലളിതമായ ResNet-50 മോഡലിന്റെ ആർക്കിടെക്ചർ പരിശോധിക്കാം (ResNet വിവിധ ആഴത്തിലുള്ള മോഡലുകളുടെ ഒരു കുടുംബമാണ്, നിങ്ങൾക്ക് വാസ്തവത്തിൽ ഒരു ആഴത്തിലുള്ള മോഡൽ എങ്ങനെ ഉണ്ടെന്നും കാണാൻ ResNet-152 ഉപയോഗിച്ച് പരീക്ഷണം നടത്താം):\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Model: \"resnet50\"\n",
+ "__________________________________________________________________________________________________\n",
+ "Layer (type) Output Shape Param # Connected to \n",
+ "==================================================================================================\n",
+ "input_3 (InputLayer) [(None, 224, 224, 3) 0 \n",
+ "__________________________________________________________________________________________________\n",
+ "conv1_pad (ZeroPadding2D) (None, 230, 230, 3) 0 input_3[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv1_conv (Conv2D) (None, 112, 112, 64) 9472 conv1_pad[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv1_bn (BatchNormalization) (None, 112, 112, 64) 256 conv1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv1_relu (Activation) (None, 112, 112, 64) 0 conv1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "pool1_pad (ZeroPadding2D) (None, 114, 114, 64) 0 conv1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "pool1_pool (MaxPooling2D) (None, 56, 56, 64) 0 pool1_pad[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_1_conv (Conv2D) (None, 56, 56, 64) 4160 pool1_pool[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_1_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block1_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_1_relu (Activation (None, 56, 56, 64) 0 conv2_block1_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_2_conv (Conv2D) (None, 56, 56, 64) 36928 conv2_block1_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_2_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block1_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_2_relu (Activation (None, 56, 56, 64) 0 conv2_block1_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_0_conv (Conv2D) (None, 56, 56, 256) 16640 pool1_pool[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_3_conv (Conv2D) (None, 56, 56, 256) 16640 conv2_block1_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_0_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block1_0_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_3_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block1_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_add (Add) (None, 56, 56, 256) 0 conv2_block1_0_bn[0][0] \n",
+ " conv2_block1_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block1_out (Activation) (None, 56, 56, 256) 0 conv2_block1_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_1_conv (Conv2D) (None, 56, 56, 64) 16448 conv2_block1_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_1_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block2_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_1_relu (Activation (None, 56, 56, 64) 0 conv2_block2_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_2_conv (Conv2D) (None, 56, 56, 64) 36928 conv2_block2_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_2_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block2_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_2_relu (Activation (None, 56, 56, 64) 0 conv2_block2_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_3_conv (Conv2D) (None, 56, 56, 256) 16640 conv2_block2_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_3_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block2_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_add (Add) (None, 56, 56, 256) 0 conv2_block1_out[0][0] \n",
+ " conv2_block2_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block2_out (Activation) (None, 56, 56, 256) 0 conv2_block2_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_1_conv (Conv2D) (None, 56, 56, 64) 16448 conv2_block2_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_1_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block3_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_1_relu (Activation (None, 56, 56, 64) 0 conv2_block3_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_2_conv (Conv2D) (None, 56, 56, 64) 36928 conv2_block3_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_2_bn (BatchNormali (None, 56, 56, 64) 256 conv2_block3_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_2_relu (Activation (None, 56, 56, 64) 0 conv2_block3_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_3_conv (Conv2D) (None, 56, 56, 256) 16640 conv2_block3_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_3_bn (BatchNormali (None, 56, 56, 256) 1024 conv2_block3_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_add (Add) (None, 56, 56, 256) 0 conv2_block2_out[0][0] \n",
+ " conv2_block3_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv2_block3_out (Activation) (None, 56, 56, 256) 0 conv2_block3_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_1_conv (Conv2D) (None, 28, 28, 128) 32896 conv2_block3_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block1_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_1_relu (Activation (None, 28, 28, 128) 0 conv3_block1_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block1_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block1_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_2_relu (Activation (None, 28, 28, 128) 0 conv3_block1_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_0_conv (Conv2D) (None, 28, 28, 512) 131584 conv2_block3_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block1_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_0_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block1_0_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block1_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_add (Add) (None, 28, 28, 512) 0 conv3_block1_0_bn[0][0] \n",
+ " conv3_block1_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block1_out (Activation) (None, 28, 28, 512) 0 conv3_block1_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_1_conv (Conv2D) (None, 28, 28, 128) 65664 conv3_block1_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block2_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_1_relu (Activation (None, 28, 28, 128) 0 conv3_block2_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block2_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block2_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_2_relu (Activation (None, 28, 28, 128) 0 conv3_block2_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block2_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block2_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_add (Add) (None, 28, 28, 512) 0 conv3_block1_out[0][0] \n",
+ " conv3_block2_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block2_out (Activation) (None, 28, 28, 512) 0 conv3_block2_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_1_conv (Conv2D) (None, 28, 28, 128) 65664 conv3_block2_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block3_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_1_relu (Activation (None, 28, 28, 128) 0 conv3_block3_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block3_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block3_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_2_relu (Activation (None, 28, 28, 128) 0 conv3_block3_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block3_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block3_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_add (Add) (None, 28, 28, 512) 0 conv3_block2_out[0][0] \n",
+ " conv3_block3_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block3_out (Activation) (None, 28, 28, 512) 0 conv3_block3_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_1_conv (Conv2D) (None, 28, 28, 128) 65664 conv3_block3_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block4_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_1_relu (Activation (None, 28, 28, 128) 0 conv3_block4_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_2_conv (Conv2D) (None, 28, 28, 128) 147584 conv3_block4_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_2_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block4_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_2_relu (Activation (None, 28, 28, 128) 0 conv3_block4_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_3_conv (Conv2D) (None, 28, 28, 512) 66048 conv3_block4_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_3_bn (BatchNormali (None, 28, 28, 512) 2048 conv3_block4_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_add (Add) (None, 28, 28, 512) 0 conv3_block3_out[0][0] \n",
+ " conv3_block4_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv3_block4_out (Activation) (None, 28, 28, 512) 0 conv3_block4_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_1_conv (Conv2D) (None, 14, 14, 256) 131328 conv3_block4_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block1_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_1_relu (Activation (None, 14, 14, 256) 0 conv4_block1_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block1_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block1_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_2_relu (Activation (None, 14, 14, 256) 0 conv4_block1_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_0_conv (Conv2D) (None, 14, 14, 1024) 525312 conv3_block4_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block1_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_0_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block1_0_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block1_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_add (Add) (None, 14, 14, 1024) 0 conv4_block1_0_bn[0][0] \n",
+ " conv4_block1_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block1_out (Activation) (None, 14, 14, 1024) 0 conv4_block1_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block1_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block2_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_1_relu (Activation (None, 14, 14, 256) 0 conv4_block2_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block2_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block2_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_2_relu (Activation (None, 14, 14, 256) 0 conv4_block2_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block2_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block2_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_add (Add) (None, 14, 14, 1024) 0 conv4_block1_out[0][0] \n",
+ " conv4_block2_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block2_out (Activation) (None, 14, 14, 1024) 0 conv4_block2_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block2_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block3_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_1_relu (Activation (None, 14, 14, 256) 0 conv4_block3_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block3_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block3_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_2_relu (Activation (None, 14, 14, 256) 0 conv4_block3_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block3_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block3_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_add (Add) (None, 14, 14, 1024) 0 conv4_block2_out[0][0] \n",
+ " conv4_block3_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block3_out (Activation) (None, 14, 14, 1024) 0 conv4_block3_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block3_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block4_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_1_relu (Activation (None, 14, 14, 256) 0 conv4_block4_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block4_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block4_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_2_relu (Activation (None, 14, 14, 256) 0 conv4_block4_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block4_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block4_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_add (Add) (None, 14, 14, 1024) 0 conv4_block3_out[0][0] \n",
+ " conv4_block4_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block4_out (Activation) (None, 14, 14, 1024) 0 conv4_block4_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block4_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block5_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_1_relu (Activation (None, 14, 14, 256) 0 conv4_block5_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block5_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block5_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_2_relu (Activation (None, 14, 14, 256) 0 conv4_block5_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block5_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block5_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_add (Add) (None, 14, 14, 1024) 0 conv4_block4_out[0][0] \n",
+ " conv4_block5_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block5_out (Activation) (None, 14, 14, 1024) 0 conv4_block5_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_1_conv (Conv2D) (None, 14, 14, 256) 262400 conv4_block5_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_1_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block6_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_1_relu (Activation (None, 14, 14, 256) 0 conv4_block6_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_2_conv (Conv2D) (None, 14, 14, 256) 590080 conv4_block6_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_2_bn (BatchNormali (None, 14, 14, 256) 1024 conv4_block6_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_2_relu (Activation (None, 14, 14, 256) 0 conv4_block6_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_3_conv (Conv2D) (None, 14, 14, 1024) 263168 conv4_block6_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_3_bn (BatchNormali (None, 14, 14, 1024) 4096 conv4_block6_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_add (Add) (None, 14, 14, 1024) 0 conv4_block5_out[0][0] \n",
+ " conv4_block6_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv4_block6_out (Activation) (None, 14, 14, 1024) 0 conv4_block6_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_1_conv (Conv2D) (None, 7, 7, 512) 524800 conv4_block6_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_1_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block1_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_1_relu (Activation (None, 7, 7, 512) 0 conv5_block1_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_2_conv (Conv2D) (None, 7, 7, 512) 2359808 conv5_block1_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_2_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block1_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_2_relu (Activation (None, 7, 7, 512) 0 conv5_block1_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_0_conv (Conv2D) (None, 7, 7, 2048) 2099200 conv4_block6_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 conv5_block1_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_0_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block1_0_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_3_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block1_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_add (Add) (None, 7, 7, 2048) 0 conv5_block1_0_bn[0][0] \n",
+ " conv5_block1_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block1_out (Activation) (None, 7, 7, 2048) 0 conv5_block1_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_1_conv (Conv2D) (None, 7, 7, 512) 1049088 conv5_block1_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_1_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block2_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_1_relu (Activation (None, 7, 7, 512) 0 conv5_block2_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_2_conv (Conv2D) (None, 7, 7, 512) 2359808 conv5_block2_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_2_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block2_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_2_relu (Activation (None, 7, 7, 512) 0 conv5_block2_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 conv5_block2_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_3_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block2_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_add (Add) (None, 7, 7, 2048) 0 conv5_block1_out[0][0] \n",
+ " conv5_block2_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block2_out (Activation) (None, 7, 7, 2048) 0 conv5_block2_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_1_conv (Conv2D) (None, 7, 7, 512) 1049088 conv5_block2_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_1_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block3_1_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_1_relu (Activation (None, 7, 7, 512) 0 conv5_block3_1_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_2_conv (Conv2D) (None, 7, 7, 512) 2359808 conv5_block3_1_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_2_bn (BatchNormali (None, 7, 7, 512) 2048 conv5_block3_2_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_2_relu (Activation (None, 7, 7, 512) 0 conv5_block3_2_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 conv5_block3_2_relu[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_3_bn (BatchNormali (None, 7, 7, 2048) 8192 conv5_block3_3_conv[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_add (Add) (None, 7, 7, 2048) 0 conv5_block2_out[0][0] \n",
+ " conv5_block3_3_bn[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "conv5_block3_out (Activation) (None, 7, 7, 2048) 0 conv5_block3_add[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "avg_pool (GlobalAveragePooling2 (None, 2048) 0 conv5_block3_out[0][0] \n",
+ "__________________________________________________________________________________________________\n",
+ "predictions (Dense) (None, 1000) 2049000 avg_pool[0][0] \n",
+ "==================================================================================================\n",
+ "Total params: 25,636,712\n",
+ "Trainable params: 25,583,592\n",
+ "Non-trainable params: 53,120\n",
+ "__________________________________________________________________________________________________\n"
+ ]
+ }
+ ],
+ "source": [
+ "resnet = keras.applications.ResNet50()\n",
+ "resnet.summary()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "നിങ്ങൾക്ക് കാണാൻ കഴിയുന്നതുപോലെ, മോഡലിൽ പതിവായി കാണുന്ന കെട്ടിട ഘടകങ്ങൾ ഉണ്ട്: കോൺവുല്യൂഷണൽ ലെയറുകൾ, പൂളിംഗ് ലെയറുകൾ, കൃത്യമായ ഘനപരിച്ഛേദകക്ലാസ്ഫയർ. ഈ മോഡൽ റണ്ണിംഗിനായി VGG-16 ഉപയോഗിക്കുന്നതിനുപോലെ തന്നെ ഉപയോഗിക്കാം. വ്യത്യസ്തമായ ResNet മോഡലുകൾ അടിസ്ഥാന മോഡലായി ഉപയോഗിച്ച്യുള്ള കോഡ് മുകളിൽ പരീക്ഷിച്ച്, കൃത്യത എങ്ങനെ മാറുന്നു എന്ന് നോക്കാം.\n",
+ "\n",
+ "## ബാച്ച് നോർമലൈസേഷൻ\n",
+ "\n",
+ "ഈ നെറ്റ്വർക്കിൽ മറ്റൊരു തരത്തിലുള്ള ലെയർ ഉണ്ട്: **ബാച്ച് നോർമലൈസേഷൻ**. ബാച്ച് നോർമലൈസേഷന്റെ ആശയം, ന്യുറൽ നെറ്റ്വർക്കിലൂടെ ഒഴുകുന്ന മൂല്യങ്ങളെ ശരിയായ പരിധിയിലേക്ക് കൊണ്ടുവരുന്നതാണ്. സാധാരണയായി, എല്ലാ മൂല്യങ്ങളും [-1,1] അല്ലെങ്കിൽ [0,1] പരിധിയിൽ ഉള്ളപ്പോൾ ന്യുറൽ നെറ്റ്വർക്കുകൾ മികച്ച പ്രവർത്തനം നടത്തുന്നു, അതുകൊണ്ട് നാം എൻപുട്ട് ഡാറ്റ അഥവാ ഇൻപുട്ട് ഡാറ്റയെ അനുസരിച്ച് സ്കെയിൽ ചെയ്യുന്നു/സാധാരണവത്കരിക്കുന്നു. എന്നാൽ, ഗഹനമായ ഒരു നെറ്റ്വർക്കിന്റെ പരിശീലനത്തിനിടയിൽ, മൂല്യങ്ങൾ ഈ പരിധിക്ക് വളരെ അപ്പുറം പോകാം, ഇത് പരിശീലനം ബുദ്ധിമുട്ടുള്ളതാക്കുന്നു. ബാച്ച് നോർമലൈസേഷൻ ലെയർ നിലവിലെ മിനിമിനി ബാച്ചിലെ എല്ലാ മൂല്യങ്ങൾക്കും ശരാശരി, സ്റ്റാന്റേർഡ് ഡിവിയേഷൻ കണക്കാക്കി, അത് ന്യുറൽ നെറ്റ്വർക്ക് ലെയർ വഴി കടത്തുന്നതിന് മുമ്പ് സിഗ്നലിനെ സാധാരണവത്കരിക്കുന്നു. ഇത് ഗഹന നെറ്റ്വർക്കുകളുടെ സ്ഥിരതയെ വളരെ മെച്ചപ്പെടുത്തുന്നു.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## പ്രധാന കാര്യങ്ങൾ\n",
+ "\n",
+ "ട്രാൻസ്ഫർ ലേണിംഗ് ഉപയോഗിച്ച്, ഞങ്ങൾ ത്വരിതമായി നമ്മുടെ കസ്റ്റം ഒബ്ജക്റ്റ് ക്ലാസിഫിക്കേഷൻ ടാസ്ക്കിനായി ക്ലാസിഫയർ ഒരുക്കാനും ഉയർന്ന കൃത്യത കൈവരിക്കാനുമായത്. എന്നാൽ, ഈ ഉദാഹരണം സമ്പൂർണമായി നീതിപൂർണ്ണമായിരുന്നില്ല, കാരണം ഓറിജിനൽ VGG-16 നെറ്റ്വർക്ക് പൂച്ചകളും നായകളും തിരിച്ചറിയാൻ മുൻകൂർ പരിശീലനം നേടിയതും അതിനാൽ മിക്ക പാറ്റേണുകളും നെറ്റ്വർക്കിൽ ഇതിനകം ഉണ്ടായിരുന്നവ പുനർഉപയോഗം ചെയ്തതായിരുന്നു. ഒരു പ്ലാന്റിലെ ഉൽപാദന ലൈൻ വിശദാംശങ്ങൾ, അല്ലെങ്കിൽ വ്യത്യസ്ത വൃക്ഷ ഇലകൾ പോലുള്ള കൂടുതൽ അഭൂതപൂർവമായ ഡൊമെയ്ൻ-സ്പെസിഫിക് ഒബ്ജക്റ്റുകളിൽ കുറവ് കൃത്യത പ്രതീക്ഷിക്കാം.\n",
+ "\n",
+ "ഇപ്പോഴുള്ള പ്രശ്നങ്ങൾ കൂടുതൽ സങ്കീർണ്ണമാണ്, അതിനാൽ കൂടുതൽ കംപ്യൂട്ടേഷൻ പവർ ആവശ്യമുണ്ട്, സി.പി.യുവിൽ എളുപ്പത്തിൽ പരിഹരിക്കാനാകുകയില്ല. അടുത്ത യൂണിറ്റിൽ, കുറഞ്ഞ കംപ്യൂട്ട് റിസോഴ്സുകൾ ഉപയോഗിച്ച് ഇപ്പോഴുള്ള മോഡൽ പരിശീലിപ്പിക്കാൻ കൂടുതൽ ലഘുവായ നടപ്പിലാക്കൽ പരീക്ഷിക്കും, കൂടാതെ അതിൻറെ ഫലം കുറച്ച് താഴ്ന്ന കൃത്യത മാത്രമേയുള്ളൂ.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n\n\n**അറിയിപ്പ്**:\nഈ രേഖ AI പരിഭാഷാ സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. ഞങ്ങൾ കൃത്യതയ്ക്കായി ശ്രമിക്കുന്നുവെങ്കിലും, ഓട്ടോമേറ്റഡ് പരിഭാഷകളിൽ പിഴവുകൾ അല്ലെങ്കിൽ തെറ്റായ വിവരങ്ങൾ ഉണ്ടാകാൻ സാധ്യതയുണ്ട്. അതിന്റെ സ്വാഭാവിക ഭാഷയിലുള്ള അസൽ രേഖയാണ് പ്രാമാണികമായ ഉറവിടമായി പരിഗണിക്കേണ്ടത്. നിർണായകമായ വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷ ശുപാർശ ചെയ്യുന്നു. ഈ പരിഭാഷ ഉപയോഗിച്ച് ഉണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾ അല്ലെങ്കിൽ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കായി ഞങ്ങൾ ഉത്തരവാദികളല്ല.\n\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "py38_tensorflow",
+ "language": "python",
+ "name": "conda-env-py38_tensorflow-py"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
}
\ No newline at end of file
diff --git a/translations/ml/lessons/5-NLP/README.md b/translations/ml/lessons/5-NLP/README.md
index 7b7adbac..5f8b7a96 100644
--- a/translations/ml/lessons/5-NLP/README.md
+++ b/translations/ml/lessons/5-NLP/README.md
@@ -1,51 +1,51 @@
-# സ്വാഭാവിക ഭാഷാ പ്രോസസ്സിംഗ്
+# സ്വാഭാവിക ഭാഷ പ്രോസസ്സ് (Natural Language Processing)
-
+
-ഈ ഭാഗത്തിൽ, നാം **സ്വാഭാവിക ഭാഷാ പ്രോസസ്സിംഗ് (NLP)** സംബന്ധിച്ച ടാസ്കുകൾ കൈകാര്യം ചെയ്യാൻ ന്യൂറൽ നെറ്റ്വർക്കുകൾ ഉപയോഗിക്കുന്നതിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കും. കമ്പ്യൂട്ടറുകൾക്ക് പരിഹരിക്കാൻ കഴിയേണ്ട നിരവധി NLP പ്രശ്നങ്ങൾ ഉണ്ട്:
+ഈ വിഭാഗത്തിൽ, നാം **സ്വാഭാവിക ഭാഷ പ്രോസസ്സിംഗ് (NLP)** קש്ചങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിന് ന്യൂറൽ നെറ്റ്വർക്കുകൾ ഉപയോഗിക്കുന്നത് ശ്രദ്ധിക്കാം. കമ്പ്യൂട്ടറുകളെ നമുക്ക് പല NLP പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ ആഗ്രഹിക്കുന്നു:
-* **ടെക്സ്റ്റ് ക്ലാസിഫിക്കേഷൻ** എന്നത് ടെക്സ്റ്റ് സീക്വൻസുകളുമായി ബന്ധപ്പെട്ട ഒരു സാധാരണ ക്ലാസിഫിക്കേഷൻ പ്രശ്നമാണ്. ഉദാഹരണങ്ങൾ: ഇമെയിൽ സന്ദേശങ്ങളെ സ്പാം അല്ലെങ്കിൽ നോൺ-സ്പാം ആയി വേർതിരിക്കുക, അല്ലെങ്കിൽ ലേഖനങ്ങളെ സ്പോർട്, ബിസിനസ്, രാഷ്ട്രീയ തുടങ്ങിയ വിഭാഗങ്ങളായി വർഗ്ഗീകരിക്കുക. ചാറ്റ് ബോട്ടുകൾ വികസിപ്പിക്കുമ്പോൾ, ഉപയോക്താവ് പറയാൻ ഉദ്ദേശിച്ച കാര്യം മനസിലാക്കേണ്ടതുണ്ടാകാം — ഈ സാഹചര്യത്തിൽ നാം **ഇന്റന്റ് ക്ലാസിഫിക്കേഷൻ** കൈകാര്യം ചെയ്യുകയാണ്. പലപ്പോഴും, ഇന്റന്റ് ക്ലാസിഫിക്കേഷനിൽ നിരവധി വിഭാഗങ്ങൾ കൈകാര്യം ചെയ്യേണ്ടി വരും.
-* **സെന്റിമെന്റ് അനാലിസിസ്** ഒരു സാധാരണ റെഗ്രഷൻ പ്രശ്നമാണ്, ഇവിടെ ഒരു വാചകത്തിന്റെ അർത്ഥം എത്രത്തോളം പോസിറ്റീവ് അല്ലെങ്കിൽ നെഗറ്റീവ് ആണെന്ന് സൂചിപ്പിക്കുന്ന ഒരു സംഖ്യ (സെന്റിമെന്റ്) നമുക്ക് നൽകേണ്ടതുണ്ട്. സെന്റിമെന്റ് അനാലിസിസിന്റെ കൂടുതൽ പുരോഗമിച്ച രൂപമാണ് **അസ്പെക്ട്-ബേസ്ഡ് സെന്റിമെന്റ് അനാലിസിസ്** (ABSA), ഇവിടെ മുഴുവൻ വാചകത്തിന് പകരം അതിന്റെ വ്യത്യസ്ത ഭാഗങ്ങൾ (അസ്പെക്ടുകൾ) അനുസരിച്ച് സെന്റിമെന്റ് നൽകുന്നു, ഉദാ: *ഈ റസ്റ്റോറന്റിൽ, എനിക്ക് ഭക്ഷണം ഇഷ്ടമായി, പക്ഷേ അന്തരീക്ഷം ഭയങ്കരമായിരുന്നു*.
-* **നെയിംഡ് എന്റിറ്റി റെക്കഗ്നിഷൻ** (NER) എന്നത് ടെക്സ്റ്റിൽ നിന്നുള്ള പ്രത്യേക എന്റിറ്റികൾ കണ്ടെത്താനുള്ള പ്രശ്നമാണ്. ഉദാഹരണത്തിന്, *ഞാൻ നാളെ പാരിസിലേക്ക് പറക്കണം* എന്ന വാചകത്തിൽ *നാളെ* എന്നത് DATE (തീയതി) എന്നെ സൂചിപ്പിക്കുന്നു, *പാരിസ്* LOCATION (സ്ഥലം) ആണ്.
-* **കീവേഡ് എക്സ്ട്രാക്ഷൻ** NER പോലെയാണ്, പക്ഷേ നമുക്ക് പ്രത്യേക എന്റിറ്റി തരം മുൻപരിചയം ഇല്ലാതെ വാചകത്തിന്റെ അർത്ഥത്തിന് പ്രധാനപ്പെട്ട വാക്കുകൾ സ്വയം കണ്ടെത്തേണ്ടതുണ്ട്.
-* **ടെക്സ്റ്റ് ക്ലസ്റ്ററിംഗ്** സമാനമായ വാചകങ്ങൾ കൂട്ടമായി ഗ്രൂപ്പ് ചെയ്യാൻ ഉപകാരപ്പെടും, ഉദാഹരണത്തിന്, ടെക്നിക്കൽ സപ്പോർട്ട് സംഭാഷണങ്ങളിൽ സമാനമായ അഭ്യർത്ഥനകൾ.
-* **ക്വഷൻ ആൻസറിംഗ്** ഒരു മോഡലിന് ഒരു പ്രത്യേക ചോദ്യത്തിന് ഉത്തരം നൽകാനുള്ള കഴിവാണ്. മോഡൽ ഒരു ടെക്സ്റ്റ് പാസേജ്, ഒരു ചോദ്യവും ഇൻപുട്ടായി സ്വീകരിച്ച്, ചോദ്യത്തിന് ഉത്തരം ഉള്ള ടെക്സ്റ്റിലെ സ്ഥലം കണ്ടെത്തണം (അല്ലെങ്കിൽ ചിലപ്പോൾ ഉത്തരം സ്വയം സൃഷ്ടിക്കണം).
-* **ടെക്സ്റ്റ് ജനറേഷൻ** ഒരു മോഡലിന് പുതിയ ടെക്സ്റ്റ് സൃഷ്ടിക്കാനുള്ള കഴിവാണ്. ഇത് ഒരു ക്ലാസിഫിക്കേഷൻ ടാസ്കായി കണക്കാക്കാം, ഒരു *ടെക്സ്റ്റ് പ്രോംപ്റ്റ്* അടിസ്ഥാനമാക്കി അടുത്ത അക്ഷരം/വാക്ക് പ്രവചിക്കുന്നത്. GPT-3 പോലുള്ള പുരോഗമിച്ച ടെക്സ്റ്റ് ജനറേഷൻ മോഡലുകൾ [prompt programming](https://towardsdatascience.com/software-3-0-how-prompting-will-change-the-rules-of-the-game-a982fbfe1e0) അല്ലെങ്കിൽ [prompt engineering](https://medium.com/swlh/openai-gpt-3-and-prompt-engineering-dcdc2c5fcd29) എന്ന സാങ്കേതിക വിദ്യ ഉപയോഗിച്ച് മറ്റ് NLP ടാസ്കുകളും പരിഹരിക്കാൻ കഴിയും.
-* **ടെക്സ്റ്റ് സംഗ്രഹണം** കമ്പ്യൂട്ടർ ഒരു നീണ്ട ടെക്സ്റ്റ് "വായിച്ച്" അതിന്റെ പ്രധാനപ്പെട്ട ഭാഗങ്ങൾ കുറച്ച് വാചകങ്ങളായി സംഗ്രഹിക്കുന്ന സാങ്കേതിക വിദ്യയാണ്.
-* **മെഷീൻ ട്രാൻസ്ലേഷൻ** ഒരു ഭാഷയിൽ ടെക്സ്റ്റ് മനസിലാക്കലും മറ്റൊരു ഭാഷയിൽ ടെക്സ്റ്റ് സൃഷ്ടിക്കലും ചേർന്ന ഒരു പ്രക്രിയയായി കാണാം.
+* **ടെക്സ്റ്റ് ക്ലാസിഫിക്കേഷൻ** എന്നത് ടെക്സ്റ്റ് സീകവൻസുകളുമായി ബന്ധപ്പെട്ട ഒരു സാധാരണ ക്ലാസിഫിക്കേഷൻ പ്രശ്നമാണ്. ഉദാഹരണങ്ങൾക്ക് ഇമെയിൽ സന്ദേശങ്ങളെ സ്പാം vs. നോ-സ്പാം ആയി തിരിച്ചറിയുക, അല്ലെങ്കിൽ ലേഖനങ്ങളെ സ്പോർട്ട്, ബിസിനസ്, പോളിറ്റിക്സ് തുടങ്ങിയ വിഭാഗങ്ങളാക്കി സെഗ്മെന്റ് ചെയ്യുക. ചാറ്റ്ബോട്ടുകൾ വികസിപ്പിക്കുമ്പോൾ, ഒരു ഉപയോക്താവ് എന്ത് പറയാൻ ആഗ്രഹിച്ചിട്ടുണ്ടെന്ന് മനസിലാക്കേണ്ടതായി വരും -- ഈ സാഹചര്യത്തിൽ നാം **ഇന്റന്റ് ക്ലാസിഫിക്കേഷൻ** കൈകാര്യം ചെയ്യുന്നു. പലപ്പോഴും, ഇന്റന്റ് ക്ലാസിഫിക്കേഷനിൽ നമുക്ക് നിരവധി വിഭാഗങ്ങൾ കൈകാര്യം ചെയ്യേണ്ടി വരും.
+* **സെന്റിമെന്റ് അനാലിസിസ്** എന്നത് ഒരു സാധാരണ റിഗ്രഷൻ പ്രശ്നമാണ്, ഇവിടെ നമുക്ക് ഒരു സംവേദനത്തിന് എന്താണത്രെ പോസിറ്റീവ് / നെഗറ്റീവ് അർത്ഥമുള്ളെന്ന് സൂചിപ്പിക്കുന്ന സംഖ്യ (സെന്റിമെന്റ്) നൽകിയിരിക്കുന്നു. സെന്റിമെന്റ് അനാലിസിസിന്റെ കൂടുതൽ പുരോഗമനമായ പതിപ്പ് **അസ്പെക്റ്റ്-ബേസ്ഡ് സെന്റിമെന്റ് അനാലിസിസ്** (ABSA) ആണ്, ഇവിടെ നമുക്ക് സെന്റിമെന്റ് മുഴുവൻ വാക്യത്തിനല്ല, വാക്യത്തിലെ വ്യത്യസ്ത ഭാഗങ്ങൾക്കു (അസ്പെക്റ്റുകൾ) തന്നെ നൽകേണ്ടിവരുന്നു, ഉദാ. *ഈ റെസ്റ്റോറന്റിൽ എനിക്ക് ഭക്ഷണം ഇഷ്ടപ്പെട്ടെങ്കിലും അന്തരീക്ഷം ഭയങ്കരമായിരുന്നു*.
+* **നെയിംഡ് എന്റിറ്റി റികഗ്നിഷൻ** (NER) എന്നത് ടെക്സ്റ്റിൽ നിന്നും ചില പ്രത്യേക എന്റിറ്റികൾ കണ്ടെത്തുക എന്ന പ്രശ്നമാണ്. ഉദാഹരണത്തിന്, *ഞാൻ നാളെ പാരിസിലേക്ക് പറക്കണം* എന്ന വാചകത്തിൽ *നാളെ* DATE-നെയാണ് സൂചിപ്പിക്കുന്നത്, കൂടാതെ *പാരിസ്* ഒരു LOCATION ആണ്.
+* **കീവേഡ് എക്സ്ട്രാക്ഷൻ** NER-നെ പോലെയാണ്, എന്നാൽ നമുക്ക് നിർദ്ദിഷ്ട എന്റിറ്റി ടൈപ്പുകൾക്ക് പ്രീരക്ഷലക്ഷ്യമായി പരിശീലനം ലഭ്യമാക്കാതെ തന്നെ വാക്യത്തിന്റെ അർത്ഥത്തിന് പ്രധാനപ്പെട്ട വാക്കുകൾ സ്വയം തിരിച്ചെടുക്കേണ്ടിവരുന്നതാണ്.
+* **ടെക്സ്റ്റ് ക്ലസ്റ്ററിംഗ്** സാധാരണയായി സമാനമായ വാക്യങ്ങളെ കൂട്ടത്തിൽ കൂട്ടാനായി ഉപയോഗിക്കുന്നു, ഉദാഹരണത്തിന് സാങ്കേതിക പിന്തുണ സംഭാഷണങ്ങളിൽ സമാനമായ അഭ്യർത്ഥനകൾ.
+* **ചോദ്യം-ഉത്തരം** എന്ന് പറയുന്നത് ഒരു മോഡലിനു ഒരു പ്രത്യേക ചോദ്യത്തിന് ഉത്തരം നൽകാനുള്ള കഴിവ് ആണ്. മോഡൽ ഒരു ടെക്സ്റ്റ് ഭാഗവും ഒരു ചോദ്യവും ഇൻപുട്ട് ആയി സ്വീകരിച്ച്, ചോദ്യത്തിനു ഉത്തരം ഉണ്ടാകുന്ന ടെക്സ്റ്റിൽ സ്ഥലം കണ്ടെത്തണം (അല്ലെങ്കിൽ ചിലപ്പോൾ ഉത്തരം തന്നെ സൃഷ്ടിക്കണം).
+* **ടെക്സ്റ്റ് ജനറേഷൻ** എന്നത് ഒരു മോഡൽ പുതിയ ടെക്സ്റ്റ് സൃഷ്ടിക്കുന്ന കഴിവാണ്. ഇത് ഒരു ക്ലാസിഫിക്കേഷൻ ടാസ്കായി പരിഗണിക്കാം, എന്തെന്നാൽ ചില *ടെക്സ്റ്റ് പ്രോംപ്* അടിസ്ഥാനമാക്കി അടുത്ത അക്ഷരത്തെ/വാക്കിനെ പ്രവചിക്കുന്നത്. ജിപിടി-3 പോലുള്ള ആധുനിക ടെക്സ്റ്റ് ജനറേഷൻ മോഡലുകൾ [prompt programming](https://towardsdatascience.com/software-3-0-how-prompting-will-change-the-rules-of-the-game-a982fbfe1e0) അല്ലെങ്കിൽ [prompt engineering](https://medium.com/swlh/openai-gpt-3-and-prompt-engineering-dcdc2c5fcd29) എന്ന സാങ്കേതികവിദ്യകൾ ഉപയോഗിച്ച് ക്ലാസിഫിക്കേഷൻ പോലുള്ള മറ്റു NLP ടാസ്കുകളും പരിഹരിക്കാൻ കഴിവുണ്ട്.
+* **ടെക്സ്റ്റ് സംഗ്രഹീകരണം** എന്നത് കമ്പ്യൂട്ടർ ഒരു നീണ്ട് കടുത്ത ടെക്സ്റ്റ് "വായിച്ച്" അത് കുറച്ചുപേരെ വാക്യങ്ങളായി ചുരുക്കിക്കൊടുക്കുന്ന സാങ്കേതികവിദ്യയാണ്.
+* **മെഷീൻ വിവർത്തനം** എന്ന് പറയുന്നത് ഒരു ഭാഷയിൽ ടെക്സ്റ്റ് മനസ്സിലാക്കലും മറ്റൊരു ഭാഷയിൽ ടെക്സ്റ്റ് സൃഷ്ടിക്കലും ചേരുന്ന പ്രശ്നമായി കാണാം.
-ആദ്യകാലത്ത്, NLP ടാസ്കുകൾ പ്രധാനമായും വ്യാകരണങ്ങൾ പോലുള്ള പരമ്പരാഗത രീതികൾ ഉപയോഗിച്ച് പരിഹരിക്കപ്പെട്ടിരുന്നു. ഉദാഹരണത്തിന്, മെഷീൻ ട്രാൻസ്ലേഷനിൽ പാഴ്സറുകൾ ഉപയോഗിച്ച് പ്രാരംഭ വാചകം സിന്റാക്സ് ട്രീയിലേക്ക് മാറ്റി, പിന്നീട് വാചകത്തിന്റെ അർത്ഥം പ്രതിനിധീകരിക്കുന്ന ഉയർന്ന തലത്തിലുള്ള സെമാന്റിക് ഘടനകൾ കണ്ടെത്തി, ആ അർത്ഥവും ലക്ഷ്യഭാഷയുടെ വ്യാകരണവും അടിസ്ഥാനമാക്കി ഫലം സൃഷ്ടിച്ചിരുന്നു. ഇന്നത്തെ കാലത്ത്, പല NLP ടാസ്കുകളും ന്യൂറൽ നെറ്റ്വർക്കുകൾ ഉപയോഗിച്ച് കൂടുതൽ ഫലപ്രദമായി പരിഹരിക്കപ്പെടുന്നു.
+ആദ്യം, അധികം NLP ടാസ്കുകൾ പരമ്പരാഗത രീതികളായ വ്യാകരണങ്ങൾ ഉപയോഗിച്ച് പരിഹരിച്ചിരുന്നു. ഉദാഹരണത്തിന്, മെഷീൻ വിവർത്തനത്തിൽ ആരംഭത്തെ വാക്യം സിന്റാക്സ് ട്രീയെ മാറ്റാൻ പാർസറുകൾ ഉപയോഗിച്ചു, തുടർന്ന് വാക്യത്തിന്റെ അർത്ഥം പ്രതിനിധാനം ചെയ്യാൻ ഉയർന്ന തലത്തിലുള്ളസെമാന്റിക് ഘടകങ്ങൾ എടുക്കപ്പെട്ടു, പിന്നീട് ഈ അർത്ഥവും ലക്ഷ്യഭാഷയുടെ വ്യാകരണവും അടിസ്ഥാനമാക്കി ഫലം സൃഷ്ടിച്ചു. ഇക്കാലത്ത്, പല NLP ടാസ്കുകളും ന്യൂറൽ നെറ്റ്വർക്കുകൾ ഉപയോഗിച്ച് കൂടുതൽ ഫലപ്രദമായി പരിഹരിക്കപ്പെടുന്നു.
-> പല ക്ലാസിക്കൽ NLP രീതികളും [Natural Language Processing Toolkit (NLTK)](https://www.nltk.org) പൈതൺ ലൈബ്രറിയിൽ നടപ്പിലാക്കിയിട്ടുണ്ട്. വിവിധ NLP ടാസ്കുകൾ NLTK ഉപയോഗിച്ച് എങ്ങനെ പരിഹരിക്കാമെന്ന് വിശദീകരിക്കുന്ന മികച്ച [NLTK ബുക്ക്](https://www.nltk.org/book/) ഓൺലൈനിൽ ലഭ്യമാണ്.
+> അനേകം ക്ലാസിക്കൽ NLP രീതികൾ [Natural Language Processing Toolkit (NLTK)](https://www.nltk.org) പൈത്തൺ ലൈബ്രറിയിൽ നടപ്പിലാക്കപ്പെട്ടിരിക്കുന്നു. വിവിധ NLP ടാസ്കുകൾ NLTK ഉപയോഗിച്ച് എങ്ങനെ പരിഹരിക്കാമെന്ന് പൂർണ്ണമായും വിശദീകരിക്കുന്ന [NLTK പുസ്തകം](https://www.nltk.org/book/) ഓൺലൈനിൽ ലഭ്യമാണ്.
-നമ്മുടെ കോഴ്സിൽ, നാം പ്രധാനമായും NLP-ക്കായി ന്യൂറൽ നെറ്റ്വർക്കുകൾ ഉപയോഗിക്കുന്നതിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കും, ആവശ്യമായിടത്ത് NLTK ഉപയോഗിക്കും.
+നമ്മുടെ കോഴ്സിൽ, നാം പ്രധാനമായും NLP-ക്ക് ന്യൂറൽ നെറ്റ്വർക്കുകൾ ഉപയോഗിക്കുന്നതിൽ ശ്രദ്ധിക്കും, ആവശ്യമായിടത്ത് NLTK-യും ഉപയോഗിക്കും.
-നാം ഇതിനകം ടാബുലാർ ഡാറ്റയും ചിത്രങ്ങളും കൈകാര്യം ചെയ്യാൻ ന്യൂറൽ നെറ്റ്വർക്കുകൾ ഉപയോഗിക്കുന്നതിനെക്കുറിച്ച് പഠിച്ചിട്ടുണ്ട്. ആ ഡാറ്റാ തരം들과 ടെക്സ്റ്റ് തമ്മിലുള്ള പ്രധാന വ്യത്യാസം, ടെക്സ്റ്റ് ഒരു വ്യത്യസ്ത നീളമുള്ള സീക്വൻസാണ്, എന്നാൽ ചിത്രങ്ങളുടെ ഇൻപുട്ട് വലുപ്പം മുൻകൂട്ടി അറിയപ്പെടുന്നു. കോൺവല്യൂഷണൽ നെറ്റ്വർക്കുകൾ ഇൻപുട്ടിൽ നിന്നുള്ള പാറ്റേണുകൾ കണ്ടെത്താൻ കഴിയും, പക്ഷേ ടെക്സ്റ്റിലെ പാറ്റേണുകൾ കൂടുതൽ സങ്കീർണ്ണമാണ്. ഉദാ: നിഷേധം വിഷയം മുതൽ അകലെ പല വാക്കുകൾക്കായി വേർതിരിക്കപ്പെട്ടാലും (ഉദാ: *I do not like oranges* vs. *I do not like those big colorful tasty oranges*), അത് ഒരേ പാറ്റേണായി വ്യാഖ്യാനിക്കണം. അതിനാൽ, ഭാഷ കൈകാര്യം ചെയ്യാൻ നാം പുതിയ ന്യൂറൽ നെറ്റ്വർക്ക് തരംകൾ, ഉദാ: *റികറന്റ് നെറ്റ്വർക്കുകൾ* (RNN)യും *ട്രാൻസ്ഫോർമറുകളും* പരിചയപ്പെടുത്തേണ്ടതുണ്ട്.
+നാം ഇതിനകം തന്നെ ടാബുലർ ഡാറ്റയും ചിത്രങ്ങളുമായുള്ള പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ ന്യൂറൽ നെറ്റ്വർക്കുകൾ ഉപയോഗിക്കുന്നതിനെക്കുറിച്ച് പഠിച്ചിട്ടുണ്ട്. ആ ഡാറ്റാ തരംകാളും ടെക്സ്റ്റിന്റെ പ്രധാന വ്യത്യാസം അത് സൂചിപ്പിക്കുന്നത് ടെക്സ്റ്റ് വ്യത്യസ്ത നീളമുള്ള ശ്രേണി ആയിരിക്കുകയാണ്, ചിത്രങ്ങളിൽ മുൻകൂട്ടി ഇൻപുട്ട് വലിപ്പം അറിയാവുന്നതാണ്. കോൺവല്യൂഷണൽ നെറ്റ്വർക്കുകൾ ഇൻപുട്ടിൽ നിന്നുള്ള പാറ്റേണുകൾ കണ്ടെത്താൻ കഴിയുന്നിട്ടും, ടെക്സ്റ്റിന്റെ പാറ്റേണുകൾ കൂടുതൽ സങ്കീർണ്ണമാണ്. ഉദാ., നിങ്ങൾക്ക് നിഷേധം സബ്ജക്റ്റിൽ നിന്ന് വേർതിരിച്ചിട്ടുണ്ടാകാവുന്നതും വിശാലമായി പല വാക്കുകളേക്കൂടി നീണ്ടു പോകുന്നതിനാലും (ഉദാ., *എനിക്ക് ഓറഞ്ചുകൾ ഇഷ്ടമല്ല*, vs. *എനിക്ക് ആ വലിയ, നിറം നിറഞ്ഞ, രുചികരമായ ഓറഞ്ചുകൾ ഇഷ്ടമല്ല*) അത് എങ്കിലും ഒന്നായി വ്യാഖ്യാനിക്കണം. അതിനാൽ, ഭാഷ കൈകാര്യം ചെയ്യാൻ നമുക്ക് പുതിയ ന്യൂറൽ നെറ്റ്വർക് തരം, ഉദാഹരണത്തിന് *റികറന്റ് നെറ്റ്വർക്കുകൾ* വരുത്തേണ്ടിവരും, കൂടാതെ *ട്രാൻസ്ഫോർമറുകൾ*.
## ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്യുക
-നിങ്ങൾ ഈ കോഴ്സ് റൺ ചെയ്യാൻ ലോക്കൽ പൈതൺ ഇൻസ്റ്റലേഷൻ ഉപയോഗിക്കുന്നുവെങ്കിൽ, താഴെ കാണുന്ന കമാൻഡുകൾ ഉപയോഗിച്ച് NLP-ക്കായി ആവശ്യമായ എല്ലാ ലൈബ്രറികളും ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ടാകും:
+നിങ്ങൾ ഈ കോഴ്സ് പ്രവർത്തിപ്പിക്കാൻ നിങ്ങളുടെ ലൊക്കൽ പൈത്തൺ ഇൻസ്റ്റലേഷൻ ഉപയോഗിക്കുന്നുവെങ്കിൽ, താഴെയുള്ള കമാൻഡുകൾ ഉപയോഗിച്ച് NLP-ക്ക് ആവശ്യമായ എല്ലാ ലൈബ്രറികളും ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതാകാം:
-**PyTorch-ക്കായി**
+**പൈടോർച്ചിനായി**
```bash
-pip install -r requirements-torch.txt
+pip install -r requirements-pytorch.txt
```
-**TensorFlow-ക്കായി**
+**ടെൻസർഫ്ലോയ്ക്ക്**
```bash
pip install -r requirements-tf.txt
```
-> TensorFlow ഉപയോഗിച്ച് NLP പരീക്ഷിക്കാൻ [Microsoft Learn](https://docs.microsoft.com/learn/modules/intro-natural-language-processing-tensorflow/?WT.mc_id=academic-77998-cacaste) സന്ദർശിക്കാം
+> [Microsoft Learn](https://docs.microsoft.com/learn/modules/intro-natural-language-processing-tensorflow/?WT.mc_id=academic-77998-cacaste)ൽ ടെൻസർഫ്ലോ ഉപയോഗിച്ച് NLP പരീക്ഷിക്കാം
## GPU മുന്നറിയിപ്പ്
-ഈ ഭാഗത്തിൽ, ചില ഉദാഹരണങ്ങളിൽ നാം വളരെ വലിയ മോഡലുകൾ പരിശീലിപ്പിക്കും.
-* **GPU-സഹായമുള്ള കമ്പ്യൂട്ടർ ഉപയോഗിക്കുക**: വലിയ മോഡലുകളുമായി ജോലി ചെയ്യുമ്പോൾ കാത്തിരിപ്പു കുറയ്ക്കാൻ GPU-സഹായമുള്ള കമ്പ്യൂട്ടറിൽ നിങ്ങളുടെ നോട്ട്ബുക്കുകൾ പ്രവർത്തിപ്പിക്കുന്നത് ഉചിതമാണ്.
-* **GPU മെമ്മറി പരിമിതികൾ**: വലിയ മോഡലുകൾ പരിശീലിപ്പിക്കുമ്പോൾ GPU മെമ്മറി തീരാൻ സാധ്യതയുണ്ട്.
-* **GPU മെമ്മറി ഉപയോഗം**: പരിശീലന സമയത്ത് GPU മെമ്മറി ഉപയോഗം മിനിബാച്ച് വലുപ്പം പോലുള്ള പല ഘടകങ്ങളിൽ ആശ്രയിച്ചിരിക്കും.
-* **മിനിബാച്ച് വലുപ്പം കുറയ്ക്കുക**: GPU മെമ്മറി പ്രശ്നങ്ങൾ നേരിടുമ്പോൾ, കോഡിൽ മിനിബാച്ച് വലുപ്പം കുറയ്ക്കുന്നത് പരിഹാരമായി പരിഗണിക്കാം.
-* **TensorFlow GPU മെമ്മറി റിലീസ്**: പഴയ TensorFlow പതിപ്പുകൾ ഒരേ പൈതൺ കർണലിൽ പല മോഡലുകളും പരിശീലിപ്പിക്കുമ്പോൾ GPU മെമ്മറി ശരിയായി റിലീസ് ചെയ്യാതെ പോകാം. GPU മെമ്മറി ഉപയോഗം കാര്യക്ഷമമായി നിയന്ത്രിക്കാൻ TensorFlow-നെ ആവശ്യത്തിന് മാത്രമേ GPU മെമ്മറി അനുവദിക്കൂവാൻ ക്രമീകരിക്കാം.
-* **കോഡ് ഉൾപ്പെടുത്തൽ**: TensorFlow GPU മെമ്മറി ആവശ്യത്തിന് മാത്രമേ വർദ്ധിപ്പിക്കൂവാൻ താഴെ കാണുന്ന കോഡ് നിങ്ങളുടെ നോട്ട്ബുക്കുകളിൽ ഉൾപ്പെടുത്തുക:
+ഈ വിഭാഗത്തിൽ ചില ഉദാഹരണങ്ങളിൽ നാം വളരെ വലിയ മോഡലുകൾ പരിശീലിപ്പിക്കും.
+* **GPU-സംയോജിത കമ്പ്യൂട്ടർ ഉപയോഗിക്കുക**: വലിയ മോഡലുകളോടൊപ്പം പ്രവർത്തിക്കുമ്പോൾ കാത്തിരിപ്പ് സമയം കുറയ്ക്കാൻ GPU-സംയോജിത കമ്പ്യൂട്ടറിൽ നിങ്ങളുടെ നോട്ട്ബുക്കുകൾ പ്രവർത്തിപ്പിക്കുന്നത് ശുപാർശ ചെയ്യപ്പെടുന്നു.
+* **GPU ഓർമ്മാ പരിമിതികൾ**: വലിയ മോഡലുകൾ പരിശീലിപ്പിക്കുമ്പോൾ GPU ഓർമ്മ കാണാൻ കഴിയുന്ന പ്രശ്നങ്ങൾ ഉണ്ടാകാം.
+* **GPU ഓർമ്മ ഉപയോഗം**: പരിശീലന സമയത്ത് ഉപയോഗിക്കുന്ന GPU ഓർമ്മയുടെ അളവ് മിനിബാച്ച് വലിപ്പം പോലുള്ള നിരവധി ഘടകങ്ങളിൽ ആശ്രയിച്ചിരിക്കുന്നു.
+* **മിനിബാച്ച് വലിപ്പം കുറഞ്ഞു**: GPU ഓർമ്മ പ്രശ്നങ്ങൾ അനുഭവപ്പെട്ടാൽ, നിങ്ങളുടെ കോഡിൽ മിനിബാച്ച് വലിപ്പം കുറയ്ക്കുക.
+* **ടെൻസർഫ്ലോ GPU ഓർമ്മ റിലീസ്**: പഴയ പതിപ്പുകളുടെ ടെൻസർഫ്ലോ പൈത്തൺ കർണലിൽ ഒരേ സമയത്ത് നിരവധി മോഡലുകൾ പരിശീലിപ്പിക്കുമ്പോൾ GPU ഓർമ്മ ശരിയായി വിടുന്നില്ല. GPU ഓർമ്മ ഉപയോഗം കാര്യക്ഷമമായി നിയന്ത്രിക്കാൻ, ആവശ്യപ്പെടുമ്പോൾ മാത്രമേ GPU ഓർമ്മ അലോക്കേറ്റ് ചെയ്യുന്നതായി ടെൻസർഫ്ലോ ക്രമീകരിക്കാം.
+* **കോഡ് ഉൾക്കൊള്ളിക്കൽ**: ടെൻസർഫ്ലോ GPU ഓർമ്മ അലോക്കേഷൻ വെറും ആവശ്യത്തിനു മാത്രമേ വർദ്ധിപ്പിക്കൂ എന്ന് ക്രമീകരിക്കുന്നതിന്, നിങ്ങളുടെ നോട്ട്ബുക്കുകളിൽ താഴെയുള്ള കോഡ് ഉൾപ്പെടുത്തുക:
```python
physical_devices = tf.config.list_physical_devices('GPU')
@@ -53,21 +53,21 @@ if len(physical_devices)>0:
tf.config.experimental.set_memory_growth(physical_devices[0], True)
```
-ക്ലാസിക്കൽ മെഷീൻ ലേണിംഗ് ദൃഷ്ടികോണത്തിൽ നിന്ന് NLP പഠിക്കാൻ താൽപര്യമുണ്ടെങ്കിൽ, [ഈ പാഠമാല](https://github.com/microsoft/ML-For-Beginners/tree/main/6-NLP) സന്ദർശിക്കുക
+ക്ലാസിക്കൽ ML വീക്ഷണത്തിൽ നിന്നുള്ള NLP പഠിക്കാൻ ആഗ്രഹിക്കുന്നവർക്ക് [ഇവിടെ ചില പാഠങ്ങൾ](https://github.com/microsoft/ML-For-Beginners/tree/main/6-NLP) സന്ദർശിക്കുക
-## ഈ ഭാഗത്തിൽ
-ഈ ഭാഗത്തിൽ നാം പഠിക്കേണ്ടത്:
+## ഈ വിഭാഗത്തിൽ
+ഈ വിഭാഗത്തിൽ നാം പഠിക്കാനിരിക്കുന്നത്:
-* [ടെക്സ്റ്റ് ടെൻസറുകളായി പ്രതിനിധീകരിക്കൽ](13-TextRep/README.md)
-* [വാക്ക് എംബെഡ്ഡിംഗുകൾ](14-Emdeddings/README.md)
+* [ടെക്സ്റ്റ് ടെൻസറുകളായി പ്രതിപാദിക്കൽ](13-TextRep/README.md)
+* [വാക്ക് എംബെഡ്ഡിംഗ്സ്](14-Emdeddings/README.md)
* [ഭാഷാ മോഡലിംഗ്](15-LanguageModeling/README.md)
-* [റികറന്റ് ന്യൂറൽ നെറ്റ്വർക്കുകൾ](16-RNN/README.md)
+* [റികറന്റ് ന്യൂറൽ നെറ്റ്വർക്സ്](16-RNN/README.md)
* [ജനറേറ്റീവ് നെറ്റ്വർക്കുകൾ](17-GenerativeNetworks/README.md)
* [ട്രാൻസ്ഫോർമറുകൾ](18-Transformers/README.md)
---
-**അസൂയാ**:
-ഈ രേഖ AI വിവർത്തന സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് വിവർത്തനം ചെയ്തതാണ്. നാം കൃത്യതയ്ക്ക് ശ്രമിച്ചിട്ടുണ്ടെങ്കിലും, സ്വയം പ്രവർത്തിക്കുന്ന വിവർത്തനങ്ങളിൽ പിശകുകൾ അല്ലെങ്കിൽ തെറ്റുകൾ ഉണ്ടാകാമെന്ന് ദയവായി ശ്രദ്ധിക്കുക. അതിന്റെ മാതൃഭാഷയിലുള്ള യഥാർത്ഥ രേഖ അധികാരപരമായ ഉറവിടമായി കണക്കാക്കണം. നിർണായക വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ വിവർത്തനം ശുപാർശ ചെയ്യപ്പെടുന്നു. ഈ വിവർത്തനത്തിന്റെ ഉപയോഗത്തിൽ നിന്നുണ്ടാകുന്ന ഏതെങ്കിലും തെറ്റിദ്ധാരണകൾക്കോ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കോ ഞങ്ങൾ ഉത്തരവാദികളല്ല.
+**അറിയിപ്പ്**:
+ഈ രേഖ AI പരിഭാഷാ സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. ഞങ്ങൾ കൃത്യതയ്ക്കായി ശ്രമിക്കുന്നുവെങ്കിലും, ഓട്ടോമേറ്റഡ് പരിഭാഷകളിൽ പിഴവുകൾ അല്ലെങ്കിൽ തെറ്റായ വിവരങ്ങൾ ഉണ്ടാകാൻ സാധ്യതയുണ്ട്. അതിന്റെ സ്വാഭാവിക ഭാഷയിലുള്ള അസൽ രേഖയാണ് പ്രാമാണികമായ ഉറവിടമായി പരിഗണിക്കേണ്ടത്. നിർണായകമായ വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷ ശുപാർശ ചെയ്യുന്നു. ഈ പരിഭാഷ ഉപയോഗിച്ച് ഉണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾ അല്ലെങ്കിൽ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കായി ഞങ്ങൾ ഉത്തരവാദികളല്ല.
\ No newline at end of file