diff --git a/translations/mr/.co-op-translator.json b/translations/mr/.co-op-translator.json
index 9040805c..04ffdb34 100644
--- a/translations/mr/.co-op-translator.json
+++ b/translations/mr/.co-op-translator.json
@@ -5,6 +5,12 @@
"source_file": "AGENTS.md",
"language_code": "mr"
},
+ "CONTRIBUTING.md": {
+ "original_hash": "c6fd7e781b67111a90abd166d0ce4aa0",
+ "translation_date": "2026-07-08T22:02:16+00:00",
+ "source_file": "CONTRIBUTING.md",
+ "language_code": "mr"
+ },
"README.md": {
"original_hash": "12c8eb6bf0867d2f1c32daf613ac5b8b",
"translation_date": "2026-04-06T20:39:56+00:00",
@@ -17,6 +23,19 @@
"source_file": "SECURITY.md",
"language_code": "mr"
},
+ "__translation_failures__": {
+ "lessons/sketchnotes/LICENSE.md": {
+ "original_hash": "45ab63a2cd8f5faef6c9b150618837a4",
+ "source_file": "lessons/sketchnotes/LICENSE.md",
+ "language_code": "mr",
+ "failure_date": "2026-07-08T21:49:35+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-08-26T11:17:15+00:00",
@@ -54,8 +73,8 @@
"language_code": "mr"
},
"examples/README.md": {
- "original_hash": "0d1babfdcbeb46525f2db3fbaaa54cd7",
- "translation_date": "2025-10-03T11:29:04+00:00",
+ "original_hash": "7883d52c2e2a221e0b07a7b112a149b9",
+ "translation_date": "2026-07-08T21:45:14+00:00",
"source_file": "examples/README.md",
"language_code": "mr"
},
@@ -66,8 +85,8 @@
"language_code": "mr"
},
"lessons/0-course-setup/how-to-run.md": {
- "original_hash": "a4717bd9103b9f6cd84d534b83534689",
- "translation_date": "2026-01-15T13:09:07+00:00",
+ "original_hash": "7ad8c7d8604c53649b3d4d1e2f3a6fa1",
+ "translation_date": "2026-07-08T21:45:36+00:00",
"source_file": "lessons/0-course-setup/how-to-run.md",
"language_code": "mr"
},
@@ -191,6 +210,12 @@
"source_file": "lessons/4-ComputerVision/08-TransferLearning/TrainingTricks.md",
"language_code": "mr"
},
+ "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb": {
+ "original_hash": "99b816b6a4957ef4100cee4c4221dff9",
+ "translation_date": "2026-07-08T21:41:08+00:00",
+ "source_file": "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb",
+ "language_code": "mr"
+ },
"lessons/4-ComputerVision/08-TransferLearning/lab/README.md": {
"original_hash": "7765935c35fcee69b9fe2d0cfd6963e2",
"translation_date": "2025-08-26T09:53:03+00:00",
@@ -330,8 +355,8 @@
"language_code": "mr"
},
"lessons/5-NLP/README.md": {
- "original_hash": "8ef02a9318257ea140ed3ed74442096d",
- "translation_date": "2025-08-26T08:04:03+00:00",
+ "original_hash": "038df6f1a73e49f6430740da083bfd6d",
+ "translation_date": "2026-07-08T21:46:01+00:00",
"source_file": "lessons/5-NLP/README.md",
"language_code": "mr"
},
diff --git a/translations/mr/CONTRIBUTING.md b/translations/mr/CONTRIBUTING.md
new file mode 100644
index 00000000..aca99806
--- /dev/null
+++ b/translations/mr/CONTRIBUTING.md
@@ -0,0 +1,29 @@
+# AI-For-Beginners मध्ये योगदान देणे
+
+AI-For-Beginners मध्ये योगदान देण्यास तुमच्या स्वारस्याबद्दल धन्यवाद! आम्ही भाषांतर, धडा दुरुस्ती, आणि फॉरमॅटिंग सुधारणा स्वागत करतो.
+
+## मायक्रोसॉफ्ट कॉन्ट्रिब्युटर लाइसेंस करार (CLA)
+
+हा प्रकल्प योगदान आणि सुचना स्वीकारतो. बहुतेक योगदानांसाठी तुम्हाला कॉन्ट्रिब्युटर लाइसेंस करार (CLA) ला सहमती द्यावी लागते ज्यात तुम्ही सांगता की तुम्हाला तुमचे योगदान वापरण्याचा अधिकार आहे आणि तुम्ही प्रत्यक्षात आम्हाला ते अधिकार देत आहात. तपशीलांसाठी भेट द्या [https://cla.microsoft.com](https://cla.microsoft.com).
+
+जेव्हा तुम्ही पुल रिक्वेस्ट सबमिट करता, तेव्हा CLA-बॉट आपोआप ठरवेल की तुम्हाला CLA प्रदान करणे आवश्यक आहे का आणि योग्यरित्या PR सजवेल (उदा., लेबल, टिप्पणी). फक्त बॉटने दिलेल्या सूचनांचे पालन करा. आपल्याला आमच्या 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/mr/examples/README.md b/translations/mr/examples/README.md
index 3bd36092..7a2d503d 100644
--- a/translations/mr/examples/README.md
+++ b/translations/mr/examples/README.md
@@ -1,85 +1,87 @@
-# 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 स्थापित आहे (आवश्यकतेनुसार ३.८ किंवा त्याहून अधिक आवृत्ती शिफारसीय). आवश्यक पॅकेजेस स्थापित करा:
```bash
-# For Python scripts
+# पायथन स्क्रिप्टसाठी
pip install numpy
-# For Jupyter notebooks (image classifier)
+# जुपिटर नोटबुकसाठी (प्रतिमा वर्गीकरणासाठी)
pip install jupyter numpy pillow tensorflow
```
-किंवा मुख्य अभ्यासक्रमातील conda पर्यावरण वापरा:
+किंवा मुख्य अभ्यासक्रमातील conda एन्व्हायर्नमेंट वापरा:
```bash
conda env create --name ai4beg --file ../environment.yml
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. **सोपं न्यूरल नेटवर्क तयार करा** - न्यूरल नेटवर्क कसे कार्य करतात याचे आकलन करा
+3. **इमेज क्लासिफायर वापरून पाहा** - प्रत्यक्ष प्रतिमांसह AI बघा
+4. **मजकूर भावना विश्लेषण करा** - नॅचरल लेंग्वेज प्रोसेसिंगचा अभ्यास करा
-## 💡 नवशिक्यांसाठी टिप्स
+## 💡 नवशिक्यांसाठी टीपा
-- **कोड टिप्पण्या काळजीपूर्वक वाचा** - प्रत्येक ओळ काय करते ते समजावून सांगतात
-- **प्रयोग करा!** - मूल्ये बदलून पहा आणि काय होते ते पहा
-- **सर्वकाही समजून घेण्याची चिंता करू नका** - शिकण्यासाठी वेळ लागतो
-- **प्रश्न विचारा** - [Discussion board](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/5-NLP/README.md)
-## 🤝 योगदान
+## 🤝 योगदान करा
-ही उदाहरणे उपयुक्त वाटली? त्यांना सुधारण्यात मदत करा:
+या उदाहरणांनी मदत झाली का? आम्हाला त्यांना सुधारण्यात मदत करा:
- समस्या नोंदवा किंवा सुधारणा सुचवा
-- नवशिक्यांसाठी अधिक उदाहरणे जोडा
-- दस्तऐवज आणि टिप्पण्या सुधारित करा
+- नवशिक्यासाठी अधिक उदाहरणे जोडा
+- दस्तऐवजीकरण आणि टिप्पण्या सुधारित करा
---
-*लक्षात ठेवा: प्रत्येक तज्ञ एकदा नवशिक्या होता. आनंदाने शिका! 🎓*
+*स्मरण ठेवा: प्रत्येक तज्ञ एकवेळेस नवशिक्या असतो. आनंदाने शिकत राहा! 🎓*
---
-**अस्वीकरण**:
-हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) चा वापर करून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात ठेवा की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेचा अभाव असू शकतो. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून उद्भवलेल्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.
\ No newline at end of file
+
+**अस्वीकरण**:
+हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) चा वापर करून अनुवादित केला आहे. जरी आम्ही अचूकतेसाठी प्रयत्न करतो, तरी कृपया लक्षात घ्या की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेची कमतरता असू शकते. मूळ दस्तऐवज त्याच्या मूळ भाषेत अधिकृत स्रोत मानला पाहिजे. महत्त्वाची माहिती असल्यास, व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराच्या वापरामुळे उद्भवणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थलावणीसाठी आम्ही जबाबदार नाही.
+
\ No newline at end of file
diff --git a/translations/mr/lessons/0-course-setup/how-to-run.md b/translations/mr/lessons/0-course-setup/how-to-run.md
index 010a1f3b..da757758 100644
--- a/translations/mr/lessons/0-course-setup/how-to-run.md
+++ b/translations/mr/lessons/0-course-setup/how-to-run.md
@@ -1,12 +1,12 @@
# कोड कसा चालवायचा
-या अभ्यासक्रमात चालवायच्या उदाहरणे आणि लॅब्स बऱ्याच आहेत. हे चालवण्यासाठी, तुम्हाला Jupyter Notebooks मध्ये Python कोड एक्सेक्यूट करण्याची क्षमता आवश्यक आहे जी या अभ्यासक्रमाचा भाग म्हणून दिली आहे. कोड चालवण्यासाठी तुम्हाकडे काही पर्याय आहेत:
+या अभ्यासक्रमामध्ये अनेक अंमलात आणता येणारे उदाहरणे आणि प्रयोगशाळा आहेत ज्यांना तुम्हाला चालवायचे असेल. हे करण्यासाठी, या अभ्यासक्रमाचा भाग म्हणून दिलेल्या Jupyter Notebooks मध्ये Python कोड चालवण्याची क्षमता असायला हवी. कोड चालवण्यासाठी तुमच्याकडे अनेक पर्याय आहेत:
-## तुमच्या संगणकावर स्थानिकरित्या चालवा
+## तुमच्या संगणकावर स्थानिकपणे चालवा
-कोड तुमच्या संगणकावर स्थानिकरित्या चालवण्यासाठी, Python इन्स्टॉलेशन आवश्यक आहे. एक शिफारस म्हणजे **[miniconda](https://conda.io/en/latest/miniconda.html)** इन्स्टॉल करणे — हे तुलनेने हलके इन्स्टॉलेशन आहे जे `conda` पॅकेज मॅनेजरला विविध Python **वर्च्युअल एन्व्हायर्नमेंट्स** साठी समर्थन देते.
+तुमच्या संगणकावर कोड स्थानिकपणे चालवण्यासाठी, Python ची स्थापना आवश्यक आहे. एक शिफारस म्हणजे **[miniconda](https://conda.io/en/latest/miniconda.html)** इंस्टॉल करणे - हे एक तुलनेत हलके इंस्टॉलेशन आहे जे विविध Python **व्हर्चुअल एन्व्हायर्नमेंट्स** साठी `conda` पॅकेज मॅनेजरला समर्थन देते.
-miniconda इन्स्टॉल केल्यानंतर, रेपॉजिटरी क्लोन करा आणि या अभ्यासक्रमासाठी वापरण्यासाठी एक वर्च्युअल एन्व्हायर्नमेंट तयार करा:
+miniconda इंस्टॉल केल्यानंतर, रिपॉझिटरी क्लोन करा आणि या कोर्ससाठी वापरायच्या व्हर्चुअल एन्व्हायर्नमेंटची निर्मिती करा:
```bash
git clone http://github.com/microsoft/ai-for-beginners
@@ -17,17 +17,17 @@ conda activate ai4beg
### 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 सुद्धा इन्स्टॉल करावे लागेल.
+> **टीप**: एकदा तुम्ही क्लोन केल्यावर VS Code मध्ये डायरेक्टरी उघडल्यानंतर, तो आपोआप Python एक्स्टेंशन्स इंस्टॉल करण्याचा सल्ला देईल. तुम्हाला वर वर्णन केल्याप्रमाणे miniconda देखील इंस्टॉल करावा लागेल.
-> **टीप**: जर VS Code तुम्हाला रेपॉजिटरी कंटेनरमध्ये पुन्हा उघडण्याचा सल्ला देतो, तर स्थानिक Python इन्स्टॉलेशन वापरण्यासाठी हे नाकारावे.
+> **टीप**: जर VS Code तुम्हाला कंटेनरमध्ये रिपॉझिटरी पुन्हा उघडण्याचा प्रस्तावित करत असेल, तर स्थानिक Python इंस्टॉलेशन वापरण्यासाठी तुम्ही हे नाकारले पाहिजे.
-### ब्राउझरमधील Jupyter वापरणे
+### ब्राउझरमध्ये Jupyter वापरणे
-तुमच्या संगणकावरील ब्राउझरवरून सुद्धा Jupyter एन्व्हायर्नमेंट वापरू शकता. पारंपरिक Jupyter आणि JupyterHub दोन्ही ऑटो-कंप्लीशन, कोड हायलाइटिंग वगैरे सहज विकासासाठी सुविधा देतात.
+तुम्ही तुमच्या संगणकावरील ब्राउझरमधून Jupyter एन्व्हायर्नमेंट देखील वापरू शकता. पारंपरिक Jupyter आणि JupyterHub दोन्ही सोयीस्कर विकास वातावरण पुरवतात ज्यात ऑटो-कंप्लीशन, कोड हायलाइटिंग वगैरे असते.
-Jupyter स्थानिकरित्या सुरू करण्यासाठी, कोर्सच्या डिरेक्टरीत जा आणि खालील आदेश चालवा:
+Jupyter स्थानिकरीत्या सुरू करण्यासाठी, कोर्सच्या डायरेक्टरीमध्ये जा आणि खालील आदेश चालवा:
```bash
jupyter notebook
@@ -36,36 +36,36 @@ 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** बटणावर क्लिक करा, codespace सुरू करा आणि लगेचच काम सुरू करा.
-* **[Binder](https://mybinder.org/v2/gh/microsoft/ai-for-beginners/HEAD)** वापरणे. [Binder](https://mybinder.org) GitHub वरील कोड चाचणीसाठी लोकांसाठी क्लाउडमध्ये मोफत संगणकीय संसाधने ऑफर करते. मुख्य पृष्ठावर एक बटण आहे जे रेपॉजिटरी Binder मध्ये उघडते — हे जलदपणे तुम्हाला Binder साइटवर घेऊन जाईल, जिथे एक कंटेनर तयार होईल व तुम्हाला Jupyter वेब इंटरफेस सहज आणि तत्काळ सुरू होईल.
+* **[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 वेब इंटरफेस सहजपणे सुरू करेल.
-> **टीप**: गैरवापर टाळण्यासाठी, 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 द्वारे कनेक्ट करा. तुम्ही मग थेट त्या मशीनवर रेपॉजिटरी क्लोन करू शकता आणि शिकणे सुरू करू शकता. NC-श्रेणी VM ला 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-सीरीज VMs मध्ये 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) तयार करा आणि नंतर तेथे Notebook वैशिष्ट्य वापरा. [हा व्हिडिओ](https://azure-for-academics.github.io/quickstart/azureml-papers/) दाखवतो की Azure ML नोटबुकमध्ये रिपॉझिटरी कशी क्लोन करायची आणि ती वापरायला कशी सुरुवात करायची.
-तुम्ही 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/mr/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb b/translations/mr/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
index a2b6b070..4d064a52 100644
--- a/translations/mr/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
+++ b/translations/mr/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
@@ -4,11 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "# पूर्व-प्रशिक्षित मॉडेल्स आणि ट्रान्सफर लर्निंग\n",
+ "# प्री-ट्रेन केलेले मॉडेल्स आणि ट्रान्सफर लर्निंग \n",
"\n",
- "CNNs (कन्व्होल्यूशनल न्यूरल नेटवर्क्स) प्रशिक्षणासाठी खूप वेळ लागतो आणि त्यासाठी मोठ्या प्रमाणात डेटाची आवश्यकता असते. मात्र, यामध्ये बराचसा वेळ नेटवर्कने प्रतिमांमधून पॅटर्न्स काढण्यासाठी वापरणाऱ्या सर्वोत्तम लो-लेव्हल फिल्टर्स शिकण्यात जातो. त्यामुळे एक स्वाभाविक प्रश्न निर्माण होतो - एखाद्या डेटासेटवर प्रशिक्षित केलेले न्यूरल नेटवर्क पूर्ण प्रशिक्षण प्रक्रिया न करता वेगळ्या प्रतिमा वर्गीकृत करण्यासाठी वापरता येईल का?\n",
+ "CNN चे प्रशिक्षण घनदाट वेळ घेते आणि त्या कार्यासाठी भरपूर डेटा आवश्यक असतो. तथापि, बहुतांश वेळा एक नेटवर्क इमेजेसमधून पॅटर्न्स काढण्यासाठी वापरत असलेल्या सर्वोत्तम लो-लेव्हल फिल्टर्स शिकण्यात खर्च होतो. एक नैसर्गिक प्रश्न निर्माण होतो - आपण एका डेटासेटवर प्रशिक्षित न्यूरेल नेटवर्क वापरून ते पूर्ण प्रशिक्षण प्रक्रियेव्यतिरिक्त वेगळ्या प्रतिमा वर्गीकरणासाठी अनुकूल करू शकतो का? \n",
"\n",
- "या दृष्टिकोनाला **ट्रान्सफर लर्निंग** म्हणतात, कारण आपण एका न्यूरल नेटवर्क मॉडेलमधून दुसऱ्या मॉडेलमध्ये काही ज्ञान हस्तांतरित करतो. ट्रान्सफर लर्निंगमध्ये, आपण सहसा पूर्व-प्रशिक्षित मॉडेलपासून सुरुवात करतो, जे आधीच मोठ्या प्रतिमा डेटासेटवर (उदाहरणार्थ, **ImageNet**) प्रशिक्षित केलेले असते. हे मॉडेल्स आधीच सामान्य प्रतिमांमधून विविध वैशिष्ट्ये काढण्यात चांगले काम करू शकतात, आणि अनेक प्रकरणांमध्ये, या काढलेल्या वैशिष्ट्यांवर आधारित फक्त एक वर्गीकर्ता तयार करूनही चांगले परिणाम मिळू शकतात.\n"
+ "या दृष्टिकोनाला **ट्रान्सफर लर्निंग** म्हटले जाते, कारण आपण एका न्यूरेल नेटवर्क मॉडेलमधून दुसऱ्या मॉडेलला काही ज्ञान हस्तांतरीत करतो. ट्रान्सफर लर्निंगमध्ये, आपण सहसा एक प्री-ट्रेन केलेल्या मॉडेलने सुरुवात करतो, ज्याचे काही मोठ्या प्रतिमा डेटासेटवर प्रशिक्षण झालेले असते, जसे की **ImageNet**. असे मॉडेल्स सामान्य प्रतिमांमधून वेगवेगळे वैशिष्ट्ये काढण्यात आधीच चांगले काम करू शकतात, आणि अनेक वेळा फक्त त्या काढलेल्यावर वर्गीकारक तयार करणे चांगला परिणाम देऊ शकते. \n"
]
},
{
@@ -29,11 +29,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## मांजरी विरुद्ध कुत्रे डेटासेट\n",
+ "## मांजरे विरुद्ध कुत्र्यांचा डेटा संच\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",
+ "या युनिटमध्ये, आपण मांजरे आणि कुत्र्यांच्या प्रतिमा वर्गीकृत करण्याचा वास्तविक जीवनातील एक समस्या सोडवू. यासाठी, आपण [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"
]
},
{
@@ -335,11 +335,11 @@
"source": [
"## डेटासेट लोड करणे\n",
"\n",
- "मागील उदाहरणांमध्ये, आम्ही Keras मध्ये तयार केलेले डेटासेट लोड करत होतो. आता आपण स्वतःचा डेटासेट हाताळणार आहोत, जो आपल्याला प्रतिमांच्या डिरेक्टरीमधून लोड करावा लागेल.\n",
+ "मागील उदाहरणांमध्ये, आम्ही Keras मध्ये अंगभूत असलेली डेटासेट लोड करत होतो. आता आम्ही आमच्या स्वतःच्या डेटासेटवर काम करणार आहोत, जी आपल्याला प्रतिमांच्या एका डिरेक्टरीमधून लोड करावी लागेल.\n",
"\n",
- "वास्तविक जीवनात, प्रतिमा डेटासेट्सचा आकार खूप मोठा असू शकतो, आणि सर्व डेटा मेमरीमध्ये बसू शकेल यावर विश्वास ठेवता येत नाही. त्यामुळे, डेटासेट्स अनेकदा **जनरेटर्स** म्हणून सादर केले जातात, जे प्रशिक्षणासाठी योग्य अशा मिनीबॅचेसमध्ये डेटा परत करू शकतात.\n",
+ "वास्तविक जीवनात, प्रतिमा डेटासेटचा आकार खूप मोठा असू शकतो, आणि सर्व डेटा मेमरीमध्ये फिट होईल यावर अवलंबून राहता येत नाही. त्यामुळे, डेटासेट्स सहसा **जनरेटर** म्हणून सादर केले जातात जे प्रशिक्षणासाठी योग्य मिनीबॅचेसमध्ये डेटा परत करू शकतात.\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"
+ "डेटासेट आपोआप निर्देशिकांमधून वर्ग नावे घेतो, आणि आवश्यक असल्यास आपण खालीलप्रमाणे त्यांना ऍक्सेस करू शकता:\n"
]
},
{
@@ -412,7 +412,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "आम्हाला मिळालेल्या डेटासेट्स थेट `fit` फंक्शनला पास करून मॉडेल प्रशिक्षणासाठी वापरता येतात. त्यामध्ये संबंधित प्रतिमा आणि लेबल्स असतात, ज्यावर खालील रचना वापरून लूप करता येते:\n"
+ "आम्ही मिळवलेले डेटासेट्स थेट `fit` फंक्शनला दिले जाऊ शकतात मॉडेल प्रशिक्षणासाठी. त्यामध्ये संबंधित प्रतिमा आणि लेबल दोन्ही असतात, ज्यावर खालील रचनेचा वापर करून लूप करता येतो:\n"
]
},
{
@@ -453,7 +453,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "> **टीप**: डेटासेटमधील सर्व प्रतिमा फ्लोटिंग पॉइंट टेन्सर्स म्हणून 0-255 श्रेणीमध्ये दर्शविल्या जातात. न्यूरल नेटवर्कला पास करण्यापूर्वी, आपल्याला त्या मूल्यांना 0-1 श्रेणीत स्केल करणे आवश्यक आहे. प्रतिमा प्लॉट करताना, आपल्याला तेच करणे आवश्यक आहे किंवा मूल्ये `int` प्रकारात रूपांतरित करणे आवश्यक आहे (जसे आपण वरील कोडमध्ये करतो), जेणेकरून `matplotlib` ला कळेल की आपण मूळ अनस्केल केलेली प्रतिमा प्लॉट करू इच्छितो.\n"
+ "> **टीप**: डेटासेटमधील सर्व प्रतिमा फ्लोटिंग पॉइंट टेन्सर म्हणून 0-255 या श्रेणीत दर्शविल्या आहेत. त्यांना न्यूरल नेटवर्कमध्ये दिल्यापूर्वी, आपल्याला त्या मूल्यांना 0-1 या श्रेणीत स्केल करणे आवश्यक आहे. प्रतिमा प्लॉट करताना, आपल्याला तेच करणे आवश्यक आहे, किंवा मूल्यांना `int` प्रकारात रूपांतरित करावे लागते (जे आपण वरील कोडमध्ये करतो), जेणेकरून `matplotlib` ला दर्शवता येईल की आपण मूळ अनस्केल केलेली प्रतिमा प्लॉट करू इच्छितो.\n"
]
},
{
@@ -462,7 +462,7 @@
"source": [
"## पूर्व-प्रशिक्षित मॉडेल्स\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 मूळतः या पूर्व-प्रक्रियेसह प्रशिक्षित केले गेले होते.\n",
- "* न्यूरल नेटवर्क इनपुट बॅचवर लागू केले जाते आणि परिणामस्वरूप आपल्याला 1000-घटक असलेल्या टेन्सर्सचा बॅच प्राप्त होतो, जो प्रत्येक वर्गाची संभाव्यता दर्शवतो. या टेन्सरवर `argmax` कॉल करून आपण सर्वात संभाव्य वर्ग क्रमांक शोधू शकतो.\n",
- "* प्राप्त झालेला परिणाम हा [`ImageNet` वर्गाचा क्रमांक](https://gist.github.com/yrevar/942d3a0ac09ec9e5eb3a) असतो. या परिणामाचा अर्थ लावण्यासाठी, आपण `decode_predictions` फंक्शन देखील वापरू शकतो, जे शीर्ष n वर्ग त्यांच्या नावांसह परत करते.\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"
+ "चला VGG-16 नेटवर्कची आर्किटेक्चर देखील पाहूया:\n"
]
},
{
@@ -597,9 +607,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## GPU गणना\n",
+ "## 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": [
+ "\n",
"## VGG वैशिष्ट्ये काढणे\n",
"\n",
- "आपल्या प्रतिमांमधून वैशिष्ट्ये काढण्यासाठी VGG-16 वापरायचे असल्यास, अंतिम वर्गीकरण स्तरांशिवाय मॉडेल आवश्यक आहे. आपण खालील कोड वापरून टॉप स्तरांशिवाय VGG-16 मॉडेल तयार करू शकतो:\n"
+ "जर आपल्याला आमच्या प्रतिमांमधून वैशिष्ट्ये काढण्यासाठी VGG-16 वापरायचे असेल, तर आपल्याला अंतिम वर्गीकरण थरांशिवाय मॉडेल आवश्यक आहे. आपण हा कोड वापरून टॉप थरांशिवाय VGG-16 मॉडेल तयार करू शकतो:\n"
]
},
{
@@ -680,9 +691,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "फीचर टेन्सरचे परिमाण 7x7x512 आहे, पण त्याचे दृश्यरूप पाहण्यासाठी आम्हाला ते 2D स्वरूपात बदलावे लागले.\n",
+ "फीचर टेन्सरचा आकार 7x7x512 आहे, पण त्याचे दर्शन करण्यासाठी आम्हाला ते 2D स्वरूपात बदलावे लागले.\n",
"\n",
- "आता पाहूया की हे फीचर्स प्रतिमा वर्गीकृत करण्यासाठी वापरता येऊ शकतात का. चला प्रतिमांचा काही भाग (आपल्या प्रकरणात 50 मिनीबॅचेस) हाताने निवडूया आणि त्यांचे फीचर व्हेक्टर्स पूर्व-गणना करूया. यासाठी आपण Tensorflow **dataset** API वापरू शकतो. `map` फंक्शन डेटासेट घेते आणि दिलेल्या lambda-function चा उपयोग करून त्याचे रूपांतर करते. आम्ही या यंत्रणाचा उपयोग नवीन डेटासेट्स तयार करण्यासाठी करतो, `ds_features_train` आणि `ds_features_test`, ज्यामध्ये मूळ प्रतिमांच्या ऐवजी VGG-निघालेले फीचर्स असतात.\n"
+ "आता आपण पाहूया की ते फीचर्स प्रतिमा वर्गीकरणासाठी वापरता येऊ शकतात का. आपण हाताने काही भाग प्रतिमांचा (आमच्या प्रकरणात 50 मिनीबॅचेस) घेऊ आणि त्यांचे फीचर व्हेक्टर आधीपासूनच मोजून घेऊ. आम्ही Tensorflow **dataset** API वापरू शकतो हे करण्यासाठी. `map` फंक्शन dataset घेते आणि दिलेल्या lambda-function ला लागू करून त्याचे परिवर्तन करते. आम्ही या यंत्रणेद्वारे नवीन datasets, `ds_features_train` आणि `ds_features_test`, तयार करतो, जे मूळ प्रतिमांऐवजी VGG-काढलेले फीचर्स ठेवतात.\n"
]
},
{
@@ -712,9 +723,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "आम्ही `.take(50)` या कन्स्ट्रक्शनचा वापर करून डेटासेटचा आकार मर्यादित केला, जेणेकरून आमचा डेमो जलद होईल. तुम्ही अर्थातच हा प्रयोग पूर्ण डेटासेटवर करू शकता.\n",
+ "आम्ही डेमो वेगाने सुरु करण्यासाठी डेटासेट आकार मर्यादित करण्यासाठी कोड `.take(50)` वापरला आहे. तुम्ही अर्थात या प्रयोगास पूर्ण डेटासेटवर करू शकता.\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": [
- "परिणाम उत्कृष्ट आहे, आम्ही जवळजवळ 95% शक्यतेने मांजर आणि कुत्र्यामध्ये फरक करू शकतो! मात्र, आम्ही हा दृष्टिकोन सर्व प्रतिमांच्या फक्त एका उपसंचावरच चाचणी केली आहे, कारण मॅन्युअल वैशिष्ट्ये काढणे खूप वेळखाऊ वाटते.\n",
+ "निकाल छान आहे, आपण सुमारे 95% शक्यता सह मांजरा आणि कुत्रा ओळखू शकतो! तथापि, आपण या पद्धतीची चाचणी केवळ सर्व प्रतिमा यातील एका उपसमुच्चयावरच केली आहे, कारण मॅन्युअल फिचर एक्सट्रॅक्शनला पुष्कळ वेळ लागतो असे दिसते.\n",
"\n",
- "## एका VGG नेटवर्कचा वापर करून ट्रान्सफर लर्निंग\n",
+ "## एक VGG नेटवर्क वापरून ट्रान्सफर शिक्षण\n",
"\n",
- "आपण मॅन्युअल वैशिष्ट्ये पूर्व-गणना करण्याचे टाळू शकतो, जर आपण मूळ VGG-16 नेटवर्कला प्रशिक्षणादरम्यान संपूर्णपणे वापरले, आणि आपल्या नेटवर्कमध्ये वैशिष्ट्ये काढणारा घटक पहिल्या थराप्रमाणे जोडला.\n",
+ "आपण प्रशिक्षणादरम्यान आमच्या नेटवर्कमध्ये फिचर एक्सट्रॅक्टरला पहिल्या स्तर म्हणून जोडून मूळ VGG-16 नेटवर्कचा संपूर्ण वापर करून मॅन्युअली फिचर पूर्व-गणना टाळू शकतो.\n",
"\n",
- "Keras आर्किटेक्चरची सुंदरता म्हणजे आपण वरीलप्रमाणे परिभाषित केलेला VGG-16 मॉडेल दुसऱ्या न्यूरल नेटवर्कमध्ये थर म्हणून देखील वापरू शकतो! आपल्याला फक्त त्यावर डेंस क्लासिफायरसह एक नेटवर्क तयार करायचे आहे आणि नंतर बॅक प्रोपोगेशन वापरून संपूर्ण नेटवर्क प्रशिक्षण द्यायचे आहे.\n"
+ "केरस आर्किटेक्चरची सुंदरता अशी आहे की वर आपण जो VGG-16 मॉडेल परिभाषित केला आहे तो दुसर्या न्यूरल नेटवर्कमध्ये एक स्तर म्हणून वापरला जाऊ शकतो! आपण फक्त त्यावर डेंस क्लासिफायर असलेले नेटवर्क तयार करायचे आहे आणि नंतर संपूर्ण नेटवर्कला बॅक प्रोपोगेशन वापरून प्रशिक्षित करायचे आहे.\n"
]
},
{
@@ -793,13 +804,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "हे मॉडेल एक एंड-टू-एंड वर्गीकरण नेटवर्कसारखे दिसते, जे प्रतिमा घेते आणि वर्ग परत करते. मात्र, येथे एक क्लिष्ट गोष्ट आहे की आम्हाला VGG16 ला फक्त एक वैशिष्ट्य काढणारा म्हणून वापरायचे आहे, आणि त्याला पुन्हा प्रशिक्षण द्यायचे नाही. त्यामुळे, आपल्याला **कन्व्होल्यूशनल वैशिष्ट्य काढणाऱ्या वेट्स फ्रीज करणे** आवश्यक आहे. आपण नेटवर्कच्या पहिल्या लेयरला `model.layers[0]` कॉल करून ऍक्सेस करू शकतो, आणि आपल्याला फक्त `trainable` प्रॉपर्टी `False` वर सेट करायची आहे.\n",
+ "हा मॉडेल एक एंड-टू-एंड वर्गीकरण नेटवर्कसारखा दिसतो, जो एक प्रतिमा घेऊन वर्ग परत करतो. पण, ट्रिकी गोष्ट म्हणजे आम्हाला VGG16 ला एक फिचर एक्स्ट्रॅक्टर म्हणून वापरायचे आहे, आणि त्याला पुनःप्रशिक्षित करू नयेत. म्हणून, आम्हाला **कन्व्होल्यूशनल फिचर एक्स्ट्रॅक्टरचे वजन फ्रीज करणे** आवश्यक आहे. आपण नेटवर्कच्या पहिल्या स्तराला `model.layers[0]` कॉल करून प्रवेश करू शकतो, आणि फक्त `trainable` प्रॉपर्टीला `False` सेट करणे आवश्यक आहे.\n",
"\n",
- "> **Note**: वैशिष्ट्य काढणाऱ्या वेट्स फ्रीज करणे आवश्यक आहे, कारण अन्यथा न प्रशिक्षित वर्गीकरण लेयर मूळ प्री-ट्रेंड कन्व्होल्यूशनल वेट्स खराब करू शकतो.\n",
+ "> **टीप**: फिचर एक्स्ट्रॅक्टर वेट्स फ्रीज करणे आवश्यक आहे, कारण अन्यथा अनट्रेंड केलेला क्लासिफायर लेयर कन्व्होल्यूशनल एक्स्ट्रॅक्टरच्या मूळ प्री-ट्रेंड वेट्सना नष्ट करू शकतो.\n",
"\n",
- "आपण लक्षात घेऊ शकता की आपल्या नेटवर्कमध्ये एकूण सुमारे 15 मिलियन पॅरामिटर्स आहेत, पण आपण फक्त 25k पॅरामिटर्स प्रशिक्षण देत आहोत. टॉप-लेवल कन्व्होल्यूशनल फिल्टर्सचे इतर सर्व पॅरामिटर्स प्री-ट्रेंड आहेत. हे चांगले आहे, कारण आपण कमी उदाहरणांसह कमी पॅरामिटर्स फाइन-ट्यून करू शकतो.\n",
+ "लक्षात घेऊ शकता की आपल्या नेटवर्कमधील एकूण पॅरामिटर्सची संख्या सुमारे 15 दशलक्ष आहे, तरीही आपण केवळ 25k पॅरामिटर्सचे प्रशिक्षण करत आहोत. टॉप-लेव्हल कन्व्होल्यूशनल फिल्टर्सचे सर्व इतर पॅरामिटर्स प्री-ट्रेंड आहेत. हे चांगले आहे कारण आपण कमी संख्या असलेल्या उदाहरणांसह कमी संख्या असलेले पॅरामिटर्स फाइन-ट्यून करू शकतो.\n",
"\n",
- "आता आपण आपले नेटवर्क प्रशिक्षण देऊ आणि किती चांगले परिणाम मिळवू शकतो ते पाहू. अपेक्षा करा की चालण्याचा वेळ बराच लांब असेल, आणि जर कार्यवाही काही वेळेसाठी थांबलेली वाटली तरी काळजी करू नका.\n"
+ "आता आपण आपले नेटवर्क प्रशिक्षित करू आणि पाहू की ते किती चांगले होऊ शकते. अपेक्षा करा की ही प्रक्रिया तुलनेत अधिक वेळ घेऊ शकते, आणि काही काळासाठी प्रक्रिया थांबलेली वाटली तरी काळजी करू नका.\n"
]
},
{
@@ -824,11 +835,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "असे दिसते की आपल्याला मांजरे विरुद्ध कुत्रे वर्गीकरणासाठी एक चांगला अचूक वर्गीकरणकर्ता मिळाला आहे!\n",
+ "असं दिसतं की आपल्याला कॅट vs. डॉग्स क्लासीफायर योग्य प्रमाणात अचूकता मिळाली आहे!\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": [
- "## ट्रान्सफर लर्निंगचे फाइन-ट्यूनिंग\n",
+ "## फाइन-ट्यूनिंग ट्रांसफर लर्निंग\n",
"\n",
- "मागील विभागात, आपण आपल्या स्वतःच्या डेटासेटमधील प्रतिमा वर्गीकृत करण्यासाठी अंतिम वर्गीकरण लेयर प्रशिक्षित केले. मात्र, आपण फीचर एक्स्ट्रॅक्टर पुन्हा प्रशिक्षित केले नाही, आणि आपले मॉडेल ImageNet डेटावर शिकलेल्या वैशिष्ट्यांवर अवलंबून होते. जर तुमची ऑब्जेक्ट्स सामान्य ImageNet प्रतिमांपेक्षा दृश्यदृष्ट्या वेगळी असतील, तर या वैशिष्ट्यांचे संयोजन सर्वोत्तम कार्य करणार नाही. त्यामुळे, कन्व्होल्यूशनल लेयर्सचे प्रशिक्षण सुरू करणे योग्य ठरेल.\n",
+ "मागील विभागात, आपण आपल्या स्वतःच्या डेटासेटमधील प्रतिमा वर्गीकृत करण्यासाठी अंतिम वर्गीकरण करणारा स्तर प्रशिक्षित केला आहे. तथापि, आपण वैशिष्ट्य काढणारा पुन्हा प्रशिक्षित केला नाही, आणि आमचा मॉडेल ImageNet डेटावर शिकलेल्या वैशिष्ट्यांवर अवलंबून होता. जर तुमची वस्तू सामान्य ImageNet प्रतिमांपेक्षा दृष्टीकोनाने वेगळी असतील, तर वैशिष्ट्यांचा हा संयोजन सर्वोत्तम काम करू शकणार नाही. त्यामुळे convolutional स्तरांचीही प्रशिक्षण सुरू करणे योग्य ठरेल.\n",
"\n",
- "हे करण्यासाठी, आपण यापूर्वी गोठवलेले कन्व्होल्यूशनल फिल्टर पॅरामीटर्स अनफ्रीज करू शकतो.\n",
+ "ते करण्यासाठी, आपण पूर्वी थांबवून ठेवलेल्या convolutional फिल्टर पॅरामीटर्स अनफ्रीज करू शकतो.\n",
"\n",
- "> **टीप:** प्रथम पॅरामीटर्स गोठवणे आणि वर्गीकरण लेयरमधील वेट्स स्थिर करण्यासाठी काही इपॉक्सचे प्रशिक्षण करणे महत्त्वाचे आहे. जर तुम्ही लगेचच अनफ्रीज केलेल्या पॅरामीटर्ससह एंड-टू-एंड नेटवर्कचे प्रशिक्षण सुरू केले, तर मोठ्या चुका कन्व्होल्यूशनल लेयर्समधील पूर्व-प्रशिक्षित वेट्स नष्ट करू शकतात.\n",
+ "> **टीप:** प्रथम तुम्ही पॅरामीटर्स फ्रीज केले पाहिजेत आणि वर्गीकरण स्तरामध्ये वजन स्थिर करण्यासाठी काही epochs प्रशिक्षित करणे महत्त्वाचे आहे. जर तुम्ही लगेचच अनफ्रीज केलेल्या पॅरामीटर्ससह एंड-टू-एंड नेटवर्कचे प्रशिक्षण सुरू केले, तर मोठ्या त्रुटी convolutional स्तरांमधील पूर्व-प्रशिक्षित वजन नष्ट करू शकतात.\n",
"\n",
- "आपले कन्व्होल्यूशनल VGG-16 मॉडेल पहिल्या लेयरमध्ये स्थित आहे, आणि ते स्वतः अनेक लेयर्सचे बनलेले आहे. आपण त्याच्या संरचनेवर एक नजर टाकू शकतो:\n"
+ "आमचे convolutional VGG-16 मॉडेल पहिल्या स्तरात आहे, आणि त्यात स्वतः अनेक स्तरांचा समावेश आहे. आपण त्याच्या संरचनेवर एक नजर टाकू शकतो:\n"
]
},
{
@@ -944,7 +955,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "आपण कन्व्हॉल्युशनल बेसच्या सर्व थरांना अनफ्रीज करू शकतो:\n"
+ ]
},
{
"cell_type": "code",
@@ -959,7 +972,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "तथापि, सर्वांना एकाच वेळी अनफ्रीज करणे ही सर्वोत्तम कल्पना नाही. आपण प्रथम काही अंतिम कॉनव्होल्यूशन लेयर्स अनफ्रीज करू शकतो, कारण त्यामध्ये आमच्या प्रतिमांसाठी संबंधित उच्च स्तराचे नमुने असतात. उदाहरणार्थ, सुरुवातीला, आपण शेवटच्या 4 लेयर्स वगळता सर्व लेयर्स फ्रीज करू शकतो:\n"
+ "तथापि, त्यांना एकाच वेळी अनफ्रीझ करणे सर्वोत्तम कल्पना नाही. आपण प्रथम फक्त काही शेवटच्या कन्व्होल्यूशन थरांचे अनफ्रीझ करू शकतो, कारण त्यामध्ये आमच्या प्रतिमांसाठी संबंधित उच्च स्तराचे नमुने असतात. उदाहरणार्थ, सुरुवात करण्यासाठी, आपण शेवटचे ४ वगळता सर्व थर फ्रीझ करू शकतो:\n"
]
},
{
@@ -998,11 +1011,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "प्रशिक्षणयोग्य पॅरामिटर्सची संख्या लक्षणीयरीत्या वाढली आहे, परंतु ती अजूनही एकूण पॅरामिटर्सच्या सुमारे 50% च्या आसपास आहे.\n",
+ "ट्रेन होण्यायोग्य पॅरामीटर्सची संख्या लक्षणीय वाढलेली आहे, पण ती अजूनही सर्व पॅरामीटर्सच्या सुमारे ५०% च्या आसपास आहे.\n",
"\n",
- "अनफ्रीज केल्यानंतर, आपण आणखी काही इपॉक्ससाठी प्रशिक्षण करू शकतो (आपल्या उदाहरणात, आपण फक्त एकच करू). आपण कमी लर्निंग रेट निवडू शकता, जेणेकरून पूर्व-प्रशिक्षित वेट्सवर होणारा परिणाम कमी होईल. मात्र, अगदी कमी लर्निंग रेटसहही, प्रशिक्षणाच्या सुरुवातीला अचूकता कमी होण्याची शक्यता असते, जोपर्यंत ती निश्चित वेट्सच्या परिस्थितीपेक्षा किंचित जास्त पातळीवर पोहोचत नाही.\n",
+ "अनफ्रीझिंगनंतर, आपण आणखी काही एखादे प्रशिक्षणाच्या युग करता येतात (आमच्या उदाहरणात, आपण फक्त एकच करू). तुम्ही कमी शिक्षण दर देखील निवडू शकता, जेणेकरून पूर्व-प्रशिक्षित वजनांवर होणारा परिणाम कमी होईल. तथापि, कमी शिक्षण दर असूनही, तुम्ही प्रारंभिक प्रशिक्षणाच्या काळात अचूकता कमी होण्याची अपेक्षा करू शकता, आणि शेवटी निश्चित वजनांच्या बाबतीत थोड्या जास्त पातळीवर पोहोचेल.\n",
"\n",
- "> **Note:** हे प्रशिक्षण खूपच हळू होते, कारण आपल्याला नेटवर्कच्या अनेक थरांमधून ग्रेडियंट्स परत पाठवावे लागतात!\n"
+ "> **टीप:** हे प्रशिक्षण खूप हळू होते, कारण आपल्याला नेटवर्कच्या अनेक थरांतून ग्रेडियंट्स मागे पोहोचवावे लागतात!\n"
]
},
{
@@ -1026,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 ने विकसित केली आहेत, आणि Google चे **Inception**. उदाहरणार्थ, आपण सर्वात सोप्या ResNet-50 मॉडेलची आर्किटेक्चर पाहूया (ResNet ही वेगवेगळ्या खोलीच्या मॉडेल्सची एक मालिका आहे, तुम्हाला खरोखरच खोल मॉडेल कसे दिसते हे पाहायचे असल्यास ResNet-152 वर प्रयोग करून पाहू शकता):\n"
+ "VGG-16 ही सर्वात साधी संगणकीय दृष्टी आर्किटेक्चर्सपैकी एक आहे. Keras अनेक अधिक प्री-ट्रेनड नेटवर्क्स प्रदान करते. त्यातील सर्वाधिक वापरली जाणारी म्हणजे मायक्रोसॉफ्टद्वारे विकसित **ResNet** आर्किटेक्चर्स आणि गुगलद्वारे विकसित **Inception**. उदाहरणार्थ, चला सर्वात साध्या ResNet-50 मॉडेलची आर्किटेक्चर पाहूया (ResNet ही भिन्न खोलीच्या मॉडेल्सची कुटुंब आहे, तुम्हाला खरंच खोल मॉडेल कसे दिसते ते पाहायचे असल्यास ResNet-152 सह प्रयोग करू शकता):\n"
]
},
{
@@ -1439,11 +1452,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "जसे तुम्ही पाहू शकता, मॉडेलमध्ये त्याच परिचित घटकांचा समावेश आहे: कॉनव्होल्यूशन लेयर्स, पूलिंग लेयर्स आणि अंतिम डेंस क्लासिफायर. आपण हे मॉडेल अगदी त्याच प्रकारे वापरू शकतो जसा आपण VGG-16 ट्रान्सफर लर्निंगसाठी वापरत होतो. तुम्ही वरील कोडसह प्रयोग करू शकता, वेगवेगळ्या ResNet मॉडेल्स बेस मॉडेल म्हणून वापरून पाहू शकता आणि अचूकता कशी बदलते ते पाहू शकता.\n",
+ "तुम्हाला दिसतंय तसंच, या मॉडेलमध्ये त्याच परिचित बिल्डिंग ब्लॉक्स आहेत: कन्व्होल्यूशनल लेयर्स, पूलिंग लेयर्स आणि अंतिम डेंस क्लासिफायर. आम्ही हा मॉडेल त्याच पद्धतीने वापरू शकतो जसे आपण ट्रान्सफर लर्निंगसाठी VGG-16 वापरत होतो. तुम्ही वर दिलेल्या कोडसह वेगवेगळ्या ResNet मॉडेल्सना बेस मॉडेल म्हणून वापरून प्रयोग करू शकता आणि बघू शकता अचूकतेत कशी बदल होते.\n",
"\n",
- "## बॅच नॉर्मलायझेशन\n",
+ "## बॅच नार्मलायझेशन\n",
"\n",
- "या नेटवर्कमध्ये आणखी एका प्रकारचा लेयर आहे: **बॅच नॉर्मलायझेशन**. बॅच नॉर्मलायझेशनची कल्पना म्हणजे न्यूरल नेटवर्कमधून प्रवाहित होणाऱ्या मूल्यांना योग्य श्रेणीत आणणे. सामान्यतः न्यूरल नेटवर्क्स सर्वाधिक प्रभावीपणे कार्य करतात जेव्हा सर्व मूल्ये [-1,1] किंवा [0,1] या श्रेणीत असतात, आणि म्हणूनच आपण आपला इनपुट डेटा त्यानुसार स्केल/नॉर्मलाइज करतो. मात्र, डीप नेटवर्कच्या प्रशिक्षणादरम्यान असे होऊ शकते की मूल्ये या श्रेणीतून खूप बाहेर जातात, ज्यामुळे प्रशिक्षण कठीण होते. बॅच नॉर्मलायझेशन लेयर सध्याच्या मिनीबॅचसाठी सर्व मूल्यांचे सरासरी आणि मानक विचलन गणना करते आणि न्यूरल नेटवर्क लेयरमधून सिग्नल पास करण्यापूर्वी त्याचा वापर करून सिग्नल नॉर्मलाइज करते. यामुळे डीप नेटवर्क्सची स्थिरता लक्षणीयरीत्या सुधारते.\n"
+ "या नेटवर्कमध्ये अजून एक प्रकारची लेयर आहे: **बॅच नार्मलायझेशन**. बॅच नार्मलायझेशनचा विचार असा आहे की न्यूरल नेटवर्कमधून जाणाऱ्या मूल्यांना योग्य अंतरालात आणणे. सहसा न्यूरल नेटवर्क्स सर्वोत्तम काम करतात जेव्हा सर्व मूल्ये [-1,1] किंवा [0,1] या श्रेणीत असतात आणि म्हणूनच आपण आपले इनपुट डेटा तशी स्केल/नॉर्मलाइझ करतो. मात्र, डीप नेटवर्कच्या प्रशिक्षणादरम्यान अशी परिस्थिती येऊ शकते की काही मूल्ये या श्रेणेखाली किंवा वरील बाजूस फार अधिक जातात, ज्यामुळे प्रशिक्षणात समस्या येते. बॅच नार्मलायझेशन लेयर सध्याच्या मिनीबॅचमधील सर्व मूल्यांसाठी सरासरी आणि स्टँडर्ड डेव्हिएशन मोजते आणि त्यांचा वापर करून सिग्नलला न्यूरल नेटवर्क लेयरमध्ये जाण्यापूर्वी नॉर्मलाइझ करते. यामुळे डीप नेटवर्क्सची स्थिरता लक्षणीयरीत्या सुधारते.\n"
]
},
{
@@ -1452,16 +1465,16 @@
"source": [
"## मुख्य मुद्दा\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हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) चा वापर करून अनुवादित केला आहे. जरी आम्ही अचूकतेसाठी प्रयत्न करतो, तरी कृपया लक्षात घ्या की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेची कमतरता असू शकते. मूळ दस्तऐवज त्याच्या मूळ भाषेत अधिकृत स्रोत मानला पाहिजे. महत्त्वाची माहिती असल्यास, व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराच्या वापरामुळे उद्भवणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थलावणीसाठी आम्ही जबाबदार नाही.\n\n"
]
}
],
@@ -1482,12 +1495,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
- },
- "coopTranslator": {
- "original_hash": "c189abc107848f96051085cc30945129",
- "translation_date": "2025-08-28T07:53:17+00:00",
- "source_file": "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb",
- "language_code": "mr"
}
},
"nbformat": 4,
diff --git a/translations/mr/lessons/5-NLP/README.md b/translations/mr/lessons/5-NLP/README.md
index 0bf130e6..59ddee3c 100644
--- a/translations/mr/lessons/5-NLP/README.md
+++ b/translations/mr/lessons/5-NLP/README.md
@@ -1,51 +1,51 @@
# नैसर्गिक भाषा प्रक्रिया
-
+
-या विभागात, आपण **नैसर्गिक भाषा प्रक्रिया (NLP)** संबंधित कार्ये हाताळण्यासाठी न्यूरल नेटवर्क्सचा वापर कसा करायचा यावर लक्ष केंद्रित करू. अनेक NLP समस्या आहेत ज्या संगणकांनी सोडवाव्या अशी आपली इच्छा आहे:
+या विभागात, आपण **नैसर्गिक भाषा प्रक्रिया (NLP)** संबंधित कार्ये हाताळण्यासाठी न्यूरल नेटवर्क्स वापरण्यावर लक्ष केंद्रित करू. अनेक 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 कार्ये सोडवू शकतात.
-* **मजकूर संक्षेपण** ही एक तंत्र आहे जिथे आपल्याला संगणकाने लांब मजकूर "वाचून" काही वाक्यांमध्ये संक्षेप करावा लागतो.
-* **मशीन भाषांतर** हे एका भाषेत मजकूर समजून घेणे आणि दुसऱ्या भाषेत मजकूर तयार करणे यांचे संयोजन मानले जाऊ शकते.
+* **मतलब वर्गीकरण** हा मजकूर अनुक्रमणिकांना संबंधित एक सामान्य वर्गीकरण समस्या आहे. उदाहरणार्थ, ई-मेल संदेशांना स्पॅम विरुद्ध नॉन-स्पॅम म्हणून वर्गीकृत करणे अथवा लेखांना क्रीडा, व्यवसाय, राजकारण इत्यादी विषयांत वर्गीकरण करणे. तसेच, चॅट बॉट विकसित करताना, वापरकर्त्याने काय म्हणायचे होते हे समजून घेणे गरजेचे असते -- या प्रकरणात आपण **इच्छा वर्गीकरण** शी संबंधित असतो. प्रामुख्याने, इच्छा वर्गीकरणात आपल्याला अनेक वर्गांशी व्यवहार करावा लागतो.
+* **भावनात्मक विश्लेषण** ही एक सामान्य रिग्रेशन समस्या आहे, ज्यात आपल्याला वाक्याचा अर्थ किती सकारात्मक/नकारात्मक आहे हे दर्शविणारा एक संख्या (भावना) प्रदान करणे आवश्यक असते. भावनात्मक विश्लेषणाचा अधिक प्रगत प्रकार म्हणजे **अंगीकारात्मक भावनात्मक विश्लेषण** (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) या तंत्रांचा वापर करतात.
+* **मजकूर सारांश** हा तंत्र आहे ज्यामध्ये संगणकाला लांब मजकूर "वाचून" काही वाक्यांमध्ये सारांश देण्यासाठी म्हटले जाते.
+* **मशीन अनुवाद** एक भाषेतील मजकूर समजून घेणे आणि दुसऱ्या भाषेत मजकूर निर्माण करण्याचे संयोजन म्हणून पाहता येऊ शकते.
-सुरुवातीला, बहुतेक NLP कार्य पारंपरिक पद्धती वापरून सोडवले जात होते जसे की व्याकरण. उदाहरणार्थ, मशीन भाषांतरामध्ये प्रारंभिक वाक्याला सिंटॅक्स ट्रीमध्ये रूपांतरित करण्यासाठी पार्सर्स वापरले जात होते, नंतर वाक्याचा अर्थ दर्शवण्यासाठी उच्च स्तरावरील अर्थपूर्ण संरचना काढल्या जात होत्या, आणि या अर्थावर आधारित आणि लक्ष्य भाषेच्या व्याकरणावर आधारित परिणाम तयार केला जात होता. आजकाल, अनेक NLP कार्य न्यूरल नेटवर्क्स वापरून अधिक प्रभावीपणे सोडवले जातात.
+आधी, बहुतांश NLP कार्ये पारंपरिक पद्धती जसे व्याकरण वापरून सोडवली जात होती. उदाहरणार्थ, मशीन अनुवादात पार्सर वापरून सुरुवातीचा वाक्य संरचना वृक्षात रूपांतरित केला जात असे, नंतर उच्च स्तरीय अर्थव्यवस्था संरचना काढण्यात यायच्या, आणि त्या अर्थावर व टार्गेट भाषेच्या व्याकरणावर आधारित निकाल तयार केला जात असे. आजकाल बरेच NLP कार्य न्यूरल नेटवर्क्स वापरून अधिक प्रभावीपणे सोडवले जातात.
-> अनेक पारंपरिक NLP पद्धती [Natural Language Processing Toolkit (NLTK)](https://www.nltk.org) Python लायब्ररीमध्ये अंमलात आणल्या जातात. [NLTK Book](https://www.nltk.org/book/) ऑनलाइन उपलब्ध आहे, ज्यामध्ये NLTK वापरून वेगवेगळ्या NLP कार्ये कशी सोडवता येतील याचे वर्णन आहे.
+> अनेक पारंपरिक NLP पद्धती [Natural Language Processing Toolkit (NLTK)](https://www.nltk.org) या Python लायब्ररीमध्ये लागू केलेल्या आहेत. [NLTK Book](https://www.nltk.org/book/) हा उत्कृष्ट ऑनलाइन पुस्तक उपलब्ध आहे जो वेगवेगळ्या NLP कार्ये कशी सोडवायची ते शिकवतो.
-आपल्या अभ्यासक्रमात, आपण मुख्यतः NLP साठी न्यूरल नेटवर्क्स वापरण्यावर लक्ष केंद्रित करू, आणि आवश्यकतेनुसार NLTK वापरू.
+आपल्या अभ्यासक्रमात आपण मुख्यतः NLP साठी न्यूरल नेटवर्क्स वापरण्यावर लक्ष केंद्रित करू, आणि गरज असताना NLTK वापरू.
-आपण टेबल डेटा आणि प्रतिमांसाठी न्यूरल नेटवर्क्स वापरण्याबद्दल आधीच शिकले आहोत. त्या प्रकारच्या डेटामध्ये आणि मजकूरामध्ये मुख्य फरक म्हणजे मजकूर हा बदलणाऱ्या लांबीचा अनुक्रम आहे, तर प्रतिमांच्या बाबतीत इनपुट आकार आधीच माहित असतो. जरी कॉनव्होल्यूशनल नेटवर्क्स इनपुट डेटामधून नमुने काढू शकतात, तरी मजकूरातील नमुने अधिक जटिल असतात. उदा., नकारात्मकता विषयापासून अनेक शब्दांनी विभक्त असू शकते (उदा. *मला संत्री आवडत नाही*, vs. *मला ती मोठी रंगीत चवदार संत्री आवडत नाही*), आणि तरीही ते एक नमुना म्हणून व्याख्या केले पाहिजे. त्यामुळे, भाषा हाताळण्यासाठी आपल्याला नवीन न्यूरल नेटवर्क प्रकारांची ओळख करून द्यावी लागते, जसे *पुनरावृत्ती नेटवर्क्स* आणि *ट्रान्सफॉर्मर्स*.
+आपण आधीच न्यूरल नेटवर्क्स वापरून टॅब्युलर डेटा आणि प्रतिमांसह काम करणे शिकलो आहोत. त्या प्रकारच्या डेटांपेक्षा मजकूराचा मुख्य फरक असा आहे की मजकूर हा एक बदलत्या लांबीनाचा अनुक्रम आहे, तर प्रतिमांच्या बाबतीत इनपुट आकार आधीपासून माहीत असतो. जिथे कॉन्व्होल्यूशनल नेटवर्क्स इनपुट डेटामधून नकाशा काढू शकतात, तिथे मजकूरातील नकाशे अधिक जटिल असतात. उदा., नकाराचा शब्द विषयापासून दूर असू शकतो आणि तरीही त्याला एक नकाशा म्हणून समजले पाहिजे (उदा. *मला संत्रे आवडत नाही*, विरुद्ध *मला त्या मोठ्या रंगीबेरंगी स्वादिष्ट संत्र्यांची आवड नाही*), आणि ते अजूनही एकाच नकाशा मानावे लागतो. म्हणूनच, भाषा हाताळण्यासाठी आपल्याला नवीन न्यूरल नेटवर्क प्रकार ओळखावे लागतील, जसे की *पुनरावर्ती नेटवर्क्स* आणि *ट्रान्सफॉर्मर्स*.
-## लायब्ररी इंस्टॉल करा
+## लायब्ररी स्थापवा
-जर आपण स्थानिक Python इंस्टॉलेशन वापरून हा अभ्यासक्रम चालवत असाल, तर आपल्याला खालील आदेश वापरून NLP साठी आवश्यक सर्व लायब्ररी इंस्टॉल कराव्या लागतील:
+आपण स्थानिक Python स्थापना वापरत असल्यास, आपण NLP साठी सर्व आवश्यक लायब्ररी खालील कमांड्सने स्थापित करणे आवश्यक असू शकते:
**PyTorch साठी**
```bash
-pip install -r requirements-torch.txt
+pip install -r requirements-pytorch.txt
```
**TensorFlow साठी**
```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) वर TensorFlow सह NLP प्रयत्न करू शकता.
+> आपण [Microsoft Learn](https://docs.microsoft.com/learn/modules/intro-natural-language-processing-tensorflow/?WT.mc_id=academic-77998-cacaste) वर TensorFlow सह NLP प्रयत्न करू शकता
-## GPU चेतावणी
+## GPU सूचना
-या विभागात, काही उदाहरणांमध्ये आपण मोठ्या मॉडेल्सचे प्रशिक्षण घेणार आहोत.
-* **GPU-सक्षम संगणक वापरा**: मोठ्या मॉडेल्ससह काम करताना प्रतीक्षा वेळ कमी करण्यासाठी GPU-सक्षम संगणकावर आपले नोटबुक चालवणे योग्य आहे.
-* **GPU मेमरी मर्यादा**: GPU वर चालवल्यास, विशेषतः मोठ्या मॉडेल्सचे प्रशिक्षण घेताना GPU मेमरी संपण्याच्या परिस्थिती येऊ शकतात.
-* **GPU मेमरी वापर**: प्रशिक्षणादरम्यान GPU मेमरीचा वापर विविध घटकांवर अवलंबून असतो, ज्यामध्ये मिनीबॅच आकार समाविष्ट आहे.
-* **मिनीबॅच आकार कमी करा**: जर GPU मेमरी समस्या आल्या, तर आपल्या कोडमध्ये मिनीबॅच आकार कमी करणे हा एक संभाव्य उपाय असू शकतो.
-* **TensorFlow GPU मेमरी रिलीज**: TensorFlow च्या जुन्या आवृत्त्या GPU मेमरी योग्य प्रकारे रिलीज करत नाहीत, विशेषतः एका Python कर्नलमध्ये अनेक मॉडेल्सचे प्रशिक्षण घेताना. GPU मेमरी वापर प्रभावीपणे व्यवस्थापित करण्यासाठी, आपण TensorFlow ला GPU मेमरी आवश्यकतेनुसार वाटप करण्यासाठी कॉन्फिगर करू शकता.
-* **कोड समावेश**: GPU मेमरी वाटप फक्त आवश्यकतेनुसार वाढवण्यासाठी, आपल्या नोटबुकमध्ये खालील कोड समाविष्ट करा:
+या विभागात, काही उदाहरणांमध्ये आपण मोठे मॉडेल्स प्रशिक्षण देणार आहोत.
+* **GPU-सक्षम संगणक वापरा**: मोठ्या मॉडेल्सवर काम करताना प्रतीक्षा वेळ कमी करण्यासाठी आपले नोटबुक GPU-सक्षम संगणकावर चालवणे शिफारसीय आहे.
+* **GPU स्मृती मर्यादा**: GPU वर चालवताना GPU स्मृती संपण्याची शक्यता असते, विशेषतः मोठे मॉडेल्स प्रशिक्षण देताना.
+* **GPU स्मृतीचा वापर**: प्रशिक्षणादरम्यान वापरली जाणारी GPU स्मृती अनेक घटकांवर अवलंबून असते, ज्यात मिनीबॅच आकार देखील आहे.
+* **मिनीबॅच आकार कमी करा**: GPU स्मृती समस्या आल्यास, आपल्या कोडमधील मिनीबॅच आकार कमी करणे एक उपाय असू शकतो.
+* **TensorFlow GPU स्मृती रिलीज**: जुन्या TensorFlow आवृत्त्या एकाच Python कर्नेलमध्ये अनेक मॉडेल्स प्रशिक्षण देताना GPU स्मृती योग्य प्रकारे रिलीज करणार नाहीत. GPU स्मृतीचा प्रभावी वापर करण्यासाठी, आपण TensorFlow हे फक्त आवश्यकतेनुसार GPU स्मृती प्रदान करण्यासाठी कॉन्फिगर करू शकता.
+* **कोड समाविष्ट करा**: TensorFlow GPU स्मृती वाढवण्यासाठी फक्त आवश्यकतेनुसार वाटप करण्यासाठी खालील कोड आपल्या नोटबुकमध्ये समाविष्ट करा:
```python
physical_devices = tf.config.list_physical_devices('GPU')
@@ -53,17 +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)
+* [मजकूराचे टेन्सर स्वरूप](13-TextRep/README.md)
+* [शब्द एम्बेडिंग्ज](14-Emdeddings/README.md)
* [भाषा मॉडेलिंग](15-LanguageModeling/README.md)
-* [पुनरावृत्ती न्यूरल नेटवर्क्स](16-RNN/README.md)
-* [निर्मितीक्षम नेटवर्क्स](17-GenerativeNetworks/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) वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी कृपया लक्षात ठेवा की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेचा अभाव असू शकतो. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून उद्भवलेल्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.
\ No newline at end of file
+---
+
+
+**अस्वीकरण**:
+हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) चा वापर करून अनुवादित केला आहे. जरी आम्ही अचूकतेसाठी प्रयत्न करतो, तरी कृपया लक्षात घ्या की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेची कमतरता असू शकते. मूळ दस्तऐवज त्याच्या मूळ भाषेत अधिकृत स्रोत मानला पाहिजे. महत्त्वाची माहिती असल्यास, व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराच्या वापरामुळे उद्भवणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थलावणीसाठी आम्ही जबाबदार नाही.
+
\ No newline at end of file
diff --git a/translations/ne/.co-op-translator.json b/translations/ne/.co-op-translator.json
index fab80111..fd16b1cd 100644
--- a/translations/ne/.co-op-translator.json
+++ b/translations/ne/.co-op-translator.json
@@ -5,6 +5,12 @@
"source_file": "AGENTS.md",
"language_code": "ne"
},
+ "CONTRIBUTING.md": {
+ "original_hash": "c6fd7e781b67111a90abd166d0ce4aa0",
+ "translation_date": "2026-07-08T22:02:24+00:00",
+ "source_file": "CONTRIBUTING.md",
+ "language_code": "ne"
+ },
"README.md": {
"original_hash": "12c8eb6bf0867d2f1c32daf613ac5b8b",
"translation_date": "2026-04-06T20:42:01+00:00",
@@ -17,6 +23,19 @@
"source_file": "SECURITY.md",
"language_code": "ne"
},
+ "__translation_failures__": {
+ "lessons/sketchnotes/LICENSE.md": {
+ "original_hash": "45ab63a2cd8f5faef6c9b150618837a4",
+ "source_file": "lessons/sketchnotes/LICENSE.md",
+ "language_code": "ne",
+ "failure_date": "2026-07-08T21:53:34+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-08-26T11:17:22+00:00",
@@ -54,8 +73,8 @@
"language_code": "ne"
},
"examples/README.md": {
- "original_hash": "0d1babfdcbeb46525f2db3fbaaa54cd7",
- "translation_date": "2025-10-03T11:29:19+00:00",
+ "original_hash": "7883d52c2e2a221e0b07a7b112a149b9",
+ "translation_date": "2026-07-08T21:49:52+00:00",
"source_file": "examples/README.md",
"language_code": "ne"
},
@@ -66,8 +85,8 @@
"language_code": "ne"
},
"lessons/0-course-setup/how-to-run.md": {
- "original_hash": "a4717bd9103b9f6cd84d534b83534689",
- "translation_date": "2026-01-15T13:12:45+00:00",
+ "original_hash": "7ad8c7d8604c53649b3d4d1e2f3a6fa1",
+ "translation_date": "2026-07-08T21:50:12+00:00",
"source_file": "lessons/0-course-setup/how-to-run.md",
"language_code": "ne"
},
@@ -191,6 +210,12 @@
"source_file": "lessons/4-ComputerVision/08-TransferLearning/TrainingTricks.md",
"language_code": "ne"
},
+ "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb": {
+ "original_hash": "99b816b6a4957ef4100cee4c4221dff9",
+ "translation_date": "2026-07-08T21:42:44+00:00",
+ "source_file": "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb",
+ "language_code": "ne"
+ },
"lessons/4-ComputerVision/08-TransferLearning/lab/README.md": {
"original_hash": "7765935c35fcee69b9fe2d0cfd6963e2",
"translation_date": "2025-08-26T09:53:14+00:00",
@@ -330,8 +355,8 @@
"language_code": "ne"
},
"lessons/5-NLP/README.md": {
- "original_hash": "8ef02a9318257ea140ed3ed74442096d",
- "translation_date": "2025-08-26T08:05:24+00:00",
+ "original_hash": "038df6f1a73e49f6430740da083bfd6d",
+ "translation_date": "2026-07-08T21:50:36+00:00",
"source_file": "lessons/5-NLP/README.md",
"language_code": "ne"
},
@@ -355,7 +380,7 @@
},
"lessons/6-Other/23-MultiagentSystems/README.md": {
"original_hash": "38a1185ae3d54b180378bbd71ae3ef16",
- "translation_date": "2025-09-23T07:14:43+00:00",
+ "translation_date": "2026-07-08T21:54:23+00:00",
"source_file": "lessons/6-Other/23-MultiagentSystems/README.md",
"language_code": "ne"
},
diff --git a/translations/ne/CONTRIBUTING.md b/translations/ne/CONTRIBUTING.md
new file mode 100644
index 00000000..3a576c19
--- /dev/null
+++ b/translations/ne/CONTRIBUTING.md
@@ -0,0 +1,29 @@
+# AI-For-Beginners मा योगदान दिनुहोस्
+
+AI-For-Beginners मा योगदान दिनु भएकोमा धन्यवाद! हामी अनुवाद, पाठ सुधार, र फर्म्याटिङ सुधारहरू स्वागत गर्दछौं।
+
+## माइक्रोसफ्ट कन्क्रिब्युटर लाइसेन्स एग्रीमेन्ट (CLA)
+
+यो परियोजनाले योगदान र सुझावहरू स्वागत गर्दछ। अधिकांश योगदानहरूका लागि तपाईंले कन्क्रिब्युटर लाइसेन्स एग्रीमेन्ट (CLA) मा सहमति जनाउनुपर्ने हुन्छ जसले तपाईंलाई तपाईंको योगदान प्रयोग गर्ने अधिकार दिन्छ। विवरणको लागि, [https://cla.microsoft.com](https://cla.microsoft.com) भ्रमण गर्नुहोस्।
+
+तपाईंले पुल रिक्वेस्ट पठाउँदा, CLA-बोटले स्वतः पत्ता लगाउनेछ कि तपाईंले CLA प्रदान गर्नु आवश्यक छ वा छैन र PR लाई उपयुक्त रूपमा चिन्ह लगाउनेछ (जस्तै, लेबल, टिप्पणी)। केवल बोटले दिएको निर्देशनहरू पालना गर्नुहोस्। हामीले हाम्रो 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/ne/examples/README.md b/translations/ne/examples/README.md
index 21d29780..0d0c49a3 100644
--- a/translations/ne/examples/README.md
+++ b/translations/ne/examples/README.md
@@ -1,31 +1,31 @@
-# सुरु गर्न सजिलो एआई उदाहरणहरू
+# सुरूवातीहरूका लागि मैत्रीपूर्ण एआई उदाहरणहरू
-स्वागत छ! यो डाइरेक्टरीले एआई र मेसिन लर्निङमा सुरु गर्न मद्दत गर्ने सरल, स्वतन्त्र उदाहरणहरू समावेश गर्दछ। प्रत्येक उदाहरणलाई विस्तृत टिप्पणीहरू र चरणबद्ध व्याख्याका साथ सुरु गर्न सजिलो बनाइएको छ।
+स्वागत छ! यो डाइरेक्टरीमा एआई र मेसिन लर्निंग सुरु गर्न सरल, स्वतन्त्र उदाहरणहरू समावेश गरिएको छ। प्रत्येक उदाहरणलाई सुरुवातकर्ताका लागि अनुकूल बनाएर विस्तृत टिप्पणीहरू र चरण-दर-चरण व्याख्याहरू सहित डिजाइन गरिएको छ।
## 📚 उदाहरणहरूको अवलोकन
-| उदाहरण | विवरण | कठिनाई | पूर्वशर्तहरू |
+| उदाहरण | विवरण | कठिनाई | आवश्यकताहरू |
|---------|-------------|------------|---------------|
-| [Hello AI World](../../../examples/01-hello-ai-world.py) | तपाईंको पहिलो एआई प्रोग्राम - साधारण ढाँचा पहिचान | ⭐ सुरु गर्ने | 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) | तपाईंको पहिलो एआई कार्यक्रम - सरल ढाँचा पहिचान | ⭐ शुरुवात | पाइथन आधारभूत ज्ञान |
+| [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
-# For Python scripts
+# पाइथन स्क्रिप्टहरूको लागि
pip install numpy
-# For Jupyter notebooks (image classifier)
+# ज्यूपिटर नोटबुकहरूको लागि (छवि वर्गीकरणकर्ता)
pip install jupyter numpy pillow tensorflow
```
-वा मुख्य पाठ्यक्रमको conda वातावरण प्रयोग गर्नुहोस्:
+वा मुख्य पाठ्यक्रमबाट कन्डा वातावरण प्रयोग गर्नुहोस्:
```bash
conda env create --name ai4beg --file ../environment.yml
@@ -34,52 +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. **Simple Neural Network बनाउनुहोस्** - न्यूरल नेटवर्क कसरी काम गर्छ बुझ्नुहोस्
-3. **Image Classifier प्रयास गर्नुहोस्** - वास्तविक छविहरूसँग एआईलाई काममा देख्नुहोस्
-4. **Text Sentiment विश्लेषण गर्नुहोस्** - प्राकृतिक भाषा प्रशोधन अन्वेषण गर्नुहोस्
+1. **"Hello AI World" बाट सुरु गर्नुहोस्** - ढाँचा पहिचानका आधारहरू सिक्नुहोस्
+2. **एक सरल न्यूरल नेटवर्क बनाउनुहोस्** - न्यूरल नेटवर्क कसरी काम गर्छ बुझ्नुहोस्
+3. **तस्बिर वर्गीकरण प्रयास गर्नुहोस्** - वास्तविक तस्बिरहरूसँग एआईको क्रियाकलाप हेर्नुहोस्
+4. **पाठ भावना विश्लेषण गर्नुहोस्** - प्राकृतिक भाषा प्रशोधन अन्वेषण गर्नुहोस्
-## 💡 सुरु गर्नेहरूको लागि सुझावहरू
+## 💡 शुरुवातकर्ताका लागि सुझावहरू
-- **कोड टिप्पणीहरू ध्यानपूर्वक पढ्नुहोस्** - तिनीहरूले प्रत्येक लाइन के गर्छ भनेर व्याख्या गर्छन्
-- **प्रयोग गर्नुहोस्!** - मानहरू परिवर्तन गरेर के हुन्छ हेर्न प्रयास गर्नुहोस्
-- **सबै कुरा बुझ्न चिन्ता नगर्नुहोस्** - सिक्न समय लाग्छ
-- **प्रश्न सोध्नुहोस्** - [Discussion board](https://github.com/microsoft/AI-For-Beginners/discussions) प्रयोग गर्नुहोस्
+- **कोड टिप्पणीहरू सावधानीपूर्वक पढ्नुहोस्** - तिनीहरूले प्रत्येक लाइनले के गर्छ भन्ने बताउँछन्
+- **प्रयोग गर्नुहोस्!** - मानहरू परिवर्तन गरेर के हुन्छ अनुभव गर्नुहोस्
+- **सब थाहा नपाए पनि चिन्ता नगर्नुहोस्** - सिक्न समय लाग्छ
+- **प्रश्न सोध्न नहिचकिचाउनुहोस्** - [चर्चा बोर्ड](https://github.com/microsoft/AI-For-Beginners/discussions) प्रयोग गर्नुहोस्
-## 🔗 अर्को चरणहरू
+## 🔗 अर्को कदमहरू
-यी उदाहरणहरू पूरा गरेपछि, पूर्ण पाठ्यक्रम अन्वेषण गर्नुहोस्:
-- [Introduction to AI](../lessons/1-Intro/README.md)
-- [Neural Networks](../lessons/3-NeuralNetworks/README.md)
-- [Computer Vision](../lessons/4-ComputerVision/README.md)
-- [Natural Language Processing](../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) प्रयोग गरेर अनुवाद गरिएको हो। हामी यथासम्भव शुद्धता सुनिश्चित गर्न प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छ। मूल दस्तावेज़ यसको मातृभाषामा आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।
\ No newline at end of file
+
+**अस्वीकरण**:
+यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको हो। हामी सही हुन प्रयास गर्छौं, तर कृपया जानकार हुनुस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छन्। मूल दस्तावेज़ यसको मूल भाषामा आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलत बुझाइ वा त्रुटिको लागि हामी जिम्मेवार छैनौं।
+
\ No newline at end of file
diff --git a/translations/ne/lessons/0-course-setup/how-to-run.md b/translations/ne/lessons/0-course-setup/how-to-run.md
index bb96774b..d21a1109 100644
--- a/translations/ne/lessons/0-course-setup/how-to-run.md
+++ b/translations/ne/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)** स्थापना गर्नु हो - यो हल्का तौलको स्थापना हो जुन `conda` प्याकेज व्यवस्थापकलाई विभिन्न Python **भर्चुअल वातावरणहरू** को लागि समर्थन गर्दछ।
-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 प्रयोग गर्दै
+### Python एक्सटेन्सन सहित 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 एक्सटेन्सन](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=academic-77998-cacaste) सहित खोल्दा प्रयोग गरिन्छ।
-> **Note**: तपाइँले जब रिपोजिटरी क्लोन गरी VS Code मा खोल्नुहुन्छ, तब यसले तपाईंलाई Python विस्तारहरू स्थापना गर्न स्वचालित सल्लाह दिनेछ। माथि वर्णन गरेअनुसार miniconda पनि स्थापित गर्नुपर्ने हुन्छ।
+> **सूचना**: जब तपाईंले रिपोजिटरी क्लोन गरेर VS Code मा फोल्डर खोल्नुहुन्छ, यो तपाईंलाई स्वतः Python एक्सटेन्सनहरू स्थापना गर्न सुझाव दिनेछ। माथि वर्णन गरे अनुसार miniconda पनि स्थापना गर्नु पर्नेछ।
-> **Note**: यदि 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 स्थापना आवश्यक पर्छ, र यो बढी जटिल हुन्छ, त्यसैले हामी यसलाई अनुभवी प्रयोगकर्ताहरूलाई सिफारिस गर्दछौं।
## क्लाउडमा चलाउने
-यदि तपाईंले Python स्थानीय रूपमा स्थापना गर्न चाहनुहुन्न र तपाईंलाई केही क्लाउड स्रोतहरू पहुँचयोग्य छन् भने—कोड क्लाउडमा चलाउनु राम्रो विकल्प हो। तपाईंले यसलाई गर्नका लागि विभिन्न तरिकाहरू छन्:
+यदि तपाईंले Python स्थानीय रूपमा स्थापना गर्न चाहनुहुन्न र केही क्लाउड स्रोतहरू पहुँचमा छ भने - क्लाउडमा कोड चलाउनु राम्रो विकल्प हो। यसका लागि धेरै उपायहरू छन्:
-* **[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 मा केही कोड परीक्षण गर्नका लागि क्लाउडमा निःशुल्क कम्प्युटिंग स्रोतहरू प्रदान गर्छ। मुख्य पृष्ठमा रिपोजिटरी Binder मा खोल्ने बटन हुन्छ - यसले छिटो तपाईंलाई Binder साइटमा लग्नेछ, जुन एउटा अन्तर्निहित कन्टेनर निर्माण गर्नेछ र तपाईंका लागि सहज रूपमा Jupyter वेब इन्टरफेस सुरु गर्नेछ।
+* **[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 मा भएका कोडहरूको परीक्षण गर्नका लागि निःशुल्क क्लाउड कम्प्युटिङ स्रोतहरू प्रदान गर्दछ। मुख्य पृष्ठमा एउटा बटन छ जसले रिपो लाई Binder मा खोल्छ - यसले छिट्टै Binder साइटमा लगिन्छ, जुन अन्तर्निहित कन्टेनर बनाउँछ र तपाईंलाई सहज तरिकाले Jupyter वेब इन्टरफेस सुरु गर्दछ।
-> **Note**: दुरुपयोग रोक्न 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 मार्फत यसमा जडान गर्नुहोस्। त्यसपछि तपाईं यस मेसिनमा रिपो क्लोन गरेर सिक्न सुरु गर्न सक्नुहुन्छ। NC-series VM हरू 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 समर्थन छ।
-> **Note**: केही सदस्यताहरू, जस्तै 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/) ले 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/ne/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb b/translations/ne/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
index e09ef5dd..1ac3dff1 100644
--- a/translations/ne/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
+++ b/translations/ne/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
@@ -4,11 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "# पूर्व-प्रशिक्षित मोडेलहरू र ट्रान्सफर लर्निङ\n",
+ "# पूर्व-प्रशिक्षित मोडेलहरू र ट्रान्सफर लर्निंग\n",
"\n",
- "CNN हरूलाई प्रशिक्षण दिन धेरै समय लाग्न सक्छ, र त्यसका लागि धेरै डाटा आवश्यक पर्छ। तर, धेरैजसो समय नेटवर्कले तस्बिरहरूबाट ढाँचा निकाल्न प्रयोग गर्ने उत्कृष्ट तल्लो-स्तरका फिल्टरहरू सिक्नमै बित्छ। एउटा स्वाभाविक प्रश्न उठ्छ - के हामी एउटा डाटासेटमा प्रशिक्षण गरिएको न्यूरल नेटवर्कलाई पूर्ण प्रशिक्षण प्रक्रिया बिना नै फरक तस्बिरहरू वर्गीकरण गर्न अनुकूलन गर्न सक्छौं?\n",
+ "CNN प्रशिक्षण गर्न धेरै समय लाग्न सक्छ, र त्यहाँ धेरै डेटा आवश्यक पर्छ। यद्यपि, धेरै समय सबैभन्दा राम्रो कम-स्तरीय फिल्टर सिक्न खर्च हुन्छ जुन नेटवर्कले तस्बिरबाट ढाँचा निकाल्न प्रयोग गर्दछ। एक स्वाभाविक प्रश्न उठ्छ - के हामी एक डेटासेटमा प्रशिक्षित न्यूरल नेटवर्कलाई प्रयोग गरी फरक तस्बिरहरूको वर्गीकरण गर्न पूर्ण प्रशिक्षण प्रक्रिया बिना अनुकूलन गर्न सक्छौं?\n",
"\n",
- "यस दृष्टिकोणलाई **ट्रान्सफर लर्निङ** भनिन्छ, किनभने हामी एउटा न्यूरल नेटवर्क मोडेलबाट अर्कोमा केही ज्ञान स्थानान्तरण गर्छौं। ट्रान्सफर लर्निङमा, हामी सामान्यतया एउटा पूर्व-प्रशिक्षित मोडेलबाट सुरु गर्छौं, जुन पहिले नै कुनै ठूलो तस्बिर डाटासेट, जस्तै **ImageNet**, मा प्रशिक्षण गरिएको हुन्छ। ती मोडेलहरूले सामान्य तस्बिरहरूबाट विभिन्न विशेषताहरू निकाल्न राम्रो काम गर्न सक्छन्, र धेरैजसो अवस्थामा ती निकालेका विशेषताहरूको आधारमा मात्र एउटा वर्गीकरणकर्ता निर्माण गर्दा पनि राम्रो नतिजा प्राप्त गर्न सकिन्छ।\n"
+ "यसलाई भनिन्छ **ट्रान्सफर लर्निंग**, किनभने हामी एउटा न्यूरल नेटवर्क मोडेलबाट अर्कोमा केही ज्ञान स्थानान्तरण गर्छौं। ट्रान्सफर लर्निंगमा, हामी सामान्यतया पूर्व-प्रशिक्षित मोडेलबाट सुरु गर्छौं, जुन केही ठूलो तस्बिर डेटासेटमा प्रशिक्षित गरिएको हुन्छ, जस्तै **ImageNet**। ती मोडेलहरूले पहिले नै साधारण तस्बिरहरूबाट विभिन्न विशेषताहरू निकाल्न राम्रो काम गर्न सक्छन्, र धेरै अवस्थामा ती निकालिएका विशेषताहरूमा आधारित क्लासिफायर बनाउँदा राम्रो परिणाम आउन सक्छ।\n"
]
},
{
@@ -31,9 +31,9 @@
"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",
+ "यो इकाइमा, हामी बिरालो र कुकुरका तस्बिरहरू वर्गीकरण गर्ने वास्तविक जीवनको समस्या समाधान गर्नेछौं। यस कारणले, हामी [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",
"\n",
- "आउनुहोस्, यो डेटासेट डाउनलोड गरौं र यसलाई `data` डाइरेक्टरीमा निकालौं (यो प्रक्रिया केही समय लाग्न सक्छ!):\n"
+ "यस डेटासेटलाई डाउनलोड गरी `data` फोल्डरमा निकालौं (यस प्रक्रियामा केही समय लाग्न सक्छ!):\n"
]
},
{
@@ -64,7 +64,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "दुर्भाग्यवश, डेटासेटमा केही भ्रष्ट छवि फाइलहरू छन्। भ्रष्ट फाइलहरू जाँच गर्नको लागि छिटो सफाई गर्न आवश्यक छ। यो ट्यूटोरियललाई अव्यवस्थित नगर्नको लागि, हामीले डेटासेटलाई प्रमाणित गर्ने कोडलाई एउटा मोड्युलमा सार्यौं।\n"
+ "दुर्भाग्यवश, डाटासेटमा केही भ्रष्ट इमेज फाइलहरू छन्। हामीले छिटो सफा गर्ने काम गर्न आवश्यक छ जसले भ्रष्ट फाइलहरू जाँच गर्न सकियोस्। यो ट्यूटोरियललाई बाधा नपु¥याउनको लागि, हामीले डाटासेट जाँच गर्ने कोडलाई एउटा मोड्युलमा सार्यौं।\n"
]
},
{
@@ -335,11 +335,11 @@
"source": [
"## डेटासेट लोड गर्दै\n",
"\n",
- "अघिल्लो उदाहरणहरूमा, हामीले Keras मा निर्मित डेटासेटहरू लोड गर्दै थियौं। अब हामी हाम्रो आफ्नै डेटासेटसँग काम गर्न जाँदैछौं, जसलाई हामीले छविहरूको डाइरेक्टरीबाट लोड गर्न आवश्यक छ।\n",
+ "अघिल्लो उदाहरणहरूमा, हामी Keras मा निर्मित डेटासेटहरू लोड गर्दै थियौं। अब हामी हाम्रो आफ्नै डेटासेटसँग व्यवहार गर्दैछौं, जुन हामीले तस्बिरहरूको एउटा डिरेक्टरीबाट लोड गर्न आवश्यक छ।\n",
"\n",
- "वास्तविक जीवनमा, छवि डेटासेटहरूको आकार धेरै ठूलो हुन सक्छ, र सबै डेटा मेमोरीमा फिट हुने आशा गर्न सकिँदैन। त्यसैले, डेटासेटहरू प्रायः **जेनरेटरहरू** को रूपमा प्रतिनिधित्व गरिन्छ, जसले प्रशिक्षणको लागि उपयुक्त मिनिब्याचहरूमा डेटा फिर्ता गर्न सक्छ।\n",
+ "वास्तविक जीवनमा, तस्बिर डेटासेटहरूको आकार धेरै ठूलो हुन सक्छ, र सबै डेटा मेमोरीमा फिट हुन सक्छ भनेर भर पर्न सकिँदैन। त्यसैले, डेटासेटहरू प्रायः **जनरेटरहरू** को रूपमा प्रतिनिधित्व गरिन्छ जुन ट्रेनिंगका लागि उपयुक्त मिनिब्याचहरूमा डेटा फर्काउन सक्छन्।\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,7 +453,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "> **नोट**: डेटासेटमा रहेका सबै छविहरू फ्लोटिङ पोइन्ट टेन्सरको रूपमा ०-२५५ दायरामा प्रतिनिधित्व गरिन्छ। तिनीहरूलाई न्युरल नेटवर्कमा पठाउनु अघि, हामीले ती मानहरूलाई ०-१ दायरामा स्केल गर्न आवश्यक छ। छविहरू प्लट गर्दा, हामीले त्यही गर्नुपर्छ, वा मानहरूलाई `int` प्रकारमा रूपान्तरण गर्नुपर्छ (जसलाई हामी माथिको कोडमा गर्छौं), ताकि `matplotlib` लाई देखाउन सकियोस् कि हामीले मूल अस्केल गरिएको छवि प्लट गर्न चाहन्छौं।\n"
+ "> **टीप**: डेटासेटमा रहेका सबै तस्बिरहरू फ्लोटिङ पोइन्ट टेन्सरहरूका रूपमा प्रतिनिधित्व गरिन्छन् जसको दायरा 0-255 हुन्छ। तिनीहरूलाई न्यूरल नेटवर्कमा पास गर्नु अघि, हामीले ती मानहरूलाई 0-1 दायरामा स्केल गर्न आवश्यक छ। तस्बिरहरू प्लट गर्दा, हामीले त्यही गर्नु पर्छ, वा मानहरूलाई `int` प्रकारमा रूपान्तरण गर्नुपर्दछ (जसलाई माथिको कोडमा गर्छौं), ताकि `matplotlib` लाई देखाउन सकियोस् कि हामी मौलिक गैर-स्केल गरिएको तस्बिर प्लट गर्न चाहन्छौं।\n"
]
},
{
@@ -462,7 +462,7 @@
"source": [
"## पूर्व-प्रशिक्षित मोडेलहरू\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",
@@ -510,17 +520,17 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "यहाँ केही महत्त्वपूर्ण कुराहरू छन्:\n",
- "* कुनै पनि प्रि-ट्रेन गरिएको नेटवर्कमा इनपुट पठाउनु अघि, त्यसलाई निश्चित तरिकाले पूर्व-प्रक्रिया गर्नुपर्छ। यो काम `preprocess_input` नामक सम्बन्धित फंक्शनलाई कल गरेर गरिन्छ, जसले छविहरूको ब्याचलाई लिन्छ र तिनीहरूको प्रक्रिया गरिएको रूप फिर्ता दिन्छ। VGG-16 को हकमा, छविहरूलाई सामान्यीकरण गरिन्छ, र प्रत्येक च्यानलको लागि पूर्व-परिभाषित औसत मान घटाइन्छ। यसको कारण VGG-16 मूल रूपमा यो पूर्व-प्रक्रियासहित प्रशिक्षित गरिएको थियो।\n",
- "* न्यूरल नेटवर्क इनपुट ब्याचमा लागू गरिन्छ, र परिणामस्वरूप हामीलाई १०००-तत्वको टेन्सरहरूको ब्याच प्राप्त हुन्छ, जसले प्रत्येक वर्गको सम्भावना देखाउँछ। यस टेन्सरमा `argmax` कल गरेर हामी सबैभन्दा सम्भावित वर्गको नम्बर पत्ता लगाउन सक्छौं।\n",
- "* प्राप्त परिणाम [एक `ImageNet` वर्गको नम्बर](https://gist.github.com/yrevar/942d3a0ac09ec9e5eb3a) हो। यस परिणामलाई बुझ्नका लागि, हामी `decode_predictions` फंक्शन प्रयोग गर्न सक्छौं, जसले शीर्ष n वर्गहरू तिनीहरूको नामसहित फिर्ता दिन्छ।\n"
+ "यहाँ केही महत्वपूर्ण कुरा छन्:\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"
+ "अब हामी 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",
+ "फिचर टेन्सरको आयाम 7x7x512 छ, तर यसलाई दृश्यात्मक बनाउन हामीले यसलाई 2D आकारमा पुनःआकार दिनुपर्यो।\n",
"\n",
- "अब हेरौं, के ती फिचरहरू छविहरू वर्गीकृत गर्न प्रयोग गर्न सकिन्छ। आउनुहोस्, केही छविहरूको भाग (हाम्रो अवस्थामा, ५० मिनिब्याचहरू) म्यानुअली लिऔं, र तिनका फिचर भेक्टरहरू पूर्व-गणना गरौं। यसका लागि हामी Tensorflow को **dataset** API प्रयोग गर्न सक्छौं। `map` फङ्सनले एउटा डेटासेट लिन्छ र दिइएको लम्ब्डा-फङ्सनलाई लागू गरेर त्यसलाई रूपान्तरण गर्छ। हामीले यो मेकानिजम प्रयोग गरेर नयाँ डेटासेटहरू, `ds_features_train` र `ds_features_test`, निर्माण गर्छौं, जसमा मूल छविहरूको सट्टा VGG-बाट निकालिएका फिचरहरू समावेश हुन्छन्।\n"
+ "अब आउनुहोस् हेर्न प्रयास गरौँ कि ती फिचरहरूलाई तस्बिर वर्गीकरण गर्न प्रयोग गर्न सकिन्छ कि छैन। हामीले केही हिस्सा तस्बिरहरू (हाम्रो केसमा ५० मिनिब्याच) हस्तचालित रूपमा लिएर तिनीहरूको फिचर भेक्टरहरू पूर्व-गणना गर्नेछौं। हामी यसका लागि Tensorflow **dataset** API प्रयोग गर्न सक्छौं। `map` फंक्शनले एउटा डेटासेट लिन्छ र दिइएको ल्याम्बडा-फंक्शन लागू गरेर त्यसलाई रूपान्तरण गर्छ। हामी यस यन्त्रलाई प्रयोग गरेर नयाँ डेटासेटहरू, `ds_features_train` र `ds_features_test`, निर्माण गर्छौं जसमा मूल तस्बिरहरूको सट्टा VGG-अनुक्रमित फिचरहरू हुन्छन्।\n"
]
},
{
@@ -712,9 +723,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "हामीले `.take(50)` निर्माण प्रयोग गरेर डेटासेटको आकार सीमित गरेका छौं, जसले हाम्रो डेमोस्ट्रेसनलाई छिटो बनाउँछ। तपाईंले यो प्रयोग पूर्ण डेटासेटमा पनि गर्न सक्नुहुन्छ।\n",
+ "हामीले प्रदर्शन छिटो बनाउनको लागि डाटासेटको साइज सीमित गर्न `.take(50)` संरचना प्रयोग गर्यौं। तपाईं पक्कै पनि यो प्रयोग पूर्ण डाटासेटमा गर्न सक्नुहुन्छ।\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 लाई एउटा विशेषता निकाल्ने उपकरणको रूपमा काम गर्न, र यसलाई पुन: प्रशिक्षण नगरियोस्। त्यसैले, हामीले **convolutional feature extractor का तौलहरू स्थिर (freeze) गर्नुपर्नेछ**। हामी `model.layers[0]` कल गरेर नेटवर्कको पहिलो तहमा पहुँच गर्न सक्छौं, र हामीले केवल `trainable` गुणलाई `False` मा सेट गर्नुपर्नेछ।\n",
+ "यो मोडल एउटा इन्ड-टु-इन्ड वर्गीकरण नेटवर्क जस्तो देखिन्छ, जसले एउटा तस्बिर लिएर वर्ग फिर्ता गर्दछ। यद्यपि, जटिल कुरा भनेको हामीले VGG16 लाई फिचर एक्स्ट्र्याक्टरको रूपमा प्रयोग गर्न चाहन्छौं, र पुनः तालिम दिइनुपर्ने छैन। त्यसकारण, हामीले **कन्वोलुसनल फिचर एक्स्ट्र्याक्टरका तौलहरू फ्रीज गर्नु आवश्यक छ**। हामी नेटवर्कको पहिलो तहमा `model.layers[0]` कल गरेर पहुँच गर्न सक्छौं, र हामीले `trainable` सम्पत्ति `False` मा सेट गर्नुपर्नेछ।\n",
"\n",
- "> **Note**: feature extractor का तौलहरू स्थिर गर्नु आवश्यक छ, किनभने अन्यथा अप्रशिक्षित वर्गीकरण तहले convolutional extractor का मूल पूर्व-प्रशिक्षित तौलहरू नष्ट गर्न सक्छ।\n",
+ "> **नोट**: फिचर एक्स्ट्र्याक्टरका तौलहरू फ्रीज गर्नु आवश्यक छ, किनभने अन्यथा अप्रशिक्षित क्लासिफायर तहले कन्वोलुसनल एक्स्ट्र्याक्टरका मूल प्री-ट्रेन गरिएको तौलहरू नष्ट गर्न सक्छ।\n",
"\n",
- "तपाईंले देख्न सक्नुहुन्छ कि हाम्रो नेटवर्कमा कुल तौलहरूको संख्या लगभग १५ मिलियन छ, तर हामी केवल २५ हजार तौलहरू मात्र प्रशिक्षण गर्दैछौं। शीर्ष-स्तरका convolutional फिल्टरका अन्य सबै तौलहरू पूर्व-प्रशिक्षित छन्। यो राम्रो कुरा हो, किनभने हामी सानो संख्याका उदाहरणहरूसँग सानो संख्याका तौलहरूलाई राम्रोसँग fine-tune गर्न सक्षम छौं।\n",
+ "तपाईंले देख्न सक्नुहुन्छ कि हाम्रो नेटवर्कमा कुल प्यारामिटरहरूको संख्या करिब १५ मिलियन छ, हामीले केवल २५ हजार प्यारामिटर मात्र तालिम दिइरहेका छौं। अन्य सबै माथिल्लो तहका कन्वोलुसन फिल्टरहरू प्री-ट्रेन भएका छन्। त्यो राम्रो हो, किनभने हामी कम संख्या प्यारामिटरहरूलाई कम उदाहरणहरूसँग फाइन-ट्यून गर्न सक्षम छौं।\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": [
- "## ट्रान्सफर लर्निङलाई फाइन-ट्युनिङ गर्ने\n",
+ "## फाइन-ट्युनिंग ट्रान्सफर लर्निङ\n",
"\n",
- "अघिल्लो खण्डमा, हामीले अन्तिम क्लासिफायर तहलाई हाम्रो आफ्नै डेटासेटका छविहरू वर्गीकरण गर्न प्रशिक्षण दिएका थियौं। तर, हामीले फिचर एक्स्ट्र्याक्टरलाई पुनःप्रशिक्षण गरेका थिएनौं, र हाम्रो मोडेलले ImageNet डेटा मा सिकेका फिचरहरूमा भर परेको थियो। यदि तपाईंका वस्तुहरू साधारण ImageNet छविहरूभन्दा भिन्न देखिन्छन् भने, यो फिचरहरूको संयोजनले राम्रोसँग काम नगर्न सक्छ। त्यसैले, कनभोल्युसनल तहहरू पनि प्रशिक्षण गर्न सुरु गर्नु उपयुक्त हुन्छ।\n",
+ "अघिल्लो खण्डमा, हामीले अन्तिम वर्गीकरणकर्ता तहलाई हाम्रो आफ्नै डेटासेटका तस्बिरहरू वर्गीकरण गर्न तालिम दिएका थियौं। यद्यपि, हामीले फिचर एक्स्ट्राक्टरलाई पुन: तालिम दिएका थियौंन र हाम्रो मोडेलले ImageNet डाटामा सिकेको फिचरहरूमा भरोसा गर्यो। यदि तपाइँका वस्तुहरू साधारण ImageNet तस्बिरहरूसँग दृश्यात्मक रूपमा फरक छन् भने, फिचरहरूको यो संयोजनले राम्रो काम नगर्न सक्छ। त्यसैले कन्भोलुसनल तहहरू पनि प्रशिक्षण सुरु गर्नु उचित हुन्छ।\n",
"\n",
- "यसका लागि, हामीले पहिले फ्रिज गरेका कनभोल्युसनल फिल्टर प्यारामिटरहरू अनफ्रिज गर्न सक्छौं। \n",
+ "त्यसको लागि, हामीले पहिले फ्रीज गरेका कन्भोलुसनल फिल्टर प्यारामिटरहरू अनफ्रिज गर्न सक्छौं। \n",
"\n",
- "> **Note:** पहिलो चरणमा प्यारामिटरहरू फ्रिज गर्नु र वर्गीकरण तहमा तौलहरू स्थिर बनाउनका लागि केही इपोक्ससम्म प्रशिक्षण गर्नु महत्त्वपूर्ण छ। यदि तपाईंले तुरुन्तै अनफ्रिज गरिएका प्यारामिटरहरूसँग अन्त्य-देखि-अन्त्य नेटवर्क प्रशिक्षण सुरु गर्नुभयो भने, ठूला त्रुटिहरूले कनभोल्युसनल तहहरूमा पूर्व-प्रशिक्षित तौलहरू नष्ट गर्न सक्छ।\n",
+ "> **नोट:** तपाइँले सबैभन्दा पहिले प्यारामिटरहरू फ्रीज गरी वर्गीकरण तहमा तौलहरू स्थिर बनाउनका लागि केहि एपोकहरू प्रशिक्षण गर्नु महत्त्वपूर्ण छ। यदि तपाइँ तुरुन्तै अनफ्रिज गरिएको प्यारामिटरहरूसँग अन्तदेखि-अन्तसम्म नेटवर्क तालिम सुरु गर्नु भयो भने, ठूला त्रुटिहरूले कन्भोलुसनल तहहरूमा पूर्व-प्रशिक्षित तौलहरू नष्ट गर्न सक्छ।\n",
"\n",
- "हाम्रो कनभोल्युसनल VGG-16 मोडेल पहिलो तहभित्र अवस्थित छ, र यसमा धेरै तहहरू समावेश छन्। हामी यसको संरचनालाई हेर्न सक्छौं:\n"
+ "हाम्रो कन्भोलुसनल VGG-16 मोडेल पहिलो तह भित्र रहेको छ, र यसले आफैंमा धेरै तहहरू समावेश गर्दछ। हामी यसको संरचनामा एक नजर हाल्न सक्छौं: \n"
]
},
{
@@ -944,7 +955,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "हामी कन्भोलुसनल बेसका सबै तहहरू अनफ्रिज गर्न सक्छौं:\n"
+ ]
},
{
"cell_type": "code",
@@ -959,7 +972,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "तर, सबैलाई एकैपटक अनफ्रिज गर्नु राम्रो विचार होइन। हामी पहिलो चरणमा केही अन्तिम कन्भोल्युसन तहहरू मात्र अनफ्रिज गर्न सक्छौं, किनभने तिनीहरूले हाम्रो छविहरूसँग सम्बन्धित उच्च स्तरका ढाँचाहरू समावेश गर्छन्। उदाहरणका लागि, सुरुमा, हामी अन्तिम ४ तहहरू बाहेक सबै तहहरू फ्रिज गर्न सक्छौं:\n"
+ "यद्यपि, सबैलाई एकै पटक अनफ्रिज गर्नु सबैभन्दा राम्रो विचार होइन। हामी पहिले केही अन्तिम डिजाइन तहहरू मात्र अनफ्रिज गर्न सक्छौं, किनकि तिनीहरूमा उच्च स्तरका ढाँचा हुन्छन् जुन हाम्रा छविहरूको लागि सान्दर्भिक हुन्छन्। उदाहरणका लागि, सुरु गर्नका लागि हामी अन्तिम ४ बाहेकका सबै तहहरूलाई फ्रिज गर्न सक्छौं: \n"
]
},
{
@@ -998,11 +1011,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "प्रशिक्षण गर्न मिल्ने प्यारामिटरहरूको संख्या उल्लेखनीय रूपमा बढेको छ, तर यो अझै पनि सबै प्यारामिटरहरूको करिब ५०% मात्र हो।\n",
+ "ट्रेन योग्य प्यारामिटरहरूको संख्या उल्लेखनीय रूपमा बढेको छ, तर यो अझै सबै प्यारामिटरहरूको करिब ५०% को आसपास नै छ भनेर हेर्नुहोस्।\n",
"\n",
- "अनफ्रिज गरेपछि, हामी केही थप इपोक्सहरू प्रशिक्षण गर्न सक्छौं (हाम्रो उदाहरणमा, हामी केवल एक इपोक गर्नेछौं)। तपाईंले कम लर्निङ रेट पनि चयन गर्न सक्नुहुन्छ, ताकि प्रि-ट्रेन गरिएको वेट्समा पर्ने प्रभावलाई न्यून गर्न सकियोस्। तर, कम लर्निङ रेटको साथमा पनि, प्रशिक्षणको सुरुवातमा एक्युरेसी घट्ने अपेक्षा गर्न सकिन्छ, जबसम्म यो स्थिर वेट्सको अवस्थामा भन्दा अलिकति उच्च स्तरमा पुग्दैन।\n",
+ "अनफ्रिज भएपछि, हामी केहि थप epochs को प्रशिक्षण गर्न सक्छौं (हाम्रो उदाहरणमा, हामी केवल एउटा गर्नेछौं)। तपाईंले प्रि-ट्रेन गरिएका वजनमा असर न्यून गर्न कम सिकाइ दर पनि चयन गर्न सक्नुहुन्छ। यद्यपि, कम सिकाइ दरसँग पनि, तपाईंले प्रारम्भिक प्रशिक्षणमा सटिकता घट्ने अपेक्षा गर्न सक्नुहुन्छ, जबसम्म यो अन्ततः स्थिर वजनको अवस्थामा भन्दा थोरै उच्च स्तरमा पुग्दैन।\n",
"\n",
- "> **Note:** यो प्रशिक्षण धेरै ढिलो हुन्छ, किनभने हामीले नेटवर्कका धेरै तहहरू हुँदै ग्रेडियन्ट्सलाई फिर्ता प्रवाह गराउनुपर्छ!\n"
+ "> **Note:** यो प्रशिक्षण धेरै ढिलो हुन्छ, किनकि हामीलाई नेटवर्कका धेरै तहहरू मार्फत ब्याक प्रोपगेट गर्नु पर्छ!\n"
]
},
{
@@ -1026,9 +1039,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "हामी उच्च प्रशिक्षण शुद्धता प्राप्त गर्न सक्ने सम्भावना छ, किनकि हामी अधिक शक्तिशाली नेटवर्क प्रयोग गर्दैछौं जसमा धेरै पैरामीटरहरू छन्, तर मान्यता शुद्धता त्यति धेरै बढ्ने छैन।\n",
+ "हामी सम्भवतः उच्च प्रशिक्षण सटीकता हासिल गर्नेछौं, किनकि हामी थप प्यारामिटरहरू सहित थप शक्तिशाली नेटवर्क प्रयोग गर्दैछौं, तर प्रमाणीकरण सटीकता त्यति धेरै बढ्दैन।\n",
"\n",
- "नेटवर्कका केही थप तहहरू अनफ्रिज गरेर थप प्रशिक्षण गर्न स्वतन्त्र महसुस गर्नुहोस्, ताकि तपाईं उच्च शुद्धता प्राप्त गर्न सक्षम हुनुहुन्छ कि छैन हेर्न सक्नुहुन्छ!\n"
+ "नेटवर्कका केही थप तहहरू अनफ्रिज गरेर र बढी प्रशिक्षण गरेर जान्न नहिचकिचाउनुहोस् कि के तपाईं उच्च सटीकता प्राप्त गर्न सक्षम हुनुहुन्छ!\n"
]
},
{
@@ -1037,7 +1050,7 @@
"source": [
"## अन्य कम्प्युटर भिजन मोडेलहरू\n",
"\n",
- "VGG-16 कम्प्युटर भिजन आर्किटेक्चरहरूमध्ये सबैभन्दा साधारण हो। Keras ले धेरै अन्य प्रि-ट्रेन गरिएको नेटवर्कहरू उपलब्ध गराउँछ। तीमध्ये सबैभन्दा धेरै प्रयोग गरिनेहरूमा Microsoft द्वारा विकसित **ResNet** आर्किटेक्चरहरू र Google को **Inception** पर्दछन्। उदाहरणका लागि, हामी सबैभन्दा साधारण ResNet-50 मोडेलको आर्किटेक्चर अन्वेषण गरौं (ResNet विभिन्न गहिराइ भएका मोडेलहरूको परिवार हो, यदि तपाईं साँच्चै गहिरो मोडेल कस्तो देखिन्छ भनेर हेर्न चाहनुहुन्छ भने ResNet-152 मा प्रयोग गरेर हेर्न सक्नुहुन्छ):\n"
+ "VGG-16 सबैभन्दा साधारण कम्प्युटर भिजन आर्किटेक्चरहरूमध्ये एक हो। Keras ले धेरै बढी प्रि-ट्रेन्ड नेटवर्कहरू उपलब्ध गराउँछ। ती मध्ये सबैभन्दा प्रायः प्रयोग गरिनेहरू **ResNet** आर्किटेक्चरहरू हुन्, जुन Microsoft द्वारा विकास गरिएको हो, र **Inception** गूगल द्वारा। उदाहरणका लागि, सबैभन्दा सरल ResNet-50 मोडेलको आर्किटेक्चर अन्वेषण गरौं (ResNet विभिन्न गहिराइका मोडेलहरूको परिवार हो, तपाईंले साँच्चिकै गहिरो मोडेल कस्तो देखिन्छ भनेर हेर्न ResNet-152 मा पनि प्रयोग गर्न सक्नुहुन्छ):\n"
]
},
{
@@ -1439,29 +1452,29 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "जसरी तपाईंले देख्न सक्नुहुन्छ, यो मोडेलमा उही परिचित निर्माण ब्लकहरू छन्: कन्भोल्युसनल लेयरहरू, पूलिङ लेयरहरू, र अन्तिम डेन्स क्लासिफायर। हामीले VGG-16 लाई ट्रान्सफर लर्निङका लागि प्रयोग गरेजस्तै यो मोडेललाई पनि ठीक त्यही तरिकाले प्रयोग गर्न सक्छौं। माथिको कोडमा विभिन्न ResNet मोडेलहरूलाई आधार मोडेलको रूपमा प्रयोग गरेर परीक्षण गर्न सक्नुहुन्छ र कसरी एक्युरेसी परिवर्तन हुन्छ हेर्न सक्नुहुन्छ।\n",
+ "तपाईंले देख्नुभएको जस्तै, मोडेलमा उस्तै परिचित निर्माण ब्लकहरू छन्: कन्भोलुसनल लेयरहरू, पुलिङ लेयरहरू र अन्तिम घना वर्गीकर्ता। हामी यस मोडेललाई बिल्कुलै उस्तै तरिकाले प्रयोग गर्न सक्छौं जसरी हामीले VGG-16 लाई ट्रान्सफर लर्निङका लागि प्रयोग गरिरहेका छौं। तपाईं माथिको कोडसँग प्रयोग गरेर विभिन्न ResNet मोडेलहरूलाई आधार मोडेलको रूपमा प्रयोग गर्न सक्नुहुन्छ र कसरी सटीकता परिवर्तन हुन्छ भनेर हेर्न सक्नुहुन्छ।\n",
"\n",
- "## ब्याच नर्मलाइजेसन\n",
+ "## ब्याच मानकीकरण\n",
"\n",
- "यो नेटवर्कमा अर्को प्रकारको लेयर पनि समावेश छ: **ब्याच नर्मलाइजेसन**। ब्याच नर्मलाइजेसनको विचार भनेको न्यूरल नेटवर्कभित्र बग्ने मानहरूलाई सही दायरामा ल्याउनु हो। सामान्यतया न्यूरल नेटवर्कहरू सबै मानहरू [-1,1] वा [0,1] को दायरामा हुँदा राम्रोसँग काम गर्छन्, र यही कारणले हामी हाम्रो इनपुट डाटालाई त्यस अनुसार स्केल/नर्मलाइज गर्छौं। तर, गहिरो नेटवर्कको प्रशिक्षणको क्रममा, कहिलेकाहीँ मानहरू यो दायराबाट धेरै बाहिर जान सक्छन्, जसले गर्दा प्रशिक्षणमा समस्या आउन सक्छ। ब्याच नर्मलाइजेसन लेयरले हालको मिनिब्याचका सबै मानहरूको औसत र मानक विचलन गणना गर्छ, र तिनलाई न्यूरल नेटवर्क लेयरमा पठाउनु अघि सिग्नललाई नर्मलाइज गर्न प्रयोग गर्छ। यसले गहिरो नेटवर्कहरूको स्थिरता उल्लेखनीय रूपमा सुधार गर्छ।\n"
+ "यस नेटवर्कमा अर्को प्रकारको लेयर छ: **ब्याच मानकीकरण**। ब्याच मानकीकरणको विचार neural नेटवर्कमा बगेका मानहरूलाई सही अन्तरालमा ल्याउनु हो। सामान्यतया neural नेटवर्कहरू तब सबैभन्दा राम्रो काम गर्छन् जब सबै मानहरू [-1,1] वा [0,1] दायरामा हुन्छन्, र त्यसैले हामीले हाम्रा इनपुट डेटा अनुसार मापन/मानकीकरण गर्छौं। तथापि, एक गहिरो नेटवर्कको प्रशिक्षणको समयमा, मानहरू यस दायराबाट निकै बाहिर जान सक्छन्, जसले प्रशिक्षणलाई समस्याग्रस्त बनाउँछ। ब्याच मानकीकरण लेयरले हालको मिनिब्याचका सबै मानहरूको औसत र मानक विचलन गणना गर्छ र neural नेटवर्क लेयरमा पुर्याउनु अघि सिग्नललाई मानकीकृत गर्न प्रयोग गर्छ। यसले गहिरो नेटवर्कहरूको स्थिरतामा महत्वपूर्ण सुधार ल्याउँछ।\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यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको हो। हामी सही हुन प्रयास गर्छौं, तर कृपया जानकार हुनुस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छन्। मूल दस्तावेज़ यसको मूल भाषामा आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलत बुझाइ वा त्रुटिको लागि हामी जिम्मेवार छैनौं।\n\n"
]
}
],
@@ -1482,12 +1495,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
- },
- "coopTranslator": {
- "original_hash": "c189abc107848f96051085cc30945129",
- "translation_date": "2025-08-28T07:55:17+00:00",
- "source_file": "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb",
- "language_code": "ne"
}
},
"nbformat": 4,
diff --git a/translations/ne/lessons/5-NLP/README.md b/translations/ne/lessons/5-NLP/README.md
index eb8932f4..42cab14f 100644
--- a/translations/ne/lessons/5-NLP/README.md
+++ b/translations/ne/lessons/5-NLP/README.md
@@ -1,59 +1,51 @@
-# प्राकृतिक भाषा प्रशोधन
+# प्राकृतिक भाषा प्रसंस्करण
-
+
-यस खण्डमा, हामी **प्राकृतिक भाषा प्रशोधन (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) हो, जहाँ भावना सम्पूर्ण वाक्यलाई होइन, यसको विभिन्न भागहरू (पक्षहरू) लाई दिनुपर्छ। जस्तै, *यो रेस्टुरेन्टमा मलाई खाना मन पर्यो, तर वातावरण डरलाग्दो थियो*।
+आरम्भमा, अधिकांश NLP कार्यहरू परम्परागत विधिहरू जस्तै व्याकरणहरू प्रयोग गरेर समाधान गरिन्थ्यो। उदाहरणका लागि, मेशिन अनुवादमा पार्सरहरूले सुरुको वाक्यलाई व्याकरण ट्रीमा रूपान्तरण गर्थे, त्यसपछि अर्थ प्रतिनिधित्व गर्न उच्च तहको सैमेन्टिक संरचनाहरू निकालिन्थे, र उक्त अर्थ र लक्ष्य भाषाको व्याकरण आधारमा परिणाम सिर्जना गरिन्थ्यो। आजकल, धेरै NLP कार्यहरू न्यूरल नेटवर्कहरू प्रयोग गरेर प्रभावकारी रूपमा समाधान गरिन्छन्।
-* **नामित इकाई पहिचान** (NER) पाठबाट निश्चित इकाईहरू निकाल्ने समस्यालाई जनाउँछ। उदाहरणका लागि, वाक्यांश *म भोलि पेरिस जानुपर्छ* मा *भोलि* शब्दले मिति (DATE) जनाउँछ, र *पेरिस* स्थान (LOCATION) हो भन्ने बुझ्न आवश्यक हुन सक्छ।
+> धेरै क्लासिक NLP विधिहरू [Natural Language Processing Toolkit (NLTK)](https://www.nltk.org) Python पुस्तकालयमा कार्यान्वयन गरिएको छ। त्यहाँ एक उत्कृष्ट [NLTK पुस्तक](https://www.nltk.org/book/) अनलाइन उपलब्ध छ जसले विभिन्न NLP कार्यहरू कसरी NLTK प्रयोग गरेर समाधान गर्न सकिन्छ देखाउँछ।
-* **किवर्ड निकाल्ने** NER जस्तै हो, तर यसमा विशिष्ट इकाई प्रकारहरूको लागि पूर्व-प्रशिक्षण नगरी वाक्यको अर्थका लागि महत्त्वपूर्ण शब्दहरू स्वचालित रूपमा निकाल्नुपर्छ।
+हाम्रो कोर्समा, हामी प्रायः NLP का लागि न्यूरल नेटवर्कहरू प्रयोग गर्न केन्द्रित हुने छौं, र आवश्यक परेमा NLTK प्रयोग गर्ने छौं।
-* **पाठ क्लस्टरिङ** उपयोगी हुन्छ जब हामी समान वाक्यहरूलाई समूहबद्ध गर्न चाहन्छौं, जस्तै, प्राविधिक समर्थन वार्तालापहरूमा समान अनुरोधहरू।
-
-* **प्रश्न उत्तर दिने** मोडेलको क्षमता हो जसले विशिष्ट प्रश्नको उत्तर दिन्छ। मोडेलले पाठ खण्ड र प्रश्नलाई इनपुटको रूपमा लिन्छ, र प्रश्नको उत्तर समावेश भएको पाठको स्थान प्रदान गर्नुपर्छ (कहिलेकाहीँ, उत्तर पाठ उत्पन्न गर्नुपर्छ)।
-
-* **पाठ उत्पन्न गर्ने** मोडेलको क्षमता हो जसले नयाँ पाठ उत्पन्न गर्छ। यसलाई *पाठ संकेत* को आधारमा अर्को अक्षर/शब्दको भविष्यवाणी गर्ने वर्गीकरण कार्यको रूपमा मान्न सकिन्छ। उन्नत पाठ उत्पन्न गर्ने मोडेलहरू, जस्तै 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 कार्यहरू परम्परागत विधिहरू जस्तै व्याकरण प्रयोग गरेर समाधान गरिन्थ्यो। उदाहरणका लागि, मेसिन अनुवादमा प्रारम्भिक वाक्यलाई वाक्य संरचना (syntax tree) मा रूपान्तरण गर्न पार्सरहरू प्रयोग गरिन्थ्यो, त्यसपछि वाक्यको अर्थ प्रतिनिधित्व गर्न उच्च स्तरका अर्थ संरचनाहरू निकालिन्थ्यो, र यस अर्थ र लक्ष्य भाषाको व्याकरणको आधारमा परिणाम उत्पन्न गरिन्थ्यो। आजकल, धेरै NLP कार्यहरू न्युरल नेटवर्कहरू प्रयोग गरेर बढी प्रभावकारी रूपमा समाधान गरिन्छ।
-
-> धेरै परम्परागत NLP विधिहरू [Natural Language Processing Toolkit (NLTK)](https://www.nltk.org) नामक Python पुस्तकालयमा कार्यान्वयन गरिएका छन्। [NLTK पुस्तक](https://www.nltk.org/book/) अनलाइन उपलब्ध छ, जसले NLTK प्रयोग गरेर विभिन्न NLP कार्यहरू कसरी समाधान गर्न सकिन्छ भन्ने कभर गर्छ।
-
-हाम्रो पाठ्यक्रममा, हामी NLP का लागि न्युरल नेटवर्कहरू प्रयोग गर्नमा ध्यान केन्द्रित गर्नेछौं, र आवश्यक परेमा NLTK प्रयोग गर्नेछौं।
-
-हामीले पहिले नै तालिका डेटा र छविहरूसँग व्यवहार गर्न न्युरल नेटवर्कहरू प्रयोग गर्ने बारे सिकिसकेका छौं। ती प्रकारका डेटा र पाठबीचको मुख्य भिन्नता यो हो कि पाठ एक परिवर्तनशील लम्बाइको अनुक्रम हो, जबकि छविहरूको इनपुट आकार पहिले नै थाहा हुन्छ। यद्यपि, कनभोलुसनल नेटवर्कहरूले इनपुट डेटा बाट ढाँचाहरू निकाल्न सक्छन्, पाठमा ढाँचाहरू अझ जटिल हुन्छन्। जस्तै, नकारात्मकता (negation) विषयबाट धेरै शब्दहरू टाढा हुन सक्छ (जस्तै, *मलाई सुन्तला मन पर्दैन* vs. *मलाई ती ठूला रङ्गीन स्वादिष्ट सुन्तला मन पर्दैन*), र यसलाई अझै पनि एउटै ढाँचाको रूपमा व्याख्या गर्नुपर्छ। त्यसैले, भाषा व्यवस्थापन गर्न हामीले नयाँ न्युरल नेटवर्क प्रकारहरू, जस्तै *पुनरावर्ती नेटवर्कहरू* र *ट्रान्सफर्मरहरू* परिचय गराउन आवश्यक छ।
+हामीले पहिले नै न्यूरल नेटवर्कहरू प्रयोग गरी तालिकागत डेटा र छविहरूमा काम गर्ने कुरा सिकिसकेका छौं। ती प्रकारका डेटाहरू र पाठबीच मुख्य फरक भनेको पाठ एक चर लम्बाइको अनुक्रम हो, जबकि छविहरूमा इनपुट आकार पहिले नै थाहा हुन्छ। कन्भोलुसनल नेटवर्कहरूले इनपुट डेटाबाट ढाँचाहरू निकाल्न सक्छन्, तर पाठमा ढाँचाहरू जटिल हुन्छन्। उदाहरणका लागि, नकारात्मकता विषयबाट फरक हुनु धेरै शब्दहरूमा स्वैच्छिक हुन सक्छ (जस्तै *म सुन्तलाहरु मन पर्दैन*, बनाम *म ती ठूला रङीन स्वादिला सुन्तलाहरु मन पर्दैन*), र त्यो अझै पनि एउटै ढाँचाको रूपमा व्याख्या हुनुपर्छ। त्यसैले, भाषा सम्हाल्न हामीले नयाँ न्यूरल नेटवर्क प्रकारहरू जस्तै *पुनरावृत्ति नेटवर्क* र *ट्रान्सफर्मरहरू* परिचय गराउनुपर्छ।
## पुस्तकालयहरू स्थापना गर्नुहोस्
-यदि तपाईंले यो पाठ्यक्रम चलाउन स्थानीय Python स्थापना प्रयोग गर्दै हुनुहुन्छ भने, NLP का लागि आवश्यक सबै पुस्तकालयहरू निम्न आदेशहरू प्रयोग गरेर स्थापना गर्नुपर्ने हुन सक्छ:
+यदि तपाईं यो कोर्स चलाउन स्थानीय Python स्थापना प्रयोग गर्दै हुनुहुन्छ भने, तपाईंले निम्न आदेशहरू प्रयोग गरेर NLP का लागि आवश्यक सबै पुस्तकालयहरू स्थापना गर्नु पर्ने हुन सक्छ:
**PyTorch का लागि**
```bash
-pip install -r requirements-torch.txt
+pip install -r requirements-pytorch.txt
```
**TensorFlow का लागि**
```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) मा TensorFlow प्रयोग गरेर NLP प्रयास गर्न सक्नुहुन्छ।
+> तपाईं [Microsoft Learn](https://docs.microsoft.com/learn/modules/intro-natural-language-processing-tensorflow/?WT.mc_id=academic-77998-cacaste) मा TensorFlow संग NLP प्रयास गर्न सक्नुहुन्छ
## GPU चेतावनी
-यस खण्डमा, केही उदाहरणहरूमा हामी ठूला मोडेलहरू प्रशिक्षण गर्नेछौं।
-* **GPU-सक्षम कम्प्युटर प्रयोग गर्नुहोस्**: ठूला मोडेलहरूसँग काम गर्दा प्रतीक्षा समय घटाउन GPU-सक्षम कम्प्युटरमा नोटबुकहरू चलाउन सिफारिस गरिन्छ।
-* **GPU मेमोरी सीमाहरू**: GPU मा चलाउँदा, विशेष गरी ठूला मोडेलहरू प्रशिक्षण गर्दा, GPU मेमोरी सकिने अवस्था आउन सक्छ।
-* **GPU मेमोरी खपत**: प्रशिक्षणको क्रममा GPU मेमोरी खपत विभिन्न कारकहरूमा निर्भर गर्दछ, जस्तै मिनिब्याच साइज।
-* **मिनिब्याच साइज घटाउनुहोस्**: यदि GPU मेमोरी समस्याहरू सामना गर्नुहुन्छ भने, तपाईंको कोडमा मिनिब्याच साइज घटाउने कुरा समाधानको रूपमा विचार गर्न सक्नुहुन्छ।
-* **TensorFlow GPU मेमोरी रिलीज**: TensorFlow का पुराना संस्करणहरूले एउटै Python कर्नेलमा धेरै मोडेलहरू प्रशिक्षण गर्दा GPU मेमोरी सही रूपमा रिलीज नगर्न सक्छ। GPU मेमोरी प्रयोगलाई प्रभावकारी रूपमा व्यवस्थापन गर्न, तपाईं TensorFlow लाई आवश्यक पर्दा मात्र GPU मेमोरी आवंटन गर्न कन्फिगर गर्न सक्नुहुन्छ।
-* **कोड समावेश गर्नुहोस्**: TensorFlow लाई आवश्यक पर्दा मात्र GPU मेमोरी बढ्न दिन निम्न कोड तपाईंको नोटबुकहरूमा समावेश गर्नुहोस्:
+यस खण्डमा, केही उदाहरणहरूमा हामी ठूलो मोडेलहरू तालिम गर्नेछौं।
+* **GPU-सक्षम कम्प्युटर प्रयोग गर्नुहोस्**: ठूलो मोडेलहरूसँग काम गर्दा पर्खाइ कम गर्न, आफ्नो नोटबुकहरू GPU-सक्षम कम्प्युटरमा चलाउनु बुद्धिमानी हुन्छ।
+* **GPU स्मृति सीमाहरू**: GPU मा चलाउँदा GPU स्मृति सकिन सक्ने स्थिति आउन सक्छ, विशेष गरी ठूलो मोडेल तालिम गर्दा।
+* **GPU स्मृति खपत**: तालिम अवधिमा GPU स्मृतिको खपत विभिन्न कारकहरूमा निर्भर गर्दछ, जस्तै मिनिब्याच आकार।
+* **मिनिब्याच आकार न्यूनतम गर्नुहोस्**: यदि GPU स्मृति समस्या आएमा, आफ्नो कोडमा मिनिब्याच आकार घटाउने विचार गर्न सक्नुहुन्छ।
+* **TensorFlow GPU स्मृति रिहाई**: TensorFlow का पुराना संस्करणहरूले एउटै Python कर्नेलमा धेरै मोडेल तालिम गर्दा GPU स्मृति सही रूपमा रिहा नहुन सक्छ। GPU स्मृति उपयोग प्रभावकारी रूपमा व्यवस्थापन गर्न TensorFlow लाई आवश्यक पर्दा मात्र GPU स्मृति बाँड्न कन्फिगर गर्न सकिन्छ।
+* **कोड समावेश गर्नुहोस्**: TensorFlow लाई आवश्यक पर्दा मात्र GPU स्मृति विस्तार गर्न सेट गर्न तलको कोड आफ्नो नोटबुकहरूमा राख्नुहोस्:
```python
physical_devices = tf.config.list_physical_devices('GPU')
@@ -61,17 +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)
+* [टेक्स्टलाई टेन्सरको रूपमा प्रतिनिधित्व गर्दै](13-TextRep/README.md)
* [शब्द एम्बेडिङहरू](14-Emdeddings/README.md)
-* [भाषा मोडलिङ](15-LanguageModeling/README.md)
-* [पुनरावर्ती न्युरल नेटवर्कहरू](16-RNN/README.md)
-* [उत्पन्न गर्ने नेटवर्कहरू](17-GenerativeNetworks/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) प्रयोग गरेर अनुवाद गरिएको छ। हामी शुद्धताको लागि प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छ। यसको मूल भाषा मा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।
\ No newline at end of file
+---
+
+
+**अस्वीकरण**:
+यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको हो। हामी सही हुन प्रयास गर्छौं, तर कृपया जानकार हुनुस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छन्। मूल दस्तावेज़ यसको मूल भाषामा आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलत बुझाइ वा त्रुटिको लागि हामी जिम्मेवार छैनौं।
+
\ No newline at end of file
diff --git a/translations/ne/lessons/6-Other/23-MultiagentSystems/README.md b/translations/ne/lessons/6-Other/23-MultiagentSystems/README.md
index 1d1467bc..18f5a159 100644
--- a/translations/ne/lessons/6-Other/23-MultiagentSystems/README.md
+++ b/translations/ne/lessons/6-Other/23-MultiagentSystems/README.md
@@ -1,38 +1,38 @@
-# बहु-एजेन्ट प्रणालीहरू
+# बहु-एजेण्ट प्रणालीहरू
-बुद्धिमत्ता प्राप्त गर्ने सम्भावित तरिकाहरू मध्ये एक **उत्पन्न** (वा **सिनर्जेटिक**) दृष्टिकोण हो, जुन धेरै सरल एजेन्टहरूको संयुक्त व्यवहारले प्रणालीको समग्रमा जटिल (वा बुद्धिमान) व्यवहार उत्पन्न गर्न सक्छ भन्ने तथ्यमा आधारित छ। सैद्धान्तिक रूपमा, यो [सामूहिक बुद्धिमत्ता](https://en.wikipedia.org/wiki/Collective_intelligence), [उत्पन्नवाद](https://en.wikipedia.org/wiki/Global_brain) र [विकासात्मक साइबरनेटिक्स](https://en.wikipedia.org/wiki/Global_brain) का सिद्धान्तहरूमा आधारित छ, जसले उच्च-स्तरीय प्रणालीहरूले तल्लो-स्तरीय प्रणालीहरूलाई सही तरिकाले संयोजन गर्दा थप मूल्य प्राप्त गर्छन् भन्ने कुरा बताउँछ (*मेटासिस्टम ट्रान्जिसनको सिद्धान्त* भनिन्छ)।
+बुद्धिमत्तालाई प्राप्त गर्ने संभावित तरिकाहरू मध्ये एक हो यति भनिने **आपत्कालीक** (वा **समन्वयात्मक**) दृष्टिकोण, जुन यस तथ्यमा आधारित छ कि धेरै सरल एजेन्टहरूको संयुक्त व्यवहारले प्रणालीको समग्र बढी जटिल (वा बुद्धिमान) व्यवहार निम्त्याउन सक्छ। सैद्धान्तिक रूपमा, यो [सामूहिक बुद्धिमत्ता](https://en.wikipedia.org/wiki/Collective_intelligence), [आपत्कालीकता](https://en.wikipedia.org/wiki/Global_brain) र [विकासात्मक साइबरनेटिक्स](https://en.wikipedia.org/wiki/Global_brain) का सिद्धान्तहरूमा आधारित छ, जुन भन्छन् उच्च-स्तरका प्रणालीहरूले उचितरीत्या निम्न-स्तरका प्रणालीहरूबाट संयोजन हुँदा कुनै थप मूल्य प्राप्त गर्छन् (यति भनिने *मेटासिस्टम संक्रमणको सिद्धान्त*)।
-## [पूर्व-व्याख्यान क्विज](https://ff-quizzes.netlify.app/en/ai/quiz/45)
+## [पाठ अघि क्विज](https://ff-quizzes.netlify.app/en/ai/quiz/45)
-**बहु-एजेन्ट प्रणालीहरू** को दिशा १९९० को दशकमा इन्टरनेट र वितरित प्रणालीहरूको वृद्धिको प्रतिक्रियाको रूपमा एआईमा देखा परेको हो। [Artificial Intelligence: A Modern Approach](https://en.wikipedia.org/wiki/Artificial_Intelligence:_A_Modern_Approach) जस्ता क्लासिकल एआई पाठ्यपुस्तकले बहु-एजेन्ट प्रणालीहरूको दृष्टिकोणबाट क्लासिकल एआईलाई हेर्ने दृष्टिकोणमा केन्द्रित छ।
+**बहु-एजेण्ट प्रणालीहरू** को दिशा १९९० दशकमा इन्टरनेट र वितरित प्रणालीहरूको वृद्धिलाई प्रतिक्रिया स्वरूप एआईमा उभिएको हो। एक स्वीकृत एआई पुस्तक, [Artificial Intelligence: A Modern Approach](https://en.wikipedia.org/wiki/Artificial_Intelligence:_A_Modern_Approach), बहु-एजेण्ट प्रणालीहरूको दृष्टिकोणबाट परम्परागत एआईलाई हेर्छ।
-बहु-एजेन्ट दृष्टिकोणको केन्द्रमा **एजेन्ट** को धारणा छ - एउटा इकाई जसले कुनै **पर्यावरण** मा बस्छ, जसलाई यो बुझ्न र कार्य गर्न सक्छ। यो धेरै व्यापक परिभाषा हो, र एजेन्टहरूको धेरै प्रकार र वर्गीकरणहरू हुन सक्छ:
+बहु-एजेण्ट दृष्टिकोणको केन्द्रीय अवधारणा हो **एजेण्ट** — त्यो इकाई जुन कुनै **परिवेशमा** बस्छ, जसलाई यो बुझ्न र कार्य गर्न सक्छ। यो एक धेरै व्यापक परिभाषा हो, र एजेन्टहरूको धेरै प्रकार र वर्गीकरणहरू हुन सक्छन्:
-* तर्क गर्ने क्षमताको आधारमा:
- - **प्रतिक्रियात्मक** एजेन्टहरूले सामान्यतया सरल अनुरोध-प्रतिक्रिया प्रकारको व्यवहार देखाउँछन्।
- - **विचारशील** एजेन्टहरूले केही प्रकारको तार्किक तर्क र/वा योजना क्षमताहरू प्रयोग गर्छन्।
-* एजेन्टले आफ्नो कोड कहाँ कार्यान्वयन गर्छ भन्ने आधारमा:
- - **स्थिर** एजेन्टहरू समर्पित नेटवर्क नोडमा काम गर्छन्।
- - **मोबाइल** एजेन्टहरूले आफ्नो कोड नेटवर्क नोडहरू बीच सार्न सक्छन्।
-* व्यवहारको आधारमा:
- - **निष्क्रिय एजेन्टहरू** को विशिष्ट लक्ष्यहरू हुँदैन। यस्ता एजेन्टहरूले बाह्य उत्तेजनाहरूमा प्रतिक्रिया दिन सक्छन्, तर आफैंले कुनै कार्यहरू सुरु गर्दैनन्।
- - **सक्रिय एजेन्टहरू** केहि लक्ष्यहरू हुन्छन् जसलाई तिनीहरूले पछ्याउँछन्।
- - **संज्ञानात्मक एजेन्टहरू** जटिल योजना र तर्क समावेश गर्छन्।
+* तिनीहरूको तर्क क्षमताको आधारमा:
+ - **प्रतिक्रियाशील** एजेन्टहरूले साधारण अनुरोध-प्रतिक्रिया प्रकारको व्यवहार प्रदर्शन गर्छन्
+ - **परिकलनात्मक** एजेन्टहरूले कुनै न कुनै तर्कसंगत योजना निर्माण र/वा तर्क क्षमताहरू प्रयोग गर्छन्
+* एजेन्टले कोड कहाँ कार्यान्वयन गर्छ भन्ने आधारमा:
+ - **स्थिर** एजेन्टले समर्पित नेटवर्क नोडमा कार्य गर्छ
+ - **गतिशील** एजेन्टहरूले आफ्नो कोड नेटवर्क नोडहरूको बीच सार्न सक्छन्
+* तिनीहरूको व्यवहारको आधारमा:
+ - **निष्क्रिय एजेन्ट** हरू सटीक लक्ष्य राख्दैनन्। यस्ता एजेन्टहरूले बाह्य उत्तेजनामा प्रतिक्रिया दिन सक्छन्, तर आफ्नै पहलमा कुनै कार्य शुरू गर्दैनन्।
+ - **सक्रिय एजेन्ट** हरू केहि लक्ष्यहरू पछ्याउँछन्
+ - **संज्ञानात्मक एजेन्ट** हरू जटिल योजना र तर्कमा संलग्न हुन्छन्
-आजकल बहु-एजेन्ट प्रणालीहरू धेरै अनुप्रयोगहरूमा प्रयोग गरिन्छ:
+बहु-एजेण्ट प्रणालीहरू आजकाल विभिन्न अनुप्रयोगहरूमा प्रयोग हुन्छन्:
-* खेलहरूमा, धेरै गैर-खेलाडी पात्रहरूले केही प्रकारको एआई प्रयोग गर्छन्, र तिनीहरूलाई बुद्धिमान एजेन्ट मान्न सकिन्छ।
-* भिडियो उत्पादनमा, भीडहरू समावेश गर्ने जटिल ३डी दृश्यहरू रेंडर गर्न सामान्यतया बहु-एजेन्ट सिमुलेशन प्रयोग गरिन्छ।
-* प्रणालीहरूको मोडेलिङमा, बहु-एजेन्ट दृष्टिकोण जटिल मोडेलको व्यवहारलाई सिमुलेट गर्न प्रयोग गरिन्छ। उदाहरणका लागि, बहु-एजेन्ट दृष्टिकोणले COVID-19 रोगको विश्वव्यापी फैलावटको भविष्यवाणी गर्न सफलतापूर्वक प्रयोग गरिएको छ। यस्तै दृष्टिकोणले शहरको ट्राफिकलाई मोडेल गर्न प्रयोग गर्न सकिन्छ, र ट्राफिक नियमहरूमा परिवर्तनहरूमा यसको प्रतिक्रिया हेर्न सकिन्छ।
-* जटिल स्वचालन प्रणालीहरूमा, प्रत्येक उपकरणले स्वतन्त्र एजेन्टको रूपमा कार्य गर्न सक्छ, जसले सम्पूर्ण प्रणालीलाई कम मोनोलिथिक र अधिक मजबुत बनाउँछ।
+* खेलहरूमा, धेरै गैर-खेलाडी पात्रहरूले केहि प्रकारको एआई प्रयोग गर्छन्, र तिनीहरूलाई बुद्धिमान एजेन्ट मान्न सकिन्छ
+* भिडियो उत्पादनमा, भीड समावेश गर्ने जटिल 3D दृश्यहरूको रेंडरिंग सामान्यतया बहु-एजेण्ट अनुकरण प्रयोग गरेर गरिन्छ
+* प्रणाली मोडलिंगमा, बहु-एजेण्ट दृष्टिकोणले जटिल मोडलको व्यवहार अनुकरण गर्न प्रयोग हुन्छ। उदाहरणका लागि, बहु-एजेण्ट दृष्टिकोणले विश्वव्यापी रूपमा COVID-19 रोगको फैलावट भविष्यवाणी गर्न सफलतापूर्वक प्रयोग गरिएको छ। समान दृष्टिकोणले सहरको ट्राफिक मोडेल गर्न र ट्राफिक नियमहरूमा परिवर्तनहरूलाई कसरी प्रतिक्रिया गर्छ भनेर हेर्न प्रयोग गर्न सकिन्छ।
+* जटिल स्वचालन प्रणालीहरूमा, प्रत्येक उपकरणले स्वतन्त्र एजेन्टको रूपमा कार्य गर्न सक्छ, जसले पूरै प्रणालीलाई कम एकिकृत र बढी मजबूत बनाउँछ।
-हामी बहु-एजेन्ट प्रणालीहरूमा गहिरो जान धेरै समय खर्च गर्ने छैनौं, तर **बहु-एजेन्ट मोडेलिङ** को एक उदाहरण विचार गर्नेछौं।
+हामी बहु-एजेण्ट प्रणालीहरूमा धेरै समय खर्च गर्नेछैनौं, तर एक उदाहरणको रूपमा **बहु-एजेण्ट मोडलिंग** मा विचार गर्नेछौं।
## NetLogo
-[NetLogo](https://ccl.northwestern.edu/netlogo/) एक बहु-एजेन्ट मोडेलिङ वातावरण हो जुन [Logo](https://en.wikipedia.org/wiki/Logo_(programming_language)) प्रोग्रामिङ भाषाको परिमार्जित संस्करणमा आधारित छ। यो भाषा बच्चाहरूलाई प्रोग्रामिङ अवधारणाहरू सिकाउनको लागि विकसित गरिएको थियो, र यसले तपाईंलाई **टर्टल** नामक एजेन्टलाई नियन्त्रण गर्न अनुमति दिन्छ, जसले पछाडि ट्रेस छोड्दै सर्न सक्छ। यसले जटिल ज्यामितीय आकृतिहरू सिर्जना गर्न अनुमति दिन्छ, जुन एजेन्टको व्यवहार बुझ्नको लागि धेरै दृश्यात्मक तरिका हो।
+[NetLogo](https://ccl.northwestern.edu/netlogo/) एक बहु-एजेण्ट मोडलिंग वातावरण हो जुन [Logo](https://en.wikipedia.org/wiki/Logo_(programming_language)) प्रोग्रामिङ भाषाको संशोधित संस्करणमा आधारित छ। यस भाषालाई बच्चाहरूलाई प्रोग्रामिङ अवधारणाहरू सिकाउन विकसित गरिएको थियो, र यसले तुम्हें **कछुवा** नामक एक एजेन्टलाई नियन्त्रण गर्न दिन्छ, जसले हिँड्न सक्छ र पछि पथ छोड्छ। यसले जटिल ज्यामिति आकृतिहरू बनाउन अनुमति दिन्छ, जुन एजेन्टको व्यवहार बुझ्ने धेरै दृश्यात्मक तरिका हो।
-NetLogo मा, हामी `create-turtles` कमाण्ड प्रयोग गरेर धेरै टर्टलहरू सिर्जना गर्न सक्छौं। त्यसपछि हामी सबै टर्टलहरूलाई केही कार्यहरू गर्न आदेश दिन सक्छौं (तलको उदाहरणमा - १० बिन्दु अगाडि बढ्नु):
+NetLogo मा, हामी `create-turtles` आदेश प्रयोग गरेर धेरै कछुवाहरू बनाउन सक्छौं। त्यसपछि हामी सबै कछुवालाई केही कार्यहरू गर्न आदेश दिन सक्छौं (तलको उदाहरणमा - १० पोइन्ट अघि बढ्ने):
```
create-turtles 10
@@ -41,39 +41,39 @@ ask turtles [
]
```
-पक्कै पनि, जब सबै टर्टलहरूले एउटै कुरा गर्छन्, यो रोचक हुँदैन, त्यसैले हामी `ask` समूहहरूलाई आदेश दिन सक्छौं, जस्तै ती टर्टलहरू जो कुनै निश्चित बिन्दुको वरिपरि छन्। हामी `breed [cats cat]` कमाण्ड प्रयोग गरेर विभिन्न *जात* का टर्टलहरू पनि सिर्जना गर्न सक्छौं। यहाँ `cat` जातको नाम हो, र हामीले एकवचन र बहुवचन शब्द दुवै निर्दिष्ट गर्नुपर्छ, किनकि विभिन्न कमाण्डहरूले स्पष्टताको लागि विभिन्न रूपहरू प्रयोग गर्छन्।
+पक्कै पनि, सबै कछुवाहरूले एउटै कुरा गर्दा यो रोचक हुँदैन, त्यसैले हामी `ask` कमाण्ड प्रयोग गरी निश्चित ठाउँ नजिक रहेका कछुवाहरूलाई आदेश दिन सक्छौं। हामी `breed [cats cat]` आदेश प्रयोग गरेर फरक-फरक *जातहरू* का कछुवाहरू पनि बनाउन सक्छौं। यहाँ `cat` जातको नाम हो, र हामीले एउटा एकवचन र एउटा बहुवचन शब्द दुवै दिनुपर्छ किनभने विभिन्न आदेशहरूले स्पष्टताको लागि फरक रूपहरू प्रयोग गर्छन्।
-> ✅ हामी NetLogo भाषा सिक्नमा जान्दैनौं - यदि तपाईं थप जान्न इच्छुक हुनुहुन्छ भने तपाईं उत्कृष्ट [Beginner's Interactive NetLogo Dictionary](https://ccl.northwestern.edu/netlogo/bind/) स्रोत भ्रमण गर्न सक्नुहुन्छ।
+> ✅ हामी NetLogo भाषा आफैं सिक्नमा गहिराइमा जानेछैनौं - यदि तपाईं थप सिक्न इच्छुक हुनुहुन्छ भने तपाईं उत्कृष्ट [शुरुआती अन्तरक्रियात्मक NetLogo शब्दकोश](https://ccl.northwestern.edu/netlogo/bind/) स्रोतमा जान सक्नुहुन्छ।
-तपाईं NetLogo [डाउनलोड](https://ccl.northwestern.edu/netlogo/download.shtml) गरेर स्थापना गर्न सक्नुहुन्छ।
+तपाईं NetLogo [डाउनलोड](https://ccl.northwestern.edu/netlogo/download.shtml) गरी स्थापना गरेर प्रयास गर्न सक्नुहुन्छ।
### मोडेल पुस्तकालय
-NetLogo को एक उत्कृष्ट पक्ष यो हो कि यसमा काम गर्ने मोडेलहरूको पुस्तकालय छ जुन तपाईं प्रयास गर्न सक्नुहुन्छ। **File → Models Library** मा जानुहोस्, र तपाईंले मोडेलहरूको धेरै श्रेणीहरू छनोट गर्न सक्नुहुन्छ।
+NetLogo को एउटा राम्रो कुरा वा मोडेलहरूको पुस्तकालय हुनु हो, जुन तपाईंले प्रयास गर्न सक्नुहुन्छ। जानुहोस् **File → Models Library**, र तपाईंलाई धेरै मोडेलको श्रेणीहरू उपलब्ध हुनेछ।
-> Dmitry Soshnikov द्वारा मोडेल पुस्तकालयको स्क्रिनशट
+> मोडेल पुस्तकालयको स्क्रीनशट Dmitry Soshnikov द्वारा
-तपाईं मोडेलहरू मध्ये एक खोल्न सक्नुहुन्छ, उदाहरणका लागि **Biology → Flocking**।
+तपाईं एउटा मोडेल खोल्न सक्नुहुन्छ, उदाहरणका लागि **Biology → Flocking**।
### मुख्य सिद्धान्तहरू
-मोडेल खोलिसकेपछि, तपाईंलाई मुख्य NetLogo स्क्रिनमा लगिन्छ। यहाँ सीमित स्रोतहरू (घाँस) दिइएको भेडा र ब्वाँसोको जनसंख्यालाई वर्णन गर्ने नमूना मोडेल छ।
+मोडेल खोलिसकेपछि तपाईं मुख्य NetLogo स्क्रिनमा पुग्नुहुन्छ। यहाँ एउटा नमूना मोडेल छ जसले भेडा र ब्वाँसोको जनसंख्या वर्णन गर्छ, सीमित स्रोतहरू (घाँस) सँग।

-> Dmitry Soshnikov द्वारा स्क्रिनशट
+> स्क्रीनशट Дмитry Soshnikov द्वारा
-यस स्क्रिनमा, तपाईं देख्न सक्नुहुन्छ:
+यो स्क्रिनमा, तपाईंले देख्नुहुन्छ:
-* **इन्टरफेस** खण्ड जसमा समावेश छ:
- - मुख्य क्षेत्र, जहाँ सबै एजेन्टहरू बस्छन्
- - विभिन्न नियन्त्रणहरू: बटनहरू, स्लाइडरहरू, आदि।
- - ग्राफहरू जसलाई तपाईं सिमुलेशनको प्यारामिटरहरू प्रदर्शन गर्न प्रयोग गर्न सक्नुहुन्छ
-* **कोड** ट्याब जसमा सम्पादक समावेश छ, जहाँ तपाईं NetLogo प्रोग्राम टाइप गर्न सक्नुहुन्छ
+* **इन्टरफेस** भाग जसमा समावेश छ:
+ - मुख्य क्षेत्र जहाँ सबै एजेन्टहरू बस्छन्
+ - विभिन्न नियन्त्रणहरू: बटनहरू, स्लाइडरहरू, आदि
+ - ग्राफहरू जुन तपाईंले सिमुलेशनका प्यारामिटरहरू प्रदर्शन गर्न प्रयोग गर्न सक्नुहुन्छ
+* **कोड** ट्याब जहाँ सम्पादक हुन्छ, जसमा तपाईं NetLogo प्रोग्राम टाइप गर्न सक्नुहुन्छ
-अधिकांश अवस्थामा, इन्टरफेसमा **Setup** बटन हुन्छ, जसले सिमुलेशनको अवस्था आरम्भ गर्छ, र **Go** बटन हुन्छ जसले कार्यान्वयन सुरु गर्छ। ती सम्बन्धित ह्यान्डलरहरूद्वारा कोडमा यस प्रकार देखिन्छ:
+अधिकांश अवस्थामा, इन्टरफेसमा एउटा **Setup** बटन हुन्छ, जसले सिमुलेशन स्थिति प्रारम्भ गर्दछ, र एउटा **Go** बटन हुन्छ जसले कार्यान्वयन सुरु गर्दछ। ती कोडमा निम्न प्रकारका हैंडलरहरूले ब्यवस्थित हुन्छन्:
```
to go [
@@ -81,17 +81,79 @@ to go [
]
```
-NetLogo को संसार निम्न वस्तुहरूबाट बनेको छ:
+NetLogo को संसारमा निम्न वस्तुहरू छन्:
-* **एजेन्टहरू** (टर्टलहरू) जसले क्षेत्रभरि सर्न सक्छन् र केही गर्न सक्छन्। तपाईं `ask turtles [...]` वाक्यविन्यास प्रयोग गरेर एजेन्टहरूलाई आदेश दिन सक्नुहुन्छ, र कोष्ठकभित्रको कोड सबै एजेन्टहरूले *टर्टल मोड* मा कार्यान्वयन गर्छन्।
-* **प्याचहरू** क्षेत्रका वर्गाकार क्षेत्रहरू हुन्, जहाँ एजेन्टहरू बस्छन्। तपाईं सबै एजेन्टहरूलाई एउटै प्याचमा सन्दर्भ गर्न सक्नुहुन्छ, वा तपाईं प्याचको रंग र केही अन्य गुणहरू परिवर्तन गर्न सक्नुहुन्छ। तपाईं `ask patches` प्रयोग गरेर प्याचहरूलाई केही गर्न आदेश दिन सक्नुहुन्छ।
-* **अवलोकनकर्ता** एक अद्वितीय एजेन्ट हो जसले संसारलाई नियन्त्रण गर्छ। सबै बटन ह्यान्डलरहरू *अवलोकनकर्ता मोड* मा कार्यान्वयन हुन्छन्।
+* **एजेन्टहरू** (कछुवाहरू) जो क्षेत्रभरि हिँड्न र केही गर्न सक्छन्। तपाईंले एजेन्टहरूलाई `ask turtles [...]` संरचना प्रयोग गरी आदेश दिनुहुन्छ, र ब्र्याकेटभित्रको कोड सबै एजेन्टहरूले *कछुवा मोड* मा चलाउँछन्।
+* **प्याचहरू** क्षेत्रका वर्गाकार भागहरू हुन्, जहाँ एजेन्टहरू बस्छन्। तपाईंले एउटै प्याचमा रहेका सबै एजेन्टहरूलाई संकेत गर्न सक्नुहुन्छ, वा प्याचका रंग र अन्य गुणहरू परिवर्तन गर्न सक्नुहुन्छ। तपाईंले `ask patches` गरेर केहि गर्न पनि सक्नुहुन्छ।
+* **अवलोकक** एक अनूठा एजेन्ट हो जसले संसार नियन्त्रण गर्छ। सबै बटन हैंडलरहरू *अवलोकक मोड* मा चलाइन्छ।
-> ✅ बहु-एजेन्ट वातावरणको सुन्दरता यो हो कि टर्टल मोड वा प्याच मोडमा चल्ने कोड सबै एजेन्टहरूले समानान्तर रूपमा एकै समयमा कार्यान्वयन गर्छन्। यसरी, थोरै कोड लेखेर र व्यक्तिगत एजेन्टको व्यवहार प्रोग्राम गरेर, तपाईं सिमुलेशन प्रणालीको समग्र जटिल व्यवहार सिर्जना गर्न सक्नुहुन्छ।
+> ✅ बहु-एजेण्ट वातावरणको सुन्दरताले के देखाउँछ भने कछुवा मोड वा प्याच मोडमा चल्ने कोड सबै एजेन्टहरूले समानान्तर रूपमा एकै समयमा चलाउँछन्। यसैले, थोरै कोड लेखेर र व्यक्तिगत एजेन्टको व्यवहार प्रोग्राम गरेर, तपाईंले सम्पूर्ण सिमुलेशन प्रणालीको जटिल व्यवहार सिर्जना गर्न सक्नुहुन्छ।
-### फ्लकिङ
+### झुण्डी (Flocking)
-बहु-एजेन्ट व्यवहारको उदाहरणको रूपमा, **[Flocking](https://en.wikipedia.org/wiki/Flocking_(behavior))** विचार गरौं। फ्लकिङ एक जटिल ढाँचा हो जुन चराहरूको झुण्डले उड्ने तरिकासँग धेरै मिल्दोजुल्दो छ। तिनीहरूलाई उडिरहेको हेर्दा तपाईं सोच्न सक्नुहुन्छ कि तिनीहरूले कुनै प्रकारको सामूहिक एल्गोरिदम पछ्याउँछन्, वा तिनीहरूसँग *सामूह
+बहु-एजेण्ट व्यवहारको उदाहरणको रूपमा, हामी **[झुण्डी](https://en.wikipedia.org/wiki/Flocking_(behavior))** लाई विचार गरौं। झुण्डी जटिल नमुना हो जुन चराहरूको झुण्ड कसरी उड्छ जस्तै देखिन्छ। तिनीहरूलाई हेर्दा तपाईंले सोच्न सक्नुहुन्छ कि तिनीहरूले कुनै सामूहिक अल्गोरिदम पालन गर्छन्, अथवा तिनीहरूमा कुनै प्रकारको *सामूहिक बुद्धिमत्ता* छ। यद्यपि, यो जटिल व्यवहार तब उत्पन्न हुन्छ जब प्रत्येक व्यक्तिगत एजेन्ट (यस अवस्थामा, एउटा *चरा*) ले आफू वरिपरिका केही एजेन्टहरूलाई छोटो दूरीमा मात्रै नियाल्दछ, र तीन साधारण नियमहरू पालन गर्दछ:
+
+* **समानता** - यो छिमेकी एजेन्टहरूको औसत दिशातर्फ मोडिन्छ
+* **समष्टि** - यो छिमेकीहरूको औसत स्थानतर्फ मोडिन प्रयास गर्छ (*दीर्घ दूरी आकर्षण*)
+* **विभाजन** - जब अरू चराहरू निकै नजिक आउँछन्, यो टाढा जान प्रयास गर्छ (*छोटो दूरी प्रतिरोध*)
+
+तपाईं झुण्डी उदाहरण चलाएर व्यवहार अनुगमन गर्न सक्नुहुन्छ। तपाईंले *विभाजनको डिग्री* वा *हेर्ने दायरा* जस्ता प्यारामिटरहरू पनि समायोजन गर्न सक्नुहुन्छ, जुन परिभाषित गर्छ कि प्रत्येक चराले कति टाढासम्म हेर्न सक्छ। हेर्नुहोस् यदि तपाईं हेर्ने दायरा 0 गराउनु भयो भने सबै चराहरू अन्धा हुन्छन् र झुण्डी रोकिन्छ। यदि विभाजन 0 गरियो भने सबै चराहरू सिधा लाइनमा जम्मा हुन्छन्।
+
+> ✅ **कोड** ट्याबमा सर्नुहोस् र कसरी झुण्डीका तीन नियमहरू (समानता, समष्टि र विभाजन) कोडमा कार्यान्वयन गरिएको छ हेर्नुहोस्। नोट गर्नुहोस् कि हामी केवल ती एजेन्टहरूलाई मात्र संकेत गर्छौं जुन दृष्टिमा छन्।
+
+### हेर्न अरू मोडेलहरू
+
+अझ केही रोचक मोडेलहरू छन् जसमा तपाईं प्रयोग गर्न सक्नुहुन्छ:
+
+* **कला → आतिशबाजी** कसरी आतिशबाजीलाई व्यक्तिगत आगोका धाराहरूको सामूहिक व्यवहार मान्न सकिन्छ देखाउँछ
+* **सामाजिक विज्ञान → ट्राफिक बेसिक** र **सामाजिक विज्ञान → ट्राफिक ग्रिड** सहर ट्राफिकको 1D र 2D ग्रिड मोडेल ट्राफिक बत्ती सहित वा बिना देखाउँछन्। सिमुलेशनमा प्रत्येक कारले तलका नियमहरू पालना गर्छ:
+ - यदि अगाडि ठाउँ खाली छ भने - छिटो चल (निर्दिष्ट अधिकतम गतिसम्म)
+ - यदि अगाडि बाधा देख्छ भने - ब्रेक (र तपाईं चालकले कति टाढासम्म देख्न सक्छ समायोजन गर्न सक्नुहुन्छ)
+* **सामाजिक विज्ञान → पार्टी** कसरी मानिसहरू ककटेल पार्टीमा समूहबद्ध हुन्छन् देखाउँछ। तपाईंले समूहको खुशी सबैभन्दा छिटो वृद्धि हुने प्यारामिटर संयोजन पत्ता लगाउन सक्नुहुन्छ।
+
+यी उदाहरणहरूबाट तपाईंले देख्न सक्नुहुन्छ कि बहु-एजेण्ट सिमुलेशनहरू जटिल प्रणालीको व्यवहार बुझ्न धेरै उपयोगी हुन सक्छन्, जहाँ व्यक्तिहरू समान वा समानतर तर्क पालना गर्छन्। यो भर्चुअल एजेन्टहरू, जस्तै कम्प्युटर खेलहरूमा [NPCs](https://en.wikipedia.org/wiki/NPC) वा 3D एनिमेटेड संसारका एजेन्टहरूलाई नियन्त्रण गर्न पनि प्रयोग गर्न सकिन्छ।
+
+## परिकलनात्मक एजेन्टहरू
+
+माथि वर्णन गरिएका एजेन्टहरू धेरै सरल छन्, जो परिवेशमा भएका परिवर्तनहरूमा केहि प्रकारका एल्गोरिदम प्रयोग गरी प्रतिक्रिया जनाउँछन्। ती **प्रतिक्रियाशील एजेन्ट** हुन्। तर कहिलेकाहीं एजेन्टहरूले तर्क गरेर योजना बनाउन सक्छन्, जसलाई **परिकलनात्मक** भनिन्छ।
+
+एक सामान्य उदाहरण हो व्यक्तिगत एजेन्ट जुन मानिसबाट छुट्टै यात्रा आरक्षण गर्न निर्देशन प्राप्त गर्छ। सोच्नुहोस् इन्टरनेटमा धेरै एजेन्टहरू छन्, जसले यसलाई मद्दत गर्न सक्छन्। त्यसपछि यसले अन्य एजेन्टहरूसँग सम्पर्क गरी कुन उडानहरू उपलब्ध छ, विभिन्न मितिहरूमा होटल मूल्य कति छ, र उत्तम मूल्यको लागि सम्झौता गर्न प्रयास गर्नुपर्छ। जब यात्रा योजना पूर्ण र मालिकले पुष्टि गरे पछि, यो आरक्षण गर्न अघि बढ्छ।
+
+त्यसका लागि एजेन्टहरूले **संचार** गर्नुपर्छ। सफल सञ्चारका लागि तिनीहरूलाई चाहिन्छ:
+
+* ज्ञान आदानप्रदान गर्न केहि **मानक भाषाहरू**, जस्तै [Knowledge Interchange Format](https://en.wikipedia.org/wiki/Knowledge_Interchange_Format) (KIF) र [Knowledge Query and Manipulation Language](https://en.wikipedia.org/wiki/Knowledge_Query_and_Manipulation_Language) (KQML)। ती भाषाहरू [Speech Act theory](https://en.wikipedia.org/wiki/Speech_act) आधारमा डिजाइन गरिएका छन्।
+* ती भाषाहरूमा भिन्न **निलामी प्रकारहरू** आधारित केही **सम्झौताका प्रोटोकलहरू** पनि समावेश हुनुपर्छ।
+* एउटै अवधारणा उपयोग गर्न **साझा ओन्टोलोजी**, जसले तिनीहरूले समान अर्थ बुझ्न सकोस्
+* भिन्न एजेन्टहरूले के गर्न सक्छन् पत्ता लगाउने तरीका, जुन केहि प्रकारको ओन्टोलोजीमा आधारित हुन्छ
+
+परिकलनात्मक एजेन्टहरू प्रतिक्रियाशीलहरू भन्दा निकै जटिल हुन्छन्, किनभने तिनीहरूले परिवेशका परिवर्तनमा मात्र प्रतिक्रिया गर्दैनन्, तिनीहरूले क्रियाकलाप *सुरु* गर्न पनि सक्षम हुनुपर्छ। परिकलनात्मक एजेन्टहरूको प्रस्तावित वास्तुकलामा यति भनिने विश्वास-इच्छा-उद्देश्य (BDI) एजेन्ट सामेल छ:
+
+* **विश्वासहरू** एजेन्टको परिवेशबारे ज्ञानको सेट बनाउँछन्। यो एउटा ज्ञान आधार वा प्रणाली जसमा कुनै एजेन्टले वातावरणको विशिष्ट स्थितिमा नियमहरू लागू गर्छ।
+* **इच्छाहरू** एजेन्टले के गर्न चाहन्छ भनेर निर्धारण गर्छ, अर्थात् तिनीका लक्ष्यहरू। उदाहरणका लागि, माथिको व्यक्तिगत सहायक एजेन्टको लक्ष्य यात्रा आरक्षण गर्नु हो, र होटल एजेन्टको लक्ष्य नाफा अधिकतम गर्नु हो।
+* **उद्देश्यहरू** लक्ष्य प्राप्ति गर्न एजेन्टले योजना बनाएका विशिष्ट कार्यहरू हुन्। तिनीहरूले सामान्यतया परिवेश परिवर्तन गर्छन् र अन्य एजेन्टहरूसँग सञ्चार गर्छन्।
+
+बहु-एजेण्ट प्रणाली बनाउन केहि प्लेटफर्महरू उपलब्ध छन्, जस्तै [JADE](https://jade.tilab.com/). [यो कागज](https://arxiv.org/ftp/arxiv/papers/2007/2007.08961.pdf) मा बहु-एजेण्ट प्लेटफर्महरूको समीक्षा छ, साथै बहु-एजेण्ट प्रणालीहरूको छोटो इतिहास र तिनीहरूको विभिन्न प्रयोग अवस्थाहरू।
+
+## निष्कर्ष
+
+बहु-एजेण्ट प्रणालीहरूले विभिन्न स्वरूप लिन सक्छन् र धेरै फरक-फरक अनुप्रयोगहरूमा प्रयोग गर्न सकिन्छ।
+तिनीहरूले सबैले व्यक्तिगत एजेन्टको सरल व्यवहारमा ध्यान केन्द्रित गर्छन्, र **समन्वयात्मक प्रभाव** का कारण समग्र प्रणालीले बढी जटिल व्यवहार प्राप्त गर्छ।
+
+## 🚀 चुनौती
+
+यस पाठलाई वास्तविक संसारमा लगेर एउटा बहु-एजेण्ट प्रणाली कन्सेप्चुअलाइज गर्न प्रयास गर्नुहोस् जसले कुनै समस्या समाधान गर्न सक्छ। उदाहरणका लागि, विद्यालय बस मार्ग अनुकूलन गर्न एउटा बहु-एजेण्ट प्रणालीले के गर्नुपर्छ? एउटा बेकरीमा यो कसरी काम गर्न सक्छ?
+
+## [पाठ पछि क्विज](https://ff-quizzes.netlify.app/en/ai/quiz/46)
+
+## पुनरावलोकन र आत्म-अध्ययन
+
+औद्योगिक क्षेत्रमा यस प्रकारको प्रणालीको प्रयोग पुनरावलोकन गर्नुहोस्। निर्माण वा भिडियो खेल उद्योगजस्ता कुनै क्षेत्र छान्नुहोस् र बहु-एजेण्ट प्रणालीहरूले अनौठा समस्याहरू कसरी समाधान गर्न प्रयोग गर्न सकिन्छ पत्ता लगाउनुहोस्।
+
+## [NetLogo असाइनमेंट](assignment.md)
---
+
+**अस्वीकरण**:
+यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको हो। हामी सही हुन प्रयास गर्छौं, तर कृपया जानकार हुनुस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छन्। मूल दस्तावेज़ यसको मूल भाषामा आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलत बुझाइ वा त्रुटिको लागि हामी जिम्मेवार छैनौं।
+
\ No newline at end of file
diff --git a/translations/pa/.co-op-translator.json b/translations/pa/.co-op-translator.json
index 117154f2..50284e45 100644
--- a/translations/pa/.co-op-translator.json
+++ b/translations/pa/.co-op-translator.json
@@ -5,6 +5,12 @@
"source_file": "AGENTS.md",
"language_code": "pa"
},
+ "CONTRIBUTING.md": {
+ "original_hash": "c6fd7e781b67111a90abd166d0ce4aa0",
+ "translation_date": "2026-07-08T22:02:33+00:00",
+ "source_file": "CONTRIBUTING.md",
+ "language_code": "pa"
+ },
"README.md": {
"original_hash": "12c8eb6bf0867d2f1c32daf613ac5b8b",
"translation_date": "2026-04-06T20:44:27+00:00",
@@ -17,6 +23,19 @@
"source_file": "SECURITY.md",
"language_code": "pa"
},
+ "__translation_failures__": {
+ "lessons/sketchnotes/LICENSE.md": {
+ "original_hash": "45ab63a2cd8f5faef6c9b150618837a4",
+ "source_file": "lessons/sketchnotes/LICENSE.md",
+ "language_code": "pa",
+ "failure_date": "2026-07-08T22:00:57+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-08-26T11:17:31+00:00",
@@ -54,8 +73,8 @@
"language_code": "pa"
},
"examples/README.md": {
- "original_hash": "0d1babfdcbeb46525f2db3fbaaa54cd7",
- "translation_date": "2025-10-03T11:29:33+00:00",
+ "original_hash": "7883d52c2e2a221e0b07a7b112a149b9",
+ "translation_date": "2026-07-08T21:54:42+00:00",
"source_file": "examples/README.md",
"language_code": "pa"
},
@@ -66,8 +85,8 @@
"language_code": "pa"
},
"lessons/0-course-setup/how-to-run.md": {
- "original_hash": "a4717bd9103b9f6cd84d534b83534689",
- "translation_date": "2026-01-15T13:19:33+00:00",
+ "original_hash": "7ad8c7d8604c53649b3d4d1e2f3a6fa1",
+ "translation_date": "2026-07-08T21:56:35+00:00",
"source_file": "lessons/0-course-setup/how-to-run.md",
"language_code": "pa"
},
@@ -79,7 +98,7 @@
},
"lessons/1-Intro/README.md": {
"original_hash": "f57e8aa46141fd220b16ffed8f11aec7",
- "translation_date": "2025-11-18T21:13:56+00:00",
+ "translation_date": "2026-07-08T21:56:09+00:00",
"source_file": "lessons/1-Intro/README.md",
"language_code": "pa"
},
@@ -191,6 +210,12 @@
"source_file": "lessons/4-ComputerVision/08-TransferLearning/TrainingTricks.md",
"language_code": "pa"
},
+ "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb": {
+ "original_hash": "99b816b6a4957ef4100cee4c4221dff9",
+ "translation_date": "2026-07-08T21:44:58+00:00",
+ "source_file": "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb",
+ "language_code": "pa"
+ },
"lessons/4-ComputerVision/08-TransferLearning/lab/README.md": {
"original_hash": "7765935c35fcee69b9fe2d0cfd6963e2",
"translation_date": "2025-08-26T09:53:25+00:00",
@@ -330,8 +355,8 @@
"language_code": "pa"
},
"lessons/5-NLP/README.md": {
- "original_hash": "8ef02a9318257ea140ed3ed74442096d",
- "translation_date": "2025-08-26T08:05:51+00:00",
+ "original_hash": "038df6f1a73e49f6430740da083bfd6d",
+ "translation_date": "2026-07-08T21:57:08+00:00",
"source_file": "lessons/5-NLP/README.md",
"language_code": "pa"
},
@@ -355,7 +380,7 @@
},
"lessons/6-Other/23-MultiagentSystems/README.md": {
"original_hash": "38a1185ae3d54b180378bbd71ae3ef16",
- "translation_date": "2025-09-23T07:26:26+00:00",
+ "translation_date": "2026-07-08T22:02:04+00:00",
"source_file": "lessons/6-Other/23-MultiagentSystems/README.md",
"language_code": "pa"
},
diff --git a/translations/pa/CONTRIBUTING.md b/translations/pa/CONTRIBUTING.md
new file mode 100644
index 00000000..c7e969f2
--- /dev/null
+++ b/translations/pa/CONTRIBUTING.md
@@ -0,0 +1,29 @@
+# AI-For-Beginners ਵਿਚ ਯੋਗਦਾਨ ਦੇਣਾ
+
+AI-For-Beginners ਵਿੱਚ ਯੋਗਦਾਨ ਦੇਣ ਵਿਚ ਰੁਚੀ ਲਈ ਤੁਹਾਡਾ ਧੰਨਵਾਦ! ਅਸੀਂ ਅਨੁਵਾਦ, ਪਾਠ ਦੇ ਸਮਾਧਾਨ ਅਤੇ ਫਾਰਮੈਟਿੰਗ ਸਹੀ ਕਰਨ ਨੂੰ ਸਵਾਗਤ ਕਰਦੇ ਹਾਂ।
+
+## ਮਾਈਕ੍ਰੋਸਾਫਟ ਯੋਗਦਾਨ ਕਾਨੂੰਨੀ ਸਮਝੌਤਾ (CLA)
+
+ਇਹ ਪਰਿਯੋਜਨਾ ਯੋਗਦਾਨ ਅਤੇ ਸੁਝਾਅ ਸਵਾਗਤ ਕਰਦੀ ਹੈ। ਜ਼ਿਆਦਾਤਰ ਯੋਗਦਾਨਾਂ ਲਈ ਤੁਹਾਨੂੰ ਇੱਕ ਯੋਗਦਾਨ ਕਾਨੂੰਨੀ ਸਮਝੌਤਾ (CLA) ਨੂੰ ਸਵੀਕਾਰ ਕਰਨਾ ਪੈਂਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਤੁਸੀ ਇਹ ਐਲਾਨ ਕਰਦੇ ਹੋ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਤੁਹਾਡੇ ਯੋਗਦਾਨ ਨੂੰ ਵਰਤਣ ਦੇ ਹੱਕ ਹਨ ਅਤੇ ਤੁਸੀਂ ਸਾਨੂੰ ਇਹ ਹੱਕ ਦਿੱਤੇ ਹੋ। ਵਿਸਥਾਰ ਲਈ, [https://cla.microsoft.com](https://cla.microsoft.com) ਵੇਖੋ।
+
+ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਪੂਲ ਰਿਕਵੇਸਟ ਸਬਮਿੱਟ ਕਰਦੇ ਹੋ, ਤਾਂ ਇੱਕ CLA-ਬੋਟ ਆਪਮੈਟਿਕ ਤੌਰ 'ਤੇ ਇਹ ਤੈਅ ਕਰੇਗਾ ਕਿ ਕੀ ਤੁਹਾਨੂੰ CLA ਪ੍ਰਦਾਨ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਅਤੇ ਪ੍ਰੋਪਰ ਤਰੀਕੇ ਨਾਲ PR ਨੂੰ ਲੇਬਲ ਜਾਂ ਟਿੱਪਣੀ ਨਾਲ ਸੁਸ਼ੋਭਿਤ ਕਰੇਗਾ। ਸਿਰਫ ਬੋਟ ਵੱਲੋਂ ਦਿੱਤੀਆਂ ਹਦਾਇਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ। ਸਾਰੇ ਰਿਪੋਜ਼ੀਟਰੀਆਂ ਵਿੱਚ ਇਹ ਕੰਮ ਤੁਹਾਨੂੰ ਸਿਰਫ ਇੱਕ ਵਾਰੀ ਕਰਨਾ ਪਵੇਗਾ ਜੇ ਅਸੀਂ CLA ਵਰਤਦੇ ਹਾਂ।
+
+## ਯੋਗਦਾਨ ਕਿਵੇਂ ਦੇਣਾ ਹੈ
+
+### 1. ਟਾਈਪੋ / ਕੋਡ ਐਰਰ ਸੁਰੁਚਿਤ ਕਰਨਾ
+ਜੇਕਰ ਤੁਹਾਨੂੰ ਕਿਸੇ ਵੀ ਜੂਪੀਟਰ ਨੋਟਬੁੱਕ ਜਾਂ ਪਾਠ ਮਾਰਕਡਾਊਨ ਫਾਈਲ ਵਿੱਚ ਕੋਈ ਟਾਈਪੋ ਜਾਂ ਬੱਗ ਮਿਲਦਾ ਹੈ:
+1. ਰਿਪੋਜ਼ੀਟਰੀ ਨੂੰ ਫੋਰਕ ਕਰੋ।
+2. ਟਾਈਪੋ ਜਾਂ ਟੁੱਟਿਆ ਲਿੰਕ ਸਹੀ ਕਰੋ।
+3. ਸੁਧਾਰ ਦੇ ਸਪੱਸ਼ਟ ਵੇਰਵੇ ਨਾਲ ਇੱਕ ਪੂਲ ਰਿਕਵੇਸਟ ਸਬਮਿੱਟ ਕਰੋ।
+
+### 2. ਅਨੁਵਾਦ ਸਬਮਿੱਟ ਕਰਨਾ
+ਅਸੀਂ ਪਾਠਾਂ ਦੇ ਹੋਰ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਅਨੁਵਾਦਾਂ ਦਾ ਸਵਾਗਤ ਕਰਦੇ ਹਾਂ! ਕਿਰਪਾ ਕਰਕੇ `translations/` ਡਾਇਰੈਕਟਰੀ ਦੇ ਥੱਲੇ ਮੌਜੂਦਾ ਫੋਲਡਰ ਨਾਮਾਂ ਦਾ ਉਪਯੋਗ ਕਰਕੇ ਅਨੁਵਾਦ ਰੱਖੋ (ਜਿਵੇਂ ਕਿ `translations/es/`, `translations/pt-BR/`, `translations/zh-CN/`)।
+
+ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ, [etc/CONTRIBUTING.md](etc/CONTRIBUTING.md) ਵੇਖੋ।
+
+---
+
+
+**ਅਸਵੀਕਾਰੋਪਣ**:
+ਇਸ ਦਸਤਾਵੇਜ਼ ਦਾ ਅਨੁਵਾਦ ਏਆਈ ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾਵਾਂ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮੱਤਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜਰੂਰੀ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੇ ਉਪਯੋਗ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਜਵਾਬਦੇਹ ਨਹੀਂ ਹਾਂ।
+
\ No newline at end of file
diff --git a/translations/pa/examples/README.md b/translations/pa/examples/README.md
index fb5ba52c..1e54aa9c 100644
--- a/translations/pa/examples/README.md
+++ b/translations/pa/examples/README.md
@@ -1,85 +1,87 @@
-# ਸ਼ੁਰੂਆਤੀ ਪੱਧਰ ਦੇ AI ਉਦਾਹਰਨ
+# ਨਵੇਂ ਸਿਖਣ ਵਾਲਿਆਂ ਲਈ ਏਆਈ ਉਦਾਹਰਣਾਂ
-ਸਵਾਗਤ ਹੈ! ਇਹ ਡਾਇਰੈਕਟਰੀ ਸਧਾਰਨ, ਖੁਦ-ਨਿਰਭਰਤ ਉਦਾਹਰਨਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਦੀ ਹੈ ਜੋ ਤੁਹਾਨੂੰ AI ਅਤੇ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰੇਗੀ। ਹਰ ਉਦਾਹਰਨ ਨੂੰ ਸ਼ੁਰੂਆਤੀ ਪੱਧਰ ਦੇ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ, ਜਿਸ ਵਿੱਚ ਵਿਸਥਾਰਿਤ ਟਿੱਪਣੀਆਂ ਅਤੇ ਕਦਮ-ਦਰ-ਕਦਮ ਵਿਆਖਿਆਵਾਂ ਹਨ।
+ਸਵਾਗਤ ਹੈ! ਇਸ ਫੋਲਡਰ ਵਿੱਚ ਸਾਦੇ, ਖੁਦਮੁਖਤਾਰ ਉਦਾਹਰਣ ਹਨ ਜੋ ਤੁਹਾਨੂੰ ਏਆਈ ਅਤੇ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਨਗੇ। ਹਰ ਉਦਾਹਰਣ ਨਵੇਂ ਸਿਖਣ ਵਾਲਿਆਂ ਲਈ موزੂਨ ਹੈ ਜੋ ਵਿਸਥਾਰ ਨਾਲ ਟਿੱਪਣੀਆਂ ਅਤੇ ਕਦਮ-ਦਰ-ਕਦਮ ਵਿਆਖਿਆਵਾਂ ਨਾਲ banaayi gayi hai.
-## 📚 ਉਦਾਹਰਨਾਂ ਦਾ ਜਾਇਜ਼ਾ
+## 📚 ਉਦਾਹਰਣਾਂ ਦਾ ਜਾਇਜ਼ਾ
-| ਉਦਾਹਰਨ | ਵੇਰਵਾ | ਮੁਸ਼ਕਲਤਾ | ਪੂਰਵ-ਸ਼ਰਤਾਂ |
+| Example | Description | Difficulty | Prerequisites |
|---------|-------------|------------|---------------|
-| [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) | ਤੁਹਾਡਾ ਪਹਿਲਾ ਏਆਈ ਪ੍ਰੋਗਰਾਮ - ਸਾਦਾ ਪੈਟਰਨ ਪਹਿਚਾਣ | ⭐ Beginner | Python ਬੁਨਿਆਦੀ ਜਾਣਕਾਰੀ |
+| [Simple Neural Network](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/02-simple-neural-network.py) | ਸ਼ੁਰੂ ਤੋਂ ਨਿਰਮਾਣ ਕਰੋ ਇਕ ਨਿਊਰਲ ਨੈੱਟਵਰਕ | ⭐⭐ Beginner+ | Python, ਬੁਨਿਆਦੀ ਗਣਿਤ |
+| [Image Classifier](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/03-image-classifier.ipynb) | ਪ੍ਰੀ-ਟ੍ਰੇਨਡ ਮਾਡਲ ਨਾਲ ਚਿੱਤਰਾਂ ਦੀ ਵਰਗੀਕਰਨ ਕਰੋ | ⭐⭐ Beginner+ | Python, numpy |
+| [Text Sentiment](https://github.com/microsoft/AI-For-Beginners/blob/main/examples/04-text-sentiment.py) | ਲਿਖਤ ਦਾ ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ (ਸਕਾਰਾਤਮਕ/ਨਕਾਰਾਤਮਕ) | ⭐⭐ Beginner+ | Python |
## 🚀 ਸ਼ੁਰੂਆਤ ਕਰਨਾ
-### ਪੂਰਵ-ਸ਼ਰਤਾਂ
+### ਜ਼ਰੂਰੀ ਸ਼ਰਤਾਂ
-ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡੇ ਕੋਲ Python ਇੰਸਟਾਲ ਹੈ (3.8 ਜਾਂ ਇਸ ਤੋਂ ਉੱਚਾ ਸੰਸਕਰਣ ਸਿਫਾਰਸ਼ੀ ਹੈ)। ਲੋੜੀਂਦੇ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰੋ:
+ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡੇ ਕੋਲ Python ਇੰਸਟਾਲ ਹੈ (3.8 ਜਾਂ ਉਸ ਤੋਂ ਉੱਪਰ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ)। ਜ਼ਰੂਰੀ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰੋ:
```bash
-# For Python scripts
+# ਪਾਈਥਨ ਸਕ੍ਰਿਪਟਾਂ ਲਈ
pip install numpy
-# For Jupyter notebooks (image classifier)
+# ਜੁਪੀਟਰ ਨੋਟਬੁੱਕਾਂ ਲਈ (ਇਮੇਜ ਕਲਾਸੀਫਾਇਰ)
pip install jupyter numpy pillow tensorflow
```
-ਜਾਂ ਮੁੱਖ ਪਾਠਕ੍ਰਮ ਤੋਂ conda ਵਾਤਾਵਰਣ ਦੀ ਵਰਤੋਂ ਕਰੋ:
+ਜਾਂ ਮੁੱਖ ਕਰੀਕੁਲਮ ਦੇ ਕੋੰਡਾ ਇੰਵਾਇਰਨਮੈਂਟ ਦੀ ਵਰਤੋਂ ਕਰੋ:
```bash
conda env create --name ai4beg --file ../environment.yml
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. **Image Classifier ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ** - ਅਸਲ ਚਿੱਤਰਾਂ ਨਾਲ AI ਨੂੰ ਕਾਰਵਾਈ ਵਿੱਚ ਦੇਖੋ
-4. **Text Sentiment ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰੋ** - ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦੀ ਖੋਜ ਕਰੋ
+1. **"Hello AI World" ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ** - ਪੈਟਰਨ ਪਹਿਚਾਣ ਦੇ ਮੂਲ ਸਿੱਖੋ
+2. **ਇੱਕ ਸਾਦਾ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਬਣਾਓ** - ਸਮਝੋ ਕਿ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ
+3. **ਚਿੱਤਰ ਵਰਗੀਕਰਨ ਕੋਸ਼ਿਸ਼ ਕਰੋ** - ਅਸਲੀ ਚਿੱਤਰਾਂ ਨਾਲ ਏਆਈ ਦੇਖੋ
+4. **ਲਿਖਤ ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰੋ** - ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦੀ ਸੈਰ ਕਰੋ
-## 💡 ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਾਲਿਆਂ ਲਈ ਸੁਝਾਅ
+## 💡 ਨਵੇਂ ਸਿਖਣ ਵਾਲਿਆਂ ਲਈ ਸੁਝਾਅ
-- **ਕੋਡ ਟਿੱਪਣੀਆਂ ਨੂੰ ਧਿਆਨ ਨਾਲ ਪੜ੍ਹੋ** - ਇਹ ਹਰ ਲਾਈਨ ਦਾ ਅਰਥ ਸਮਝਾਉਂਦੀਆਂ ਹਨ
-- **ਪ੍ਰਯੋਗ ਕਰੋ!** - ਮੁੱਲਾਂ ਨੂੰ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਅਤੇ ਦੇਖੋ ਕੀ ਹੁੰਦਾ ਹੈ
-- **ਹਰ ਚੀਜ਼ ਨੂੰ ਸਮਝਣ ਦੀ ਚਿੰਤਾ ਨਾ ਕਰੋ** - ਸਿੱਖਣਾ ਸਮਾਂ ਲੈਂਦਾ ਹੈ
+- **ਕੋਡ ਟਿੱਪਣੀਆਂ ਧਿਆਨ ਨਾਲ ਪੜ੍ਹੋ** - ਉਹ ਹਰ ਲਾਈਨ ਦਾ ਕਾਰਜ ਸਮਝਾਉਂਦੀਆਂ ਹਨ
+- **ਪ੍ਰਯੋਗ ਕਰੋ!** - ਮੁੱਲਾਂ ਨੂੰ ਬਦਲ ਕੇ ਦੇਖੋ ਕੀ ਹੁੰਦਾ ਹੈ
+- **ਸਭ ਕੁਝ ਸਮਝਣ ਦੀ ਚਿੰਤਾ ਨਾ ਕਰੋ** - ਸਿੱਖਿਆ ਵਿੱਚ ਸਮਾਂ ਲੱਗਦਾ ਹੈ
- **ਸਵਾਲ ਪੁੱਛੋ** - [ਚਰਚਾ ਬੋਰਡ](https://github.com/microsoft/AI-For-Beginners/discussions) ਦੀ ਵਰਤੋਂ ਕਰੋ
## 🔗 ਅਗਲੇ ਕਦਮ
-ਇਹ ਉਦਾਹਰਨਾਂ ਪੂਰੀ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਪੂਰੇ ਪਾਠਕ੍ਰਮ ਦੀ ਖੋਜ ਕਰੋ:
-- [AI ਦਾ ਪਰਿਚਯ](../lessons/1-Intro/README.md)
-- [ਨਿਊਰਲ ਨੈਟਵਰਕ](../lessons/3-NeuralNetworks/README.md)
+ਇਹ ਉਦਾਹਰਣਾਂ ਖਤਮ ਕਰਨ ਤੋਂ ਬਾਅਦ ਪੂਰੇ ਕਰੀਕੁਲਮ ਨੂੰ ਖੋਜੋ:
+- [ਐਆਈ ਦਾ ਪਰੀਚਯ](../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) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚੀਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਮੌਜੂਦ ਅਸਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।
\ No newline at end of file
+
+**ਅਸਵੀਕਾਰੋਪਣ**:
+ਇਸ ਦਸਤਾਵੇਜ਼ ਦਾ ਅਨੁਵਾਦ ਏਆਈ ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾਵਾਂ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮੱਤਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜਰੂਰੀ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੇ ਉਪਯੋਗ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਜਵਾਬਦੇਹ ਨਹੀਂ ਹਾਂ।
+
\ No newline at end of file
diff --git a/translations/pa/lessons/0-course-setup/how-to-run.md b/translations/pa/lessons/0-course-setup/how-to-run.md
index 84f95f46..7bd12d70 100644
--- a/translations/pa/lessons/0-course-setup/how-to-run.md
+++ b/translations/pa/lessons/0-course-setup/how-to-run.md
@@ -1,12 +1,12 @@
-# ਕੋਡ ਨੂੰ ਕਿਵੇਂ ਚਲਾਉਣਾ ਹੈ
+# ਕੋਡ ਕਿਵੇਂ ਚਲਾਉਣਾ ਹੈ
-ਇਸ ਸਿੱਕਲ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਚਲਾਏ ਜਾ ਸਕਣ ਵਾਲੇ ਉਦਾਹਰਨਾਂ ਅਤੇ ਲੈਬ ਹਨ ਜੋ ਤੁਸੀਂ ਚਲਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ। ਇਹ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਇਸ ਸਿੱਕਲ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਦਿੱਤੇ ਗਏ Jupyter Notebooks ਵਿੱਚ Python ਕੋਡ ਚਲਾਉਣ ਦੀ ਸਮਰੱਥਾ ਦੀ ਲੋੜ ਹੈ। ਕੋਡ ਚਲਾਉਣ ਲਈ ਤੁਹਾਡੇ ਕੋਲ ਕਈ ਵਿਕਲਪ ਹਨ:
+ਇਸ ਕੈਰੀਕੁਲਮ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਐਗਜ਼ੈ큐ਟੇਬਲ ਉਦਾਹਰਣਾਂ ਅਤੇ ਲੈਬ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਚਲਾਉਣਾ ਚਾਹੋਗੇ। ਇਹ ਕਮ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਇਸ ਕੈਰੀਕੁਲਮ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਦਿੱਤੇ ਗਏ Jupyter Notebooks ਵਿੱਚ 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
@@ -17,55 +17,55 @@ conda activate ai4beg
### Visual Studio Code ਨੂੰ Python ਐਕਸਟੈਂਸ਼ਨ ਨਾਲ ਵਰਤਣਾ
-ਇਹ ਸਿੱਕਲ ਸਭ ਤੋਂ ਵਧੀਆ [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 ਐਕਸਟੈਂਸ਼ਨ](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** ਬਟਨ ਤੇ ਕਲਿਕ ਕਰੋ, ਇੱਕ codespace ਸ਼ੁਰੂ ਕਰੋ ਅਤੇ ਬਿਨਾਂ ਦੇਰ ਦੇ ਚੱਲ ਪੈ ਜਾਓ।
-* **[Binder](https://mybinder.org/v2/gh/microsoft/ai-for-beginners/HEAD)** ਵਰਤਕੇ। [Binder](https://mybinder.org) ਮੁਫ਼ਤ ਕਮਪਿਊਟਿੰਗ ਸਰੋਤ ਮੁਹੱਈਆ ਕਰਵਾਉਂਦਾ ਹੈ ਜੋ ਲੋਕਾਂ ਨੂੰ GitHub 'ਤੇ ਕੁਝ ਕੋਡ ਚੈੱਕ ਕਰਨ ਲਈ ਕਲਾਉਡ ਵਿੱਚ ਸੁਵਿਧਾ ਦਿੰਦਾ ਹੈ। ਅੱਗੇ ਵਾਲੇ ਪੰਨੇ 'ਤੇ ਇੱਕ ਬਟਨ ਹੈ ਜੋ ਰਿਪੋਜ਼ਿਟਰੀ ਨੂੰ ਬਾਈਂਡਰ ਵਿੱਚ ਖੋਲ੍ਹਦਾ ਹੈ - ਇਹ ਤੁਹਾਨੂੰ ਜਲਦੀ ਨਾਲ ਬਾਈਂਡਰ ਸਾਈਟ ਤੇ ਲਿਜਾਵੇਗਾ, ਜੋ ਅੰਦਰਲੀ ਕੰਟੇਨਰ ਬਣਾ ਕੇ ਤੁਹਾਡੇ ਲਈ ਬਿਨਾਂ ਰੁਕਾਵਟ Jupyter ਵੈੱਬ ਇੰਟਰਫੇਸ ਸ਼ੁਰੂ ਕਰੇਗਾ।
+* **[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 'ਤੇ ਕੁਝ ਕੋਡ ਟੈਸਟ ਕਰਨ ਲਈ ਹੈ। ਫਰੰਟ ਪੇਜ ਤੇ ਇਕ ਬਟਨ ਹੁੰਦਾ ਹੈ ਜੋ ਰਿਪੋਜ਼ਿਟਰੀ ਨੂੰ Binder ਵਿੱਚ ਖੋਲ੍ਹਦਾ ਹੈ - ਇਹ ਤੁਹਾਨੂੰ ਜਲਦੀ ਨਾਲ Binder ਸਾਈਟ 'ਤੇ ਲੈ ਜਾਵੇਗਾ, ਜੋ ਇਕ ਅਧਾਰਭੂਤ ਕੰਟੇਨਰ ਬਣਾਵੇਗਾ ਅਤੇ ਤੁਹਾਡੇ ਲਈ ਸਹਿਜ Jupyter ਵੈੱਬ ਇੰਟਰਫੇਸ ਸ਼ੁਰੂ ਕਰੇਗਾ।
-> **ਨੋਟ**: ਗਲਤ ਉਦੇਸ਼ ਤੋਂ ਬਚਣ ਲਈ, ਬਾਈਂਡਰ ਨੂੰ ਕੁਝ ਵੈੱਬ ਸਰੋਤਾਂ ਤੱਕ ਪਹੁੰਚ ਰੋਕ ਦਿੱਤੀ ਗਈ ਹੈ। ਇਸ ਨਾਲ ਕੁਝ ਕੋਡ, ਜੋ ਮਾਡਲ ਜਾਂ ਡਾਟਾਸੈੱਟ ਪਬਲਿਕ ਇੰਟਰਨੈਟ ਤੋਂ ਫੈਚ ਕਰਦੇ ਹਨ, ਕੰਮ ਨਾ ਕਰ ਸਕੈ। ਤੁਹਾਨੂੰ ਕੁਝ ਵੱਖਰੇ ਤਰੀਕੇ ਲੱਭਣੇ ਪੈ ਸਕਦੇ ਹਨ। ਇਸ ਦੇ ਨਾਲ, ਬਾਈਂਡਰ ਦੇ ਕੰਪਿਊਟਿੰਗ ਸਰੋਤ ਬਹੁਤ ਬੁਨਿਆਦੀ ਹਨ, ਇਸ ਲਈ ਸਿੱਖਣ ਵਾਲੀਆਂ ਦਹਾਕਿਆਂ ਵਿੱਚ ਖਾਸ ਕਰਕੇ ਟ੍ਰੇਨਿੰਗ ਸਕੂਣ ਹੋ ਸਕਦੀ ਹੈ।
+> **ਨੋਟ**: ਗਲਤ ਵਰਤੋਂ ਨੂੰ ਰੋਕਣ ਲਈ, Binder ਨੂੰ ਕੁਝ ਵੈੱਬ ਸਰੋਤਾਂ ਤੱਕ ਪਹੁੰਚ ਰੋਕੀ ਗਈ ਹੈ। ਇਸ ਨਾਲ ਕੁਝ ਕੋਡ ਜੋ ਮਾਡਲਾਂ ਅਤੇ/ਜਾਂ ਡੇਟਾਸੈਟਾਂ ਨੂੰ ਜਨਤਕ ਇੰਟਰਨੈੱਟ ਤੋਂ ਲਾਂਭਦੇ ਹਨ, ਕੰਮ ਨਾ ਕਰਨ ਆ ਸਕਦੇ ਹਨ। ਤੁਹਾਨੂੰ ਕੁਝ ਵਿਕਲਪ ਵਿਖੋਲੇ ਲੱਭਣੇ ਪੈ ਸਕਦੇ ਹਨ। ਅਜਿਹਾ ਹੀ, Binder ਦੁਆਰਾ ਦਿੱਤੇ ਗਏ ਕੰਪਿਊਟਿੰਗ ਸਰੋਤ ਕਾਫੀ ਆਧਾਰਭੂਤ ਹਨ, ਇਸ ਲਈ ਟ੍ਰੇਨਿੰਗ ਧੀਮੀ ਹੋਵੇਗੀ, ਖਾਸ ਤੌਰ 'ਤੇ ਅੱਗੇ ਦੇ, ਜਿਆਦਾ ਜਟਿਲ ਪਾਠਾਂ ਵਿੱਚ।
-## ਕਲਾਉਡ ਵਿੱਚ GPU ਨਾਲ ਚਲਾਉਣਾ
+## GPU ਦੇ ਨਾਲ ਕਲਾਊਡ ਵਿੱਚ ਚਲਾਉਣਾ
-ਇਸ ਸਿੱਕਲ ਦੇ ਬਾਅਦਲੇ ਕੁਝ ਪਾਠਾਂ ਨੂੰ GPU ਸਹਾਇਤਾ ਨਾਲ ਵੱਡਾ ਫ਼ਾਇਦਾ ਹੋਵੇਗਾ। ਮਾਡਲ ਟ੍ਰੇਨਿੰਗ, ਉਦਾਹਰਨ ਵਜੋਂ, ਨਹੀਂ ਤਾਂ ਬਹੁਤ ਧੀਮੀ ਹੋ ਸਕਦੀ ਹੈ। ਕੁਝ ਵਿਕਲਪ ਹਨ, ਖ਼ਾਸ ਕਰਕੇ ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਕਲਾਉਡ ਪਹੁੰਚ ਹੈ ਜਾਂ ਤਾਂ [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) ਰਾਹੀਂ ਹੋਵੇ, ਜਾਂ ਤੁਹਾਡੇ ਸੰਸਥਾਨ ਰਾਹੀਂ:
-* [ਡਾਟਾ ਸਾਇੰਸ ਵਰਚੂਅਲ ਮਸ਼ੀਨ](https://docs.microsoft.com/learn/modules/intro-to-azure-data-science-virtual-machine/?WT.mc_id=academic-77998-cacaste) ਬਣਾਓ ਅਤੇ Jupyter ਰਾਹੀਂ ਇਸ ਨਾਲ ਜੁੜੋ। ਤੁਸੀਂ ਫਿਰ ਰਿਪੋ ਨੂੰ ਸੀਧਾ ਮਸ਼ੀਨ 'ਤੇ ਕਲੋਨ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਸਿੱਖਣਾ ਸ਼ੁਰੂ ਕਰ ਸਕਦੇ ਹੋ। NC-ਸਿਰੀਜ਼ VM ਵਿੱਚ 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 ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਵਰਕਸਪੇਸ](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) ਬਣਾਓ ਅਤੇ ਫਿਰ ਉਥੇ Notebook ਵਿਸ਼ੇਸ਼ਤਾ ਵਰਤੋ। [ਇਹ ਵੀਡੀਓ](https://azure-for-academics.github.io/quickstart/azureml-papers/) ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਕਿਵੇਂ ਰਿਪੋਜ਼ਿਟਰੀ ਨੂੰ.Azure ML notebook ਵਿੱਚ ਕਲੋਨ ਕਰਕੇ ਇਸਦਾ ਉਪਯੋਗ ਸ਼ੁਰੂ ਕਰਨਾ ਹੈ।
-ਤੁਸੀਂ ਗੂਗਲ ਕੋਲੈਬ ਵੀ ਵਰਤ ਸਕਦੇ ਹੋ, ਜਿਸ ਵਿੱਚ ਕੁਝ ਮੁਫਤ GPU ਸਹਾਇਤਾ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਉਥੇ Jupyter Notebooks ਇਕ ਇਕ ਕਰਕੇ ਅਪਲੋਡ ਕਰ ਕੇ ਚਲਾ ਸਕਦੇ ਹੋ।
+ਤੁਸੀਂ Google Colab ਦਾ ਵੀ ਇਸਤੇਮਾਲ ਕਰ ਸਕਦੇ ਹੋ, ਜਿਸ ਵਿੱਚ ਕੁਝ ਮੁਫ਼ਤ GPU ਸਹਿਯੋਗ ਹੈ, ਅਤੇ Jupyter Notebooks ਉੱਥੇ ਅਪਲੋਡ ਕਰਕੇ ਇੱਕ-ਇੱਕ ਕਰਕੇ ਚਲਾ ਸਕਦੇ ਹੋ।
---
-**ਤਰਜਮਾ ਸੂਚਨਾ**:
-ਇਸ ਦਸਤਾਵੇਜ਼ ਨੂੰ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਹਾਲਾਂਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਜਾਣਦੇ ਰਹੋ ਕਿ ਆਟੋਮੇਟਿਡ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮਰਥਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਦਾ ਮੂਲ ਦਸਤਾਵੇਜ਼ ਉਸ ਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਹੀ ਪ੍ਰਮਾਣਿਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਅਹਿਮ ਜਾਣਕਾਰੀ ਲਈ, ਪ੍ਰੋਫੈਸ਼ਨਲ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਿਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫ਼ਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।
+**ਅਸਵੀਕਾਰੋਪਣ**:
+ਇਸ ਦਸਤਾਵੇਜ਼ ਦਾ ਅਨੁਵਾਦ ਏਆਈ ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾਵਾਂ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮੱਤਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜਰੂਰੀ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੇ ਉਪਯੋਗ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਜਵਾਬਦੇਹ ਨਹੀਂ ਹਾਂ।
\ No newline at end of file
diff --git a/translations/pa/lessons/1-Intro/README.md b/translations/pa/lessons/1-Intro/README.md
index ed5c852d..2d3ac93d 100644
--- a/translations/pa/lessons/1-Intro/README.md
+++ b/translations/pa/lessons/1-Intro/README.md
@@ -1,125 +1,162 @@
-# AI ਦਾ ਪਰਿਚਯ
+# ਏਆਈ ਦਾ ਪਰਿਚਯ
-
+
-> ਸਕੈਚਨੋਟ [ਟੋਮੋਮੀ ਇਮੁਰਾ](https://twitter.com/girlie_mac) ਦੁਆਰਾ
+> ਸਕੈਚਨੋਟ [ਟੋਮੋਮੀ ਇਮੁਰਾ](https://twitter.com/girlie_mac) ਵੱਲੋਂ
-## [ਪ੍ਰੀ-ਲੈਕਚਰ ਕਵਿਜ਼](https://ff-quizzes.netlify.app/en/ai/quiz/1)
+## [ਪ੍ਰੀ-ਲੇਕਚਰ ਕਵਿਜ਼](https://ff-quizzes.netlify.app/en/ai/quiz/1)
-**ਕ੍ਰਿਤ੍ਰਿਮ ਬੁੱਧੀ** ਇੱਕ ਰੋਮਾਂਚਕ ਵਿਗਿਆਨਕ ਵਿਸ਼ਾ ਹੈ ਜੋ ਇਸ ਗੱਲ ਦਾ ਅਧਿਐਨ ਕਰਦਾ ਹੈ ਕਿ ਅਸੀਂ ਕੰਪਿਊਟਰਾਂ ਨੂੰ ਬੁੱਧੀਮਾਨ ਵਿਹਾਰ ਕਰਨ ਲਈ ਕਿਵੇਂ ਬਣਾਉਣਗੇ, ਜਿਵੇਂ ਕਿ ਉਹ ਕੰਮ ਕਰਨਾ ਜੋ ਮਨੁੱਖੀ ਜੀਵਨ ਵਿੱਚ ਚੰਗੇ ਹਨ।
+**ਕਿਰਤਰਿਮ ਬੁੱਧੀਮੱਤਾ** ਇੱਕ ਰੋਚਕ ਵਿਗਿਆਨਕ ਵਿਸ਼ਾ ਹੈ ਜੋ ਅਧਿਐਨ ਕਰਦਾ ਹੈ ਕਿ ਅਸੀਂ ਕੰਪਿਊਟਰਾਂ ਨੂੰ ਬੁੱਧੀਮਾਨ ਵਰਤੋਂਗੇ ਕਿਵੇਂ ਸਿਖਾ ਸਕਦੇ ਹਾਂ, ਜਿਵੇਂ ਮਨੁੱਖ ਕੁਝ ਕੰਮਾਂ ਵਿੱਚ ਮਹਿਰ ਹਨ।
-ਮੂਲ ਰੂਪ ਵਿੱਚ, ਕੰਪਿਊਟਰਾਂ ਨੂੰ [ਚਾਰਲਸ ਬੈਬੇਜ](https://en.wikipedia.org/wiki/Charles_Babbage) ਦੁਆਰਾ ਸੰਖਿਆਵਾਂ 'ਤੇ ਕੰਮ ਕਰਨ ਲਈ ਬਣਾਇਆ ਗਿਆ ਸੀ, ਇੱਕ ਸਪਸ਼ਟ ਤਰੀਕੇ - ਇੱਕ ਐਲਗੋਰਿਦਮ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹੋਏ। ਆਧੁਨਿਕ ਕੰਪਿਊਟਰ, ਹਾਲਾਂਕਿ 19ਵੀਂ ਸਦੀ ਵਿੱਚ ਪ੍ਰਸਤਾਵਿਤ ਮੂਲ ਮਾਡਲ ਨਾਲੋਂ ਕਾਫ਼ੀ ਅਗਰਗਾਮੀ ਹਨ, ਫਿਰ ਵੀ ਨਿਯੰਤਰਿਤ ਗਣਨਾਵਾਂ ਦੇ ਇੱਕੋ ਹੀ ਵਿਚਾਰ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹਨ। ਇਸ ਲਈ, ਇਹ ਸੰਭਵ ਹੈ ਕਿ ਕੰਪਿਊਟਰ ਨੂੰ ਕੁਝ ਕਰਨ ਲਈ ਪ੍ਰੋਗਰਾਮ ਕੀਤਾ ਜਾ ਸਕੇ ਜੇਕਰ ਅਸੀਂ ਉਹ ਸਪਸ਼ਟ ਕਦਮਾਂ ਦੀ ਲੜੀ ਜਾਣਦੇ ਹਾਂ ਜੋ ਲਕਸ਼ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਕਰਨੇ ਹਨ।
+ਮੂਲ ਤੌਰ ਤੇ, ਕੰਪਿਊਟਰਾਂ ਦਾ ਅਵਿਸਕਾਰ [ਚਾਰਲਜ਼ ਬੈਬੇਜ](https://en.wikipedia.org/wiki/Charles_Babbage) ਵੱਲੋਂ ਨੰਬਰਾਂ 'ਤੇ ਕੰਮ ਕਰਨ ਲਈ ਕੀਤਾ ਗਿਆ ਸੀ ਜੋ ਇੱਕ ਸੂਚਿਤ ਕਾਰਵਾਈ - ਐਲਗੋਰਿਦਮ - ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹਨ। ਅਧੁਨਿਕ ਕੰਪਿਊਟਰ, ਹਾਲਾਂਕਿ ਮੂਲ ਮਾਡਲ ਨਾਲੋਂ ਕਾਫੀ ਉੱਨਤ ਹਨ ਜੋ 19ਵੀਂ ਸਦੀ ਵਿੱਚ ਦਿੱਤਾ ਗਿਆ ਸੀ, ਫਿਰ ਵੀ ਸਮਰੱਥ ਕੰਟਰੋਲ ਕੀਤੀ ਗਈ ਗਣਨਾਵਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹਨ। ਇਸ ਲਈ ਜੇ ਅਸੀਂ ਪਰਿਵਾਰਤਨ ਦੀ ਸਹੀ ਕ੍ਰਮਬੱਧ ਕਦਮਾਂ ਬਾਰੇ ਜਾਣਦੇ ਹਾਂ, ਤਾਂ ਕੰਪਿਊਟਰ ਨੂੰ ਕੁਝ ਕਰਨ ਲਈ ਪ੍ਰੋਗ੍ਰਾਮ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।

-> ਤਸਵੀਰ [ਵਿਕੀ ਸੋਸ਼ਨਿਕੋਵਾ](http://twitter.com/vickievalerie) ਦੁਆਰਾ
+> ਤਸਵੀਰ [ਵਿੱਕੀ ਸੋਸ਼ਨਿਕੋਵਾ](http://twitter.com/vickievalerie) ਵੱਲੋਂ
-> ✅ ਇੱਕ ਵਿਅਕਤੀ ਦੀ ਉਸ ਦੀ ਤਸਵੀਰ ਤੋਂ ਉਮਰ ਨਿਰਧਾਰਤ ਕਰਨਾ ਇੱਕ ਕੰਮ ਹੈ ਜਿਸ ਨੂੰ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਪ੍ਰੋਗਰਾਮ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ, ਕਿਉਂਕਿ ਅਸੀਂ ਨਹੀਂ ਜਾਣਦੇ ਕਿ ਅਸੀਂ ਆਪਣੇ ਮਨ ਵਿੱਚ ਇੱਕ ਗਿਣਤੀ ਕਿਵੇਂ ਬਣਾਉਂਦੇ ਹਾਂ ਜਦੋਂ ਅਸੀਂ ਇਹ ਕਰਦੇ ਹਾਂ।
+> ✅ ਕਿਸੇ ਵਿਅਕਤੀ ਦੀ ਉਮਰ ਉਸ ਦੀ ਤਸਵੀਰ ਤੋਂ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਦਾ ਕੰਮ ਸਿੱਧਾ ਪ੍ਰੋਗ੍ਰਾਮ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ, ਕਿਉਂਕਿ ਅਸੀਂ ਨਹੀਂ ਜਾਣਦੇ ਕਿ ਅਸੀਂ ਇਹ ਕੰਮ ਮਨ ਵਿੱਚ ਸੰਖਿਆ ਕਿਵੇਂ ਨਿਰਧਾਰਤ ਕਰਦੇ ਹਾਂ।
---
-ਕੁਝ ਕੰਮ ਹਨ, ਹਾਲਾਂਕਿ, ਜਿਨ੍ਹਾਂ ਨੂੰ ਹੱਲ ਕਰਨ ਦਾ ਸਪਸ਼ਟ ਤਰੀਕਾ ਸਾਨੂੰ ਨਹੀਂ ਪਤਾ। ਇੱਕ ਵਿਅਕਤੀ ਦੀ ਉਸ ਦੀ ਤਸਵੀਰ ਤੋਂ ਉਮਰ ਨਿਰਧਾਰਤ ਕਰਨ ਦੇ ਬਾਰੇ ਸੋਚੋ। ਅਸੀਂ ਇਸ ਨੂੰ ਕਿਵੇਂ ਕਰਨਾ ਸਿੱਖਦੇ ਹਾਂ, ਕਿਉਂਕਿ ਅਸੀਂ ਵੱਖ-ਵੱਖ ਉਮਰ ਦੇ ਲੋਕਾਂ ਦੇ ਬਹੁਤ ਸਾਰੇ ਉਦਾਹਰਨ ਵੇਖੇ ਹਨ, ਪਰ ਅਸੀਂ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਸਮਝਾ ਨਹੀਂ ਸਕਦੇ ਕਿ ਅਸੀਂ ਇਹ ਕਿਵੇਂ ਕਰਦੇ ਹਾਂ, ਨਾ ਹੀ ਅਸੀਂ ਕੰਪਿਊਟਰ ਨੂੰ ਇਹ ਕਰਨ ਲਈ ਪ੍ਰੋਗਰਾਮ ਕਰ ਸਕਦੇ ਹਾਂ। ਇਹ ਸਹੀ ਤੌਰ 'ਤੇ ਉਹ ਕੰਮ ਹਨ ਜੋ **ਕ੍ਰਿਤ੍ਰਿਮ ਬੁੱਧੀ** (ਸੰਖੇਪ ਵਿੱਚ AI) ਲਈ ਦਿਲਚਸਪੀ ਦੇ ਹਨ।
+ਕੁਝ ਕੰਮ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਅਸੀਂ ਸਿਧਾ ਹੱਲ ਕਰਨ ਦਾ ਤਰੀਕਾ ਨਹੀਂ ਜਾਣਦੇ। ਉਦਾਹਰਨ ਵੱਜੋਂ, ਕਿਸੇ ਵਿਅਕਤੀ ਦੀ ਤਸਵੀਰ ਤੋਂ ਉਸ ਦੀ ਉਮਰ ਨਿਰਧਾਰਤ ਕਰਨਾ। ਅਸੀਂ ਇਸ ਨੂੰ ਕੁਝਖ ਕੁਝ ਸਿੱਖ ਜਾਂਦੇ ਹਾਂ, ਕਿਉਂਕਿ ਅਸੀਂ ਵੱਖ-ਵੱਖ ਉਮਰ ਦੇ ਬਹੁਤ ਸਾਰੇ ਉਦਾਹਰਨ ਵੇਖੇ ਹਨ, ਪਰ ਅਸੀਂ ਇਸ ਤਰੀਕੇ ਨੂੰ ਵਿਸਥਾਰ ਨਾਲ ਸਮਝਾ ਨਹੀਂ ਸਕਦੇ, ਨਾਹ ਹੀ ਇਸ ਲਈ ਕੰਪਿਊਟਰ ਨੂੰ ਪ੍ਰੋਗ੍ਰਾਮ ਕਰ ਸਕਦੇ ਹਾਂ। ਇਹ ਉਹੋ ਜਿਹਾ ਕੰਮ ਹੈ ਜਿਸ ਵਿੱਚ **ਕਿਰਤਰਿਮ ਬੁੱਧੀਮੱਤਾ** (ਸੰਖੇਪ ਵਿੱਚ ਏਆਈ) ਦਾ ਰੁਝਾਨ ਹੁੰਦਾ ਹੈ।
-✅ ਕੁਝ ਕੰਮਾਂ ਬਾਰੇ ਸੋਚੋ ਜੋ ਤੁਸੀਂ ਕੰਪਿਊਟਰ ਨੂੰ ਸੌਂਪ ਸਕਦੇ ਹੋ ਜੋ AI ਤੋਂ ਲਾਭ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਨ। ਵਿੱਤ, ਦਵਾਈ ਅਤੇ ਕਲਾ ਦੇ ਖੇਤਰਾਂ ਬਾਰੇ ਵਿਚਾਰ ਕਰੋ - ਇਹ ਖੇਤਰ ਅੱਜ AI ਤੋਂ ਕਿਵੇਂ ਲਾਭ ਪ੍ਰਾਪਤ ਕਰ ਰਹੇ ਹਨ?
+✅ ਕੁਝ ਅਜਿਹੇ ਕੰਮ ਸੋਚੋ ਜੋ ਤੁਸੀਂ ਕੰਪਿਊਟਰ ਨੂੰ ਦੇ ਸਕਦੇ ਹੋ ਜਿਹੜੇ ਏਆਈ ਤੋਂ ਲਾਭ ਪ੍ਰਾਪਤ ਕਰਨਗੇ। ਵਿੱਤ, ਚਿਕਿਤ्सा, ਅਤੇ ਕਲਾ ਦੇ ਖੇਤਰ ਵਿੱਚ ਏਆਈ ਕਿਵੇਂ ਲਾਭਕਾਰੀ ਹੈ?
-## ਕਮਜ਼ੋਰ AI ਅਤੇ ਮਜ਼ਬੂਤ AI
+## ਕਮਜ਼ੋਰ ਏਆਈ vs. ਮਜ਼ਬੂਤ ਏਆਈ
-ਕਮਜ਼ੋਰ AI | ਮਜ਼ਬੂਤ AI
+ਕਮਜ਼ੋਰ ਏਆਈ | ਮਜ਼ਬੂਤ ਏਆਈ
---------------------------------------|-------------------------------------
-ਕਮਜ਼ੋਰ AI ਉਹ AI ਸਿਸਟਮਾਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜੋ ਕਿਸੇ ਵਿਸ਼ੇਸ਼ ਕੰਮ ਜਾਂ ਕੰਮਾਂ ਦੇ ਸ محدود ਸੈੱਟ ਲਈ ਡਿਜ਼ਾਈਨ ਅਤੇ ਪ੍ਰਸ਼ਿਕਸ਼ਿਤ ਕੀਤੇ ਗਏ ਹਨ।|ਮਜ਼ਬੂਤ AI, ਜਾਂ ਕ੍ਰਿਤ੍ਰਿਮ ਜਨਰਲ ਇੰਟੈਲੀਜੈਂਸ (AGI), ਉਹ AI ਸਿਸਟਮਾਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜੋ ਮਨੁੱਖੀ-ਸਤਰ ਦੀ ਬੁੱਧੀ ਅਤੇ ਸਮਝ ਰੱਖਦੇ ਹਨ।
-ਇਹ AI ਸਿਸਟਮ ਆਮ ਤੌਰ 'ਤੇ ਬੁੱਧੀਮਾਨ ਨਹੀਂ ਹੁੰਦੇ; ਇਹ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਕੰਮ ਵਿੱਚ ਸ਼ਾਨਦਾਰ ਹਨ ਪਰ ਸੱਚੀ ਸਮਝ ਜਾਂ ਚੇਤਨਾ ਦੀ ਘਾਟ ਹੁੰਦੀ ਹੈ।|ਇਹ AI ਸਿਸਟਮ ਉਹਨਾਂ ਬੁੱਧੀਮਾਨ ਕੰਮਾਂ ਨੂੰ ਕਰਨ ਦੀ ਯੋਗਤਾ ਰੱਖਦੇ ਹਨ ਜੋ ਕੋਈ ਮਨੁੱਖ ਕਰ ਸਕਦਾ ਹੈ, ਵੱਖ-ਵੱਖ ਖੇਤਰਾਂ ਵਿੱਚ ਅਨੁਕੂਲ ਹੋ ਸਕਦੇ ਹਨ, ਅਤੇ ਚੇਤਨਾ ਜਾਂ ਸਵੈ-ਜਾਗਰੂਕਤਾ ਦਾ ਰੂਪ ਰੱਖਦੇ ਹਨ।
-ਕਮਜ਼ੋਰ AI ਦੇ ਉਦਾਹਰਨਾਂ ਵਿੱਚ Siri ਜਾਂ Alexa ਵਰਗੇ ਵਰਚੁਅਲ ਸਹਾਇਕ, ਸਟ੍ਰੀਮਿੰਗ ਸੇਵਾਵਾਂ ਦੁਆਰਾ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਸਿਫਾਰਸ਼ੀ ਐਲਗੋਰਿਦਮ, ਅਤੇ ਵਿਸ਼ੇਸ਼ ਗਾਹਕ ਸੇਵਾ ਕੰਮਾਂ ਲਈ ਡਿਜ਼ਾਈਨ ਕੀਤੇ ਗਏ ਚੈਟਬੋਟ ਸ਼ਾਮਲ ਹਨ।|ਮਜ਼ਬੂਤ AI ਪ੍ਰਾਪਤ ਕਰਨਾ AI ਖੋਜ ਦਾ ਲੰਬੇ ਸਮੇਂ ਦਾ ਲਕਸ਼ ਹੈ ਅਤੇ ਇਸ ਲਈ AI ਸਿਸਟਮਾਂ ਦੇ ਵਿਕਾਸ ਦੀ ਲੋੜ ਹੋਵੇਗੀ ਜੋ ਵੱਖ-ਵੱਖ ਕੰਮਾਂ ਅਤੇ ਸੰਦਰਭਾਂ ਵਿੱਚ ਤਰਕ, ਸਿੱਖਣ, ਸਮਝਣ ਅਤੇ ਅਨੁਕੂਲ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣ।
-ਕਮਜ਼ੋਰ AI ਬਹੁਤ ਹੀ ਵਿਸ਼ੇਸ਼ ਹੈ ਅਤੇ ਇਸਦੇ ਸੰਕੁਚਿਤ ਖੇਤਰ ਤੋਂ ਬਾਹਰ ਮਨੁੱਖੀ-ਜਿਵੇਂ ਸੰਕਲਪਕ ਯੋਗਤਾਵਾਂ ਜਾਂ ਆਮ ਸਮੱਸਿਆ-ਸੁਝਾਅ ਯੋਗਤਾਵਾਂ ਨਹੀਂ ਰੱਖਦਾ।|ਮਜ਼ਬੂਤ AI ਵਰਤਮਾਨ ਵਿੱਚ ਇੱਕ ਸਿਧਾਂਤਕ ਧਾਰਨਾ ਹੈ, ਅਤੇ ਕੋਈ ਵੀ AI ਸਿਸਟਮ ਇਸ ਜਨਰਲ ਇੰਟੈਲੀਜੈਂਸ ਦੇ ਪੱਧਰ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚਿਆ ਹੈ।
+ਕਮਜ਼ੋਰ ਏਆਈ ਉਹ ਪ੍ਰਣਾਲੀ ਹੈ ਜੋ ਕਿਸੇ ਖਾਸ ਕੰਮ ਜਾਂ ਤੰਗ ਕੰਮਾਂ ਲਈ ਬਣਾਈ ਅਤੇ ਸਿਖਾਈ ਗਈ ਹੈ।|ਮਜ਼ਬੂਤ ਏਆਈ ਜਾਂ ਕਿਰਤਰਿਮ ਸਾਰਵਜਨਿਕ ਬੁੱਧੀਮੱਤਾ (AGI), ਉਹ ਪ੍ਰਣਾਲੀ ਹੈ ਜਿਸਦਾ ਬੁੱਧੀਮਾਨਾ ਦਰਜਾ ਅਤੇ ਸਮਝ ਮਨੁੱਖੀ ਸਮਾਨ ਹੈ।
+ਇਹ ਪ੍ਰਣਾਲੀਆਂ ਆਮ ਤੌਰ ਤੇ ਬੁੱਧੀਮਾਨ ਨਹੀਂ ਹੁੰਦੀਆਂ; ਇਹ ਇੱਕ ਨਿਰਧਾਰਿਤ ਕੰਮ ਵਿੱਚ ਮਾਹਿਰ ਹੁੰਦੀਆਂ ਹਨ ਪਰ ਅਸਲ ਸਮਝ ਜਾਂ ਚੇਤਨਾ ਨਹੀਂ ਹੁੰਦੀ।|ਇਹ ਪ੍ਰਣਾਲੀ ਕਿਸੇ ਵੀ ਬੁੱਧੀਮਾਨ ਕੰਮ ਨੂੰ ਕਰ ਸਕਦੀਆਂ ਹਨ ਜੋ ਮਨੁੱਖ ਦੇ ਵੱਲੋਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਵੱਖ-ਵੱਖ ਖੇਤਰਾਂ ਵਿੱਚ ਅਨੁਕੂਲਿਤ ਹੋ ਸਕਦੀਆਂ ਹਨ ਅਤੇ ਚੇਤਨਾ ਜਾਂ ਸਵੈ-ਜਾਗਰੂਕਤਾ ਰੱਖਦੀਆਂ ਹਨ।
+ਕਮਜ਼ੋਰ ਏਆਈ ਦੇ ਉਦਾਹਰਨ ਹਨ ਵਰਚੁਅਲ ਸਹਾਇਕ ਜਿਵੇਂ ਸਿਰੀ ਜਾਂ ਅਲੇਕਸਾ, ਸਟ੍ਰੀਮਿੰਗ ਸਹੂਲਤਾਂ ਵਾਲੇ ਅਲਗੋਰਿਧਮ ਅਤੇ ਖਾਸ ਗਾਹਕ ਸੇਵਾ ਲਈ ਬਣੇ ਚੈਟਬੋਟ।|ਮਜ਼ਬੂਤ ਏਆਈ ਇੱਕ ਲੰਬੇ ਸਮੇਂ ਦੀ ਲਕੜੀ ਵਿੱਚ ਲਕੜੀ ਖੋਜ ਦਾ ਲਕੜੀ ਲਕੜੀ ਦਾ ਲਕੜੀ ਹੈ ਅਤੇ ਇਹ ਪ੍ਰਣਾਲੀ ਨੂੰ ਵਿਵਿਧ ਕੰਮਾਂ ਅਤੇ ਪ੍ਰਸੰਗਾਂ ਵਿੱਚ ਤਰਕਸ਼ੀਲ, ਸਿੱਖਣ, ਸਮਝਣ ਅਤੇ ਅਨੁਕੂਲਿਤ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਨਾਲ ਵਿਕਸਤ ਕਰਨਾ ਪੈਂਦਾ ਹੈ।
+ਕਮਜ਼ੋਰ ਏਆਈ ਖਾਸ ਖੇਤਰ ਲਈ ਬਹੁਤ ਵਿਸ਼ੇਸ਼ਤ ਹੈ ਅਤੇ ਮਨੁੱਖੀ ਤਰ੍ਹਾਂ ਦਿਮਾਗੀ ਸਮਰੱਥਾਵਾਂ ਜਾਂ ਆਮ ਸਮੱਸਿਆ-ਸੁਲਝਾਉਣ ਦੀ ਖੂਬੀ ਨਹੀਂ ਰੱਖਦੀ।|ਮਜ਼ਬੂਤ ਏਆਈ ਹਾਲੇ ਤਕ ਸਿਧਾਂਤਕ ਧਾਰਣਾ ਹੈ ਅਤੇ ਕੋਈ ਵੀ ਏਆਈ ਪ੍ਰਣਾਲੀ ਇਨ੍ਹਾਂ ਪੱਧਰਾਂ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚੀ।
-ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ **[Artificial General Intelligence](https://en.wikipedia.org/wiki/Artificial_general_intelligence)** (AGI) ਨੂੰ ਵੇਖੋ।
+ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ **[ਕਿਰਤਰਿਮ ਸਾਰਵਜਨਿਕ ਬੁੱਧੀਮੱਤਾ](https://en.wikipedia.org/wiki/Artificial_general_intelligence)** (AGI) ਨੂੰ ਵੇਖੋ।
+## ਬੁੱਧੀਮੱਤਾ ਦੀ ਪਰਿਭਾਸ਼ਾ ਅਤੇ ਟਿਊਰਿੰਗ ਟੈਸਟ
-## ਬੁੱਧੀ ਦੀ ਪਰਿਭਾਸ਼ਾ ਅਤੇ ਟਿਊਰਿੰਗ ਟੈਸਟ
-
-**[Intelligence](https://en.wikipedia.org/wiki/Intelligence)** ਸ਼ਬਦ ਨਾਲ ਨਜਿੱਠਣ ਵੇਲੇ ਇੱਕ ਸਮੱਸਿਆ ਇਹ ਹੈ ਕਿ ਇਸ ਸ਼ਬਦ ਦੀ ਕੋਈ ਸਪਸ਼ਟ ਪਰਿਭਾਸ਼ਾ ਨਹੀਂ ਹੈ। ਕੋਈ ਦਲੀਲ ਕਰ ਸਕਦਾ ਹੈ ਕਿ ਬੁੱਧੀ **ਅਮੂਰ ਚਿੰਤਨ** ਜਾਂ **ਸਵੈ-ਜਾਗਰੂਕਤਾ** ਨਾਲ ਜੁੜੀ ਹੋਈ ਹੈ, ਪਰ ਅਸੀਂ ਇਸਨੂੰ ਢੰਗ ਨਾਲ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਕਰ ਸਕਦੇ।
+ਬੁੱਧੀਮੱਤਾ ਸ਼ਬਦ ਨਾਲ ਜੁੜੇ ਸਮੱਸਿਆਵਾਂ ਵਿੱਚੋਂ ਇੱਕ ਇਹ ਹੈ ਕਿ ਇਸਦਾ ਕੋਈ ਸਾਫ੍ਹ ਪਰਿਭਾਸ਼ਾ ਨਹੀਂ ਹੈ। ਕਈ ਕਹਿੰਦੇ ਹਨ ਕਿ ਬੁੱਧੀਮੱਤਾ ਕਿਛੁ **ਸਾਰਗਰਭਿਤ ਸੋਚ** ਜਾਂ **ਸਵੈ-ਜਾਗਰੂਕਤਾ** ਨਾਲ ਜੁੜੀ ਹੈ, ਪਰ ਅਸੀਂ ਇਸ ਨੂੰ ਠੀਕ ਤਰ੍ਹਾਂ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਕਰ ਸਕਦੇ।

-> [ਤਸਵੀਰ](https://unsplash.com/photos/75715CVEJhI) [ਐਂਬਰ ਕਿਪ](https://unsplash.com/@sadmax) ਦੁਆਰਾ Unsplash ਤੋਂ
+> ਤਸਵੀਰ [ਐਂਬਰ ਕਿੱਪ](https://unsplash.com/@sadmax) ਵੱਲੋਂ [ਅਨਸਪਲੈਸ਼](https://unsplash.com/photos/75715CVEJhI) ਤੋਂ
-*ਬੁੱਧੀ* ਸ਼ਬਦ ਦੀ ਅਸਪਸ਼ਟਤਾ ਨੂੰ ਵੇਖਣ ਲਈ, ਇੱਕ ਸਵਾਲ ਦਾ ਜਵਾਬ ਦੇਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ: "ਕੀ ਇੱਕ ਬਿੱਲੀ ਬੁੱਧੀਮਾਨ ਹੈ?" ਵੱਖ-ਵੱਖ ਲੋਕ ਇਸ ਸਵਾਲ ਨੂੰ ਵੱਖ-ਵੱਖ ਜਵਾਬ ਦੇਣ ਦੀ ਆਦਤ ਰੱਖਦੇ ਹਨ, ਕਿਉਂਕਿ ਇਸ ਦਾਅਵੇ ਨੂੰ ਸੱਚ ਜਾਂ ਗਲਤ ਸਾਬਤ ਕਰਨ ਲਈ ਕੋਈ ਵਿਸ਼ਵ-ਪ੍ਰਸਿੱਧ ਟੈਸਟ ਨਹੀਂ ਹੈ। ਅਤੇ ਜੇ ਤੁਸੀਂ ਸੋਚਦੇ ਹੋ ਕਿ ਹੈ - ਆਪਣੀ ਬਿੱਲੀ ਨੂੰ IQ ਟੈਸਟ ਦੇ ਰਾਹੀਂ ਚਲਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ...
+ਬੁੱਧੀਮੱਤਾ ਹਨੇਰੇ ਨੂੰ ਦੇਖਣ ਲਈ ਸਵਾਲ ਦੇ ਜਵਾਬ ਦੇਖੋ: "ਕੀ ਬਿੱਲੀ ਬੁੱਧੀਮਾਨ ਹੈ?" ਵੱਖ-ਵੱਖ ਲੋਕ ਵੱਖ-ਵੱਖ ਜਵਾਬ ਦਿੰਦੇ ਹਨ ਕਿਉਂਕਿ ਕੋਈ ਸਰਵਸੰਮਤ ਟੈਸਟ ਇਸ ਗੱਲ ਨੂੰ ਸਾਬਤ ਕਰਦਾ ਨਹੀਂ। ਜੇ ਤੁਸੀਂ ਸੋਚਦੇ ਹੋ ਕਿ ਹੈ ਤਾਂ ਆਪਣੀ ਬਿੱਲੀ ਨੂੰ IQ ਟੈਸਟ ਦਿਓ...
-✅ ਇੱਕ ਮਿੰਟ ਲਈ ਸੋਚੋ ਕਿ ਤੁਸੀਂ ਬੁੱਧੀ ਨੂੰ ਕਿਵੇਂ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹੋ। ਕੀ ਇੱਕ ਕਾਂ ਜੋ ਇੱਕ ਭੁੱਲਭੁੱਲਿਆ ਹੱਲ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਕੁਝ ਖਾਣਾ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦਾ ਹੈ ਬੁੱਧੀਮਾਨ ਹੈ? ਕੀ ਇੱਕ ਬੱਚਾ ਬੁੱਧੀਮਾਨ ਹੈ?
+✅ ਸੋਚੋ ਕਿ ਤੁਸੀਂ ਬੁੱਧੀਮੱਤਾ ਨੂੰ ਕਿਵੇਂ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹੋ। ਕੀ ਕਾਂ ਜੋ ਭੁਲੇਖਾ ਹੱਲ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਕੁਝ ਖਾਣ ਪਾ ਸਕਦਾ ਹੈ ਬੁੱਧੀਮਾਨ ਹੈ? ਕੀ ਬੱਚਾ ਬੁੱਧੀਮਾਨ ਹੈ?
---
-AGI ਬਾਰੇ ਗੱਲ ਕਰਦੇ ਹੋਏ ਸਾਨੂੰ ਕੁਝ ਤਰੀਕਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਅਸੀਂ ਕਿਵੇਂ ਦੱਸ ਸਕਦੇ ਹਾਂ ਕਿ ਅਸੀਂ ਸੱਚਮੁੱਚ ਇੱਕ ਬੁੱਧੀਮਾਨ ਸਿਸਟਮ ਬਣਾਇਆ ਹੈ। [ਐਲਨ ਟਿਊਰਿੰਗ](https://en.wikipedia.org/wiki/Alan_Turing) ਨੇ ਇੱਕ ਤਰੀਕਾ ਪ੍ਰਸਤਾਵਿਤ ਕੀਤਾ ਜਿਸਨੂੰ **[Turing Test](https://en.wikipedia.org/wiki/Turing_test)** ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਜੋ ਬੁੱਧੀ ਦੀ ਪਰਿਭਾਸ਼ਾ ਵਜੋਂ ਵੀ ਕੰਮ ਕਰਦਾ ਹੈ। ਟੈਸਟ ਇੱਕ ਦਿੱਤੇ ਸਿਸਟਮ ਦੀ ਤੁਲਨਾ ਕੁਝ ਅੰਤਹਿਨ ਬੁੱਧੀਮਾਨ - ਇੱਕ ਅਸਲੀ ਮਨੁੱਖੀ ਜੀਵਨ ਨਾਲ ਕਰਦਾ ਹੈ, ਅਤੇ ਕਿਉਂਕਿ ਕੋਈ ਵੀ ਸਵੈ-ਚਾਲੂ ਤੁਲਨਾ ਇੱਕ ਕੰਪਿਊਟਰ ਪ੍ਰੋਗਰਾਮ ਦੁਆਰਾ ਬਾਈਪਾਸ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ, ਅਸੀਂ ਇੱਕ ਮਨੁੱਖੀ ਪੁੱਛਗਿੱਛ ਕਰਨ ਵਾਲੇ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ। ਇਸ ਲਈ, ਜੇਕਰ ਇੱਕ ਮਨੁੱਖੀ ਜੀਵਨ ਇੱਕ ਅਸਲੀ ਵਿਅਕਤੀ ਅਤੇ ਇੱਕ ਕੰਪਿਊਟਰ ਸਿਸਟਮ ਵਿੱਚ ਟੈਕਸਟ-ਅਧਾਰਿਤ ਸੰਵਾਦ ਵਿੱਚ ਅੰਤਰ ਕਰਨ ਵਿੱਚ ਅਸਮਰਥ ਹੈ - ਸਿਸਟਮ ਨੂੰ ਬੁੱਧੀਮਾਨ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ।
+AGI ਬਾਰੇ ਗੱਲ ਕਰਦੇ ਸਮੇਂ ਸਾਨੂੰ ਇਹ ਦੇਖਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਅਸੀਂ ਕਿਸੇ ਸੰਚਾਲਿਤ ਬੁੱਧੀਮਾਨ ਪ੍ਰਣਾਲੀ ਨੂੰ ਬਣਾ ਲਿਆ ਹੈ। [ਅਲਨ ਟਿਊਰਿੰਗ](https://en.wikipedia.org/wiki/Alan_Turing) ਨੇ ਇੱਕ ਤਰੀਕਾ ਦਿੱਤਾ, ਜਿਸਨੂੰ **[ਟਿਊਰਿੰਗ ਟੈਸਟ](https://en.wikipedia.org/wiki/Turing_test)** ਕਹਿੰਦੇ ਹਨ। ਇਹ ਟੈਸਟ ਕਿਸੇ ਸੰਚਾਲਿਤ ਪ੍ਰਣਾਲੀ ਨੂੰ ਇੱਕ ਮਨੁੱਖੀ ਨਾਲ ਤੁਲਨਾ ਕਰਦਾ ਹੈ ਤੇ ਮਨੁੱਖੀ ਪੁੱਛਗਿੱਛ ਕਰਨ ਵਾਲਾ ਇਸ ਗੱਲ ਨੂੰ ਪਰਖਦਾ ਹੈ ਕਿ ਕੀ ਉਹ ਕੰਪਿਊਟਰ ਅਤੇ ਮਨੁੱਖ ਦੇ ਵਿਚਕਾਰ ਅੰਤਰ ਕਰ ਸਕਦਾ ਹੈ ਜਾਂ ਨਹੀਂ। ਜੇ ਨਹੀਂ, ਤਾਂ ਪ੍ਰਣਾਲੀ ਨੂੰ ਬੁੱਧੀਮਾਨ ਸਮਝਿਆ ਜਾਂਦਾ ਹੈ।
-> ਸੇਂਟ ਪੀਟਰਸਬਰਗ ਵਿੱਚ ਵਿਕਸਿਤ ਇੱਕ ਚੈਟ-ਬੋਟ [ਯੂਜੀਨ ਗੂਸਟਮੈਨ](https://en.wikipedia.org/wiki/Eugene_Goostman) ਨੇ 2014 ਵਿੱਚ ਟਿਊਰਿੰਗ ਟੈਸਟ ਪਾਸ ਕਰਨ ਦੇ ਨੇੜੇ ਆਉਣ ਲਈ ਇੱਕ ਚਤੁਰਤਾ ਭਰੀ ਸ਼ਖਸੀਅਤ ਦੀ ਚਾਲ ਚਲ ਕੇ। ਇਸਨੇ ਪਹਿਲਾਂ ਹੀ ਐਲਾਨ ਕੀਤਾ ਕਿ ਇਹ ਇੱਕ 13 ਸਾਲ ਦਾ ਯੂਕਰੇਨੀ ਲੜਕਾ ਹੈ, ਜੋ ਗਿਆਨ ਦੀ ਘਾਟ ਅਤੇ ਟੈਕਸਟ ਵਿੱਚ ਕੁਝ ਗਲਤੀਆਂ ਨੂੰ ਸਮਝਾਉਂਦਾ ਹੈ। ਬੋਟ ਨੇ 30% ਜੱਜਾਂ ਨੂੰ ਯਕੀਨ ਦਿਲਾਇਆ ਕਿ ਇਹ 5 ਮਿੰਟ ਦੇ ਸੰਵਾਦ ਤੋਂ ਬਾਅਦ ਮਨੁੱਖ ਹੈ, ਇੱਕ ਮਾਪਦੰਡ ਜੋ ਟਿਊਰਿੰਗ ਨੇ ਵਿਸ਼ਵਾਸ ਕੀਤਾ ਕਿ 2000 ਤੱਕ ਇੱਕ ਮਸ਼ੀਨ ਪਾਸ ਕਰਨ ਦੇ ਯੋਗ ਹੋਵੇਗੀ। ਹਾਲਾਂਕਿ, ਇਹ ਸਮਝਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਇਸਦਾ ਮਤਲਬ ਇਹ ਨਹੀਂ ਹੈ ਕਿ ਅਸੀਂ ਇੱਕ ਬੁੱਧੀਮਾਨ ਸਿਸਟਮ ਬਣਾਇਆ ਹੈ, ਜਾਂ ਕਿ ਇੱਕ ਕੰਪਿਊਟਰ ਸਿਸਟਮ ਨੇ ਮਨੁੱਖੀ ਪੁੱਛਗਿੱਛ ਕਰਨ ਵਾਲੇ ਨੂੰ ਬੇਵਕੂਫ਼ ਬਣਾਇਆ ਹੈ - ਸਿਸਟਮ ਨੇ ਮਨੁੱਖਾਂ ਨੂੰ ਬੇਵਕੂਫ਼ ਨਹੀਂ ਬਣਾਇਆ, ਬਲਕਿ ਬੋਟ ਬਣਾਉਣ ਵਾਲਿਆਂ ਨੇ ਕੀਤਾ!
+> ਚੈਟਬੋਟ [ਯੂਜੀਨ ਗੂਸਟਮੈਨ](https://en.wikipedia.org/wiki/Eugene_Goostman) ਜੋ ਸੇਂਟ ਪੀਟਰਜ਼ਬਰਗ ਵਿੱਚ ਵਿਕਸਿਤ ਕੀਤਾ ਗਿਆ, 2014 ਵਿੱਚ ਟਿਊਰਿੰਗ ਟੈਸਟ ਨੂੰ ਪਾਸ ਕਰਨ ਦੇ ਨੇੜੇ ਪਹੁੰਚਿਆ ਇਕ ਚਤੁਰ ਵਿਅਕਤੀਗਤ ਗੁਣ ਦਾ ਲਾਭ ਉਠਾ ਕੇ। ਇਹ ਪਹਿਲਾਂ ਹੀ ਕਹਿ ਦਿੰਦਾ ਸੀ ਕਿ ਉਹ ਇੱਕ 13 ਸਾਲਾਂ ਉਸਕਰੇਨ ਦਾ ਮੁੰਡਾ ਹੈ, ਜਿਸ ਦਾ ਮਤਲਬ ਸੀ ਕਿ ਉਸਨੂੰ ਕੁਝ ਜਾਣਕਾਰੀ ਨਹੀਂ ਹੈ ਜਾਂ ਕੁਝ ਟੈਕਸਟ ਵਿੱਚ ਵਿਤਕਰੇ ਹੋ ਸਕਦੇ ਹਨ। ਇਹ ਬੋਟ 5 ਮਿੰਟ ਦੀ ਗੱਲਬਾਤ ਦੌਰਾਨ 30% ਜੱਜਾਂ ਨੂੰ ਮਨੁੱਖ ਸਮਝਣ ਵਿੱਚ ਕਾਮਯਾਬ ਹੋਇਆ, ਜਿਸਦੀਆਂ ਟਿਊਰਿੰਗ ਦੀ ਭਵਿੱਖਵਾਣੀ ਦੇ ਅਨੁਸਾਰ ਸਾਲ 2000 ਤੱਕ ਮਸ਼ੀਨ ਪਾਰ ਕਰ ਸੱਕਦੀ। ਹਾਲਾਂਕਿ, ਇਹ ਨਹੀਂ ਦਰਸਾਉਂਦਾ ਕਿ ਅਸੀਂ ਸੱਚਮੁੱਚ ਇੱਕ ਬੁੱਧੀਮਾਨ ਪ੍ਰਣਾਲੀ ਬਣਾ ਲਈ ਹੈ ਜਾਂ ਇਸ ਮਸ਼ੀਨ ਨੇ ਮਨੁੱਖੀ ਪੁੱਛਤਾਛ ਕਰਨ ਵਾਲੇ ਨੂੰ ਧੋਖਾ ਦਿੱਤਾ - ਸੱਚ ਇਹ ਹੈ ਕਿ ਮਨੁੱਖਾਂ ਨੂੰ ਧੋਖਾ ਬੋਟ ਦੇ ਸਿਰਜਣਹਾਰਾਂ ਨੇ ਦਿੱਤਾ!
-✅ ਕੀ ਤੁਸੀਂ ਕਦੇ ਕਿਸੇ ਚੈਟ ਬੋਟ ਦੁਆਰਾ ਬੇਵਕੂਫ਼ ਬਣਾਏ ਗਏ ਹੋ ਕਿ ਤੁਸੀਂ ਇੱਕ ਮਨੁੱਖ ਨਾਲ ਗੱਲ ਕਰ ਰਹੇ ਹੋ? ਇਸਨੇ ਤੁਹਾਨੂੰ ਕਿਵੇਂ ਯਕੀਨ ਦਿਲਾਇਆ?
+✅ ਕੀ ਤੁਸੀਂ ਕਦੇ ਕਿਸੇ ਚੈਟ ਬੋਟ ਦੁਆਰਾ ਧੋਖੇਬਾਜ਼ੀ ਨਾਲ ਸੋਚਿਆ ਕਿ ਤੁਸੀਂ ਕਿਸੇ ਮਨੁੱਖ ਨਾਲ ਗੱਲ ਕਰ ਰਹੇ ਹੋ? ਇਸਨੇ ਤੁਹਾਨੂੰ ਕਿਵੇਂ ਮਨਾਇਆ?
-## AI ਦੇ ਵੱਖ-ਵੱਖ ਪਹੁੰਚ
+## ਏਆਈ ਦੇ ਵੱਖ-ਵੱਖ ਤਰੀਕੇ
-ਜੇਕਰ ਅਸੀਂ ਚਾਹੁੰਦੇ ਹਾਂ ਕਿ ਇੱਕ ਕੰਪਿਊਟਰ ਮਨੁੱਖ ਵਾਂਗ ਵਿਹਾਰ ਕਰੇ, ਤਾਂ ਸਾਨੂੰ ਕਿਸੇ ਤਰੀਕੇ ਨਾਲ ਕੰਪਿਊਟਰ ਦੇ ਅੰਦਰ ਆਪਣੇ ਸੋਚਣ ਦੇ ਤਰੀਕੇ ਨੂੰ ਮਾਡਲ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਇਸਦੇ ਨਤੀਜੇ ਵਜੋਂ, ਸਾਨੂੰ ਇਹ ਸਮਝਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਕਿ ਇੱਕ ਮਨੁੱਖੀ ਜੀਵਨ ਨੂੰ ਬੁੱਧੀਮਾਨ ਬਣਾਉਣ ਵਾਲਾ ਕੀ ਹੈ।
+ਜੇ ਅਸੀਂ ਚਾਹੁੰਦੇ ਹਾਂ ਕਿ ਕੰਪਿਊਟਰ ਮਨੁੱਖ ਵਾਂਗ ਵਰਤੋਂ ਕਰੇ, ਤਾਂ ਸਾਨੂੰ ਆਪਣੀ ਸੋਚ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਕੰਪਿਊਟਰ ਵਿੱਚ ਮਾਡਲ ਕਰਨਾ ਪਵੇਗਾ। ਇਸ ਲਈ ਸਾਨੂੰ ਸਮਝਣਾ ਪਵੇਗਾ ਕਿ ਮਨੁੱਖ ਨੂੰ ਬੁੱਧੀਮਾਨ ਕਿਵੇਂ ਬਣਾਉਂਦਾ ਹੈ।
-> ਮਸ਼ੀਨ ਵਿੱਚ ਬੁੱਧੀ ਪ੍ਰੋਗਰਾਮ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣ ਲਈ, ਸਾਨੂੰ ਇਹ ਸਮਝਣ ਦੀ ਲੋੜ ਹੈ ਕਿ ਸਾਡੇ ਆਪਣੇ ਫੈਸਲੇ ਕਰਨ ਦੇ ਤਰੀਕੇ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ। ਜੇਕਰ ਤੁਸੀਂ ਕੁਝ ਸਵੈ-ਵਿਚਾਰ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਅਹਿਸਾਸ ਕਰੋਗੇ ਕਿ ਕੁਝ ਪ੍ਰਕਿਰਿਆਵਾਂ ਅਚੇਤਨ ਤੌਰ 'ਤੇ ਹੁੰਦੀਆਂ ਹਨ - ਜਿਵੇਂ ਕਿ ਅਸੀਂ ਬਿੱਲੀ ਨੂੰ ਕੁੱਤੇ ਤੋਂ ਬਿਨਾਂ ਸੋਚੇ ਅੰਤਰ ਕਰ ਸਕਦੇ ਹਾਂ - ਜਦੋਂ ਕਿ ਕੁਝ ਹੋਰ ਤਰਕ ਸ਼ਾਮਲ ਕਰਦੇ ਹਨ।
+> ਮਸ਼ੀਨ ਵਿੱਚ ਬੁੱਧੀਮੱਤਾ ਪ੍ਰੋਗ੍ਰਾਮ ਕਰਨ ਲਈ, ਸਾਨੂੰ ਪਤਾ ਲੱਗਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਆਪਣੀਆਂ ਫੈਸਲੇ ਕਰਨ ਵਾਲੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀਆਂ ਹਨ। ਜੇ ਤੁਸੀਂ ਕੁਝ ਅੰਦਰੂਨੀ ਸੋਚ ਕਰੋਗੇ ਤਾਂ ਇਹ ਪਤਾ ਲੱਗੇਗਾ ਕਿ ਕੁਝ ਪ੍ਰਕਿਰਿਆਵਾਂ ਅਵਗਿਆਨਕ ਹੁੰਦੀਆਂ ਹਨ – ਉਦਾਹਰਨ ਵੱਜੋਂ, ਅਸੀ ਬਿਨਾ ਸੋਚੇ ਬਿੱਲੀ ਅਤੇ ਕੁੱਤੇ ਵਿੱਚ ਫ਼ਰਕ ਕਰ ਸਕਦੇ ਹਾਂ - ਜਦਕਿ ਹੋਰ ਇੱਕ ਤਰਕੇ ਵਿੱਚ ਤਰਕ ਜ਼ਰੂਰੀ ਹੁੰਦਾ ਹੈ।
-ਇਸ ਸਮੱਸਿਆ ਲਈ ਦੋ ਸੰਭਾਵਿਤ ਪਹੁੰਚ ਹਨ:
+ਇਸ ਸਮੱਸਿਆ ਲਈ ਦੋ ਸੰਭਾਵਿਤ ਤਰੀਕੇ ਹਨ:
-ਟਾਪ-ਡਾਊਨ ਪਹੁੰਚ (ਸੰਕੇਤਕ ਤਰਕ) | ਬਾਟਮ-ਅੱਪ ਪਹੁੰਚ (ਨਿਊਰਲ ਨੈੱਟਵਰਕ)
+ਸਿਖਰ-ਥੱਲੇ ਤਰੀਕਾ (ਪ੍ਰਤੀਕਾਤਮਕ ਤਰਕ) | ਥੱਲੇ-ਉਪਰ ਤਰੀਕਾ (ਨਿਊਰਲ ਨੈੱਟਵਰਕ)
---------------------------------------|-------------------------------------
-ਟਾਪ-ਡਾਊਨ ਪਹੁੰਚ ਇੱਕ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਇੱਕ ਵਿਅਕਤੀ ਦੇ ਤਰਕ ਕਰਨ ਦੇ ਤਰੀਕੇ ਨੂੰ ਮਾਡਲ ਕਰਦੀ ਹੈ। ਇਸ ਵਿੱਚ ਇੱਕ ਮਨੁੱਖੀ ਜੀਵਨ ਤੋਂ **ਗਿਆਨ** ਕੱਢਣਾ, ਅਤੇ ਇਸਨੂੰ ਕੰਪਿਊਟਰ-ਪੜ੍ਹਨਯੋਗ ਰੂਪ ਵਿੱਚ ਦਰਸਾਉਣਾ ਸ਼ਾਮਲ ਹੈ। ਸਾਨੂੰ ਕੰਪਿਊਟਰ ਦੇ ਅੰਦਰ **ਤਰਕ** ਨੂੰ ਮਾਡਲ ਕਰਨ ਦਾ ਤਰੀਕਾ ਵੀ ਵਿਕਸਿਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। | ਬਾਟਮ-ਅੱਪ ਪਹੁੰਚ ਇੱਕ ਮਨੁੱਖੀ ਦਿਮਾਗ ਦੀ ਬਣਤਰ ਨੂੰ ਮਾਡਲ ਕਰਦੀ ਹੈ, ਜੋ ਸਧਾਰਨ ਇਕਾਈਆਂ ਦੀ ਇੱਕ ਵੱਡੀ ਗਿਣਤੀ **ਨਿਊਰੋਨ** ਤੋਂ ਬਣੀ ਹੁੰਦੀ ਹੈ। ਹਰ ਨਿਊਰੋਨ ਆਪਣੇ ਇਨਪੁੱਟਸ ਦਾ ਵਜ਼ਨੀ ਔਸਤ ਵਾਂਗ ਕੰਮ ਕਰਦਾ ਹੈ, ਅਤੇ ਅਸੀਂ **ਤਰਬੀਤੀ ਡਾਟਾ** ਪ੍ਰਦਾਨ ਕਰਕੇ ਨਿਊਰੋਨ ਦੇ ਇੱਕ ਨੈੱਟਵਰਕ ਨੂੰ ਉਪਯੋਗੀ ਸਮੱਸਿਆਵਾਂ ਹੱਲ ਕਰਨ ਲਈ ਪ੍ਰਸ਼ਿਕਸ਼ਿਤ ਕਰ ਸਕਦੇ ਹਾਂ।
+ਸਿਖਰ-ਥੱਲੇ ਤਰੀਕਾ ਇੱਕ ਵਿਅਕਤੀ ਦੇ ਤਰਕ ਕਰਨ ਦੇ ਤਰੀਕੇ ਨੂੰ ਮਾਡਲ ਕਰਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਮਨੁੱਖ ਤੋਂ **ਜਾਣਕਾਰੀ** ਇਕੱਠੀ ਕਰਕੇ ਕੰਪਿਊਟਰ-ਪੜ੍ਹਨਯੋਗ ਰੂਪ ਵਿੱਚ ਦਰਸਾਉਂਦਾ ਹੈ। ਸਾਨੂੰ ਕੰਪਿਊਟਰ ਵਿੱਚ **ਤਰਕਬੱਧਤਾ** ਮਾਡਲ ਕਰਨ ਦਾ ਤਰੀਕਾ ਵੀ ਵਿਕਸਿਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।|ਥੱਲੇ-ਉਪਰ ਤਰੀਕਾ ਮਨੁੱਖੀ ਦਿਮਾਗ ਦਾ ਢਾਂਚਾ ਮਾਡਲ ਕਰਦਾ ਹੈ, ਜੋ ਸਾਦੇ ਤੱਤਾਂ **ਨਿਊਰੋਨ** ਦਾ ਇਕ ਵੱਡਾ ਜਥਾ ਹੁੰਦੇ ਹਨ। ਹਰ ਨਿਊਰੋਨ ਆਪਣੇ ਇੰਪੁੱਟ ਦਾ ਵਰ ਤੁਲਨਾਤਮਕ ਸਰਾਸਰੀ ਕਾਰਜ ਕਰਦਾ ਹੈ, ਅਤੇ ਅਸੀਂ ਨਿਊਰੋਨ ਦਾ ਜਾਲ ਤਿਆਰ ਕਰਕੇ **ਸਿਖਲਾਈ ਡੇਟਾ** ਦੇ ਕੇ ਸਮੱਸਿਆਵਾਂ ਹੱਲ ਕਰਨਾ ਸਿਖਾ ਸਕਦੇ ਹਾਂ।
-ਬੁੱਧੀ ਲਈ ਕੁਝ ਹੋਰ ਸੰਭਾਵਿਤ ਪਹੁੰਚਾਂ ਵੀ ਹਨ:
+ਹੋਰ ਵੀ ਕੁਝ ਸੰਭਾਵਿਤ ਤਰੀਕੇ ਹਨ:
-* ਇੱਕ **ਉਭਰਤੀ**, **ਸਿਨਰਜੈਟਿਕ** ਜਾਂ **ਮਲਟੀ-ਏਜੰਟ ਪਹੁੰਚ** ਇਸ ਤੱਥ 'ਤੇ ਅਧਾਰਿਤ ਹੈ ਕਿ ਬਹੁਤ ਸਾਰੇ ਸਧਾਰਨ ਏਜੰਟਾਂ ਦੇ ਪਰਸਪਰ ਸੰਚਾਰ ਦੁਆਰਾ ਜਟਿਲ ਬੁੱਧੀਮਾਨ ਵਿਹਾਰ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। [ਇਵੋਲੂਸ਼ਨਰੀ ਸਾਇਬਰਨੈਟਿਕਸ](https://en.wikipedia.org/wiki/Global_brain#Evolutionary_cybernetics) ਦੇ ਅਨੁਸਾਰ, ਬੁੱਧੀ ਹੋਰ ਸਧਾਰਨ, ਪ੍ਰਤੀਕ੍ਰਿਆਸ਼ੀਲ ਵਿਹਾਰ ਤੋਂ *ਮੈਟਾਸਿਸਟਮ ਟ੍ਰਾਂਜ਼ੀਸ਼ਨ* ਦੀ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ *ਉਭਰ* ਸਕਦੀ ਹੈ।
+* **ਐਮਰਜੈਂਟ**, **ਸਿਨੈਰਜੈਟਿਕ** ਜਾਂ **ਮਲਟੀ-ਏਜੰਟ ਤਰੀਕੇ** ਇਸ ਸੱਚਾਈ 'ਤੇ ਆਧਾਰਿਤ ਹਨ ਕਿ ਬਹੁਤ ਸਾਰੇ ਸਾਦਾ ਏਜੰਟਾਂ ਦੇ ਇੰਟਰੈਕਸ਼ਨ ਨਾਲ ਜਟਿਲ ਬੁੱਧੀਮਾਨ ਵਰਤੋਂ ਮਿਲ ਸਕਦੀ ਹੈ। [ਕਰਮਿਕ ਸਾਈਬਰਨੈਟਿਕਸ](https://en.wikipedia.org/wiki/Global_brain#Evolutionary_cybernetics) ਦੇ ਅਨੁਸਾਰ, ਬੁੱਧੀਮੱਤਾ ਸਧਾਰਣ, ਪ੍ਰਤੀਕਿਰਿਆਕਾਰੀ ਵਰਤੋਂ ਤੋਂ *ਉਤਪੰਨ* ਹੋ ਸਕਦੀ ਹੈ *ਮੈਟਾਸਿਸਟਮ ਟ੍ਰਾਂਜ਼ੀਸ਼ਨ* ਦੀ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ।
-* ਇੱਕ **ਇਵੋਲੂਸ਼ਨਰੀ ਪਹੁੰਚ**, ਜਾਂ **ਜਨੈਟਿਕ ਐਲਗੋਰਿਦਮ** ਇੱਕ ਵਿਕਾਸ ਦੇ ਸਿਧਾਂਤਾਂ 'ਤੇ ਅਧਾਰਿਤ ਇੱਕ ਅਪਟਿਮਾਈਜ਼ੇਸ਼ਨ ਪ੍ਰਕਿਰਿਆ ਹੈ।
+* **ਵਿਕਾਸੀ ਤਰੀਕਾ**, ਜਾਂ **ਜੀਨੇਟਿਕ ਐਲਗੋਰਿਦਮ**, ਵਿਕਾਸ ਦੇ ਸਿਧਾਂਤਾਂ 'ਤੇ ਆਧਾਰਤ ਇੱਕ ਸੁਧਾਰ ਪ੍ਰਕਿਰਿਆ ਹੈ।
-ਅਸੀਂ ਇਹ ਪਹੁੰਚਾਂ ਕੋਰਸ ਵਿੱਚ ਬਾਅਦ ਵਿੱਚ ਵਿਚਾਰਾਂਗੇ, ਪਰ ਇਸ ਸਮੇਂ ਅਸੀਂ ਦੋ ਮੁੱਖ ਦਿਸ਼ਾਵਾਂ 'ਤੇ ਧਿਆਨ ਦੇਵਾਂਗੇ: ਟਾਪ-ਡਾਊਨ ਅਤੇ ਬਾਟਮ-ਅੱਪ।
+ਅਸੀਂ ਇਨ੍ਹਾਂ ਤਰੀਕਿਆਂ ਨੂੰ ਕੋਰਸ ਵਿੱਚ ਬਾਅਦ ਵਿੱਚ ਛੇੜਾਂਗੇ, ਪਰ ਹੁਣ ਲਈ ਸਾਡੇ ਧਿਆਨ ਦੋ ਮੁੱਖ ਦਿਸ਼ਾਵਾਂ ਤੇ ਹੈ: ਸਿਖਰ-ਥੱਲੇ ਅਤੇ ਥੱਲੇ-ਉਪਰ।
-### ਟਾਪ-ਡਾਊਨ ਪਹੁੰਚ
+### ਸਿਖਰ-ਥੱਲੇ ਤਰੀਕਾ
-**ਟਾਪ-ਡਾਊਨ ਪਹੁੰਚ** ਵਿੱਚ, ਅਸੀਂ ਆਪਣੇ ਤਰਕ ਨੂੰ ਮਾਡਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ। ਕਿਉਂਕਿ ਜਦੋਂ ਅਸੀਂ ਤਰਕ ਕਰਦੇ ਹਾਂ ਤਾਂ ਅਸੀਂ ਆਪਣੇ ਵਿਚਾਰਾਂ ਦੀ ਪਾਲਣਾ ਕਰ ਸਕਦੇ ਹਾਂ, ਅਸੀਂ ਇਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਰਸਮੀ ਬਣਾਉਣ ਅਤੇ ਇਸਨੂੰ ਕੰਪਿਊਟਰ ਦੇ ਅੰਦਰ ਪ੍ਰੋਗਰਾਮ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਸਕਦੇ ਹਾਂ। ਇਸਨੂੰ **ਸੰਕੇਤਕ ਤਰਕ** ਕਿਹਾ ਜਾਂਦਾ ਹੈ।
+ਇੱਕ **ਸਿਖਰ-ਥੱਲੇ ਤਰੀਕੇ** ਵਿੱਚ, ਅਸੀਂ ਆਪਣੀ ਤਰਕਬੱਧਤਾ ਨੂੰ ਮਾਡਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ। ਕਿਉਂਕਿ ਅਸੀਂ ਆਪਣੀਆਂ ਸੋਚਾਂ ਦੀ ਪਾਲਣਾ ਕਰ ਸਕਦੇ ਹਾਂ, ਅਸੀਂ ਇਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਰੂਪ ਵਿੱਚ ਲਿਆਉਣ ਅਤੇ ਕੰਪਿਊਟਰ ਵਿੱਚ ਪ੍ਰੋਗ੍ਰਾਮ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ। ਇਸ ਨੂੰ **ਪ੍ਰਤੀਕਾਤਮਕ ਤਰਕ** ਕਹਿੰਦੇ ਹਨ।
-ਲੋਕਾਂ ਦੇ ਸਿਰ ਵਿੱਚ ਕੁਝ ਨਿਯਮ ਹੁੰਦੇ ਹਨ ਜੋ ਉਨ੍ਹਾਂ ਦੇ ਫੈਸਲੇ ਕਰਨ ਦੇ ਤਰੀਕਿਆਂ ਨੂੰ ਮਾਰਗਦਰਸ਼ਨ ਕਰਦੇ ਹਨ। ਉਦਾਹਰਨ ਵਜੋਂ, ਜਦੋਂ ਇੱਕ ਡਾਕਟਰ ਮਰੀਜ਼ ਦੀ ਰੋਗ-ਨਿਰਧਾਰਨ ਕਰ ਰਿਹਾ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਉਹ ਅਹਿਸਾਸ ਕਰ ਸਕਦਾ ਹੈ ਕਿ ਵਿਅਕਤੀ ਨੂੰ ਬੁਖਾਰ ਹੈ, ਅਤੇ ਇਸ ਲਈ ਸਰੀਰ ਦੇ ਅੰਦਰ ਕੁਝ ਸੂਜਨ ਹੋ ਸਕਦੀ ਹੈ। ਨਿਯਮਾਂ ਦੇ ਇੱਕ ਵੱਡੇ ਸੈੱਟ ਨੂੰ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਸਮੱਸਿਆ 'ਤੇ ਲਾਗੂ ਕਰਕੇ ਡਾਕਟਰ ਅੰਤਿਮ ਰੋਗ-ਨਿਰਧਾਰਨ ਦੇ ਨਾਲ ਆ ਸਕਦਾ ਹੈ।
+ਲੋਕਾਂ ਦੇ ਮਨ ਵਿੱਚ ਕੁਝ ਅਜੇਹੇ ਨਿਯਮ ਹੁੰਦੇ ਹਨ ਜੋ ਉਹਨਾਂ ਦੇ ਫੈਸਲੇ ਕਰਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਮਾਰਗਦਰਸ਼ਨ ਕਰਦੇ ਹਨ। ਉਦਾਹਰਨ ਵੱਜੋਂ, ਜਦ ਇੱਕ ਡਾਕਟਰ ਕਿਸੇ ਮਰੀਜ਼ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ, ਉਹ ਪਤਾ ਲਗਾ ਸਕਦਾ ਹੈ ਕਿ ਮਰੀਜ਼ ਨੂੰ ਬੁਖਾਰ ਹੈ, ਇਸ ਲਈ ਸਰੀਰ ਵਿੱਚ ਸੂਜੀ ਹੋ ਸਕਦੀ ਹੈ। ਕਈ ਨਿਯਮਾਂ ਨੂੰ ਲਾਗੂ ਕਰਕੇ ਡਾਕਟਰ ਅੰਤਿਮ ਨਿਰਣਾ ਕਰ ਸਕਦਾ ਹੈ।
-ਇਹ ਪਹੁੰਚ **ਗਿਆਨ ਪ੍ਰਸਤੁਤੀ** ਅਤੇ **ਤਰਕ** 'ਤੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਨਿਰਭਰ ਕਰਦੀ ਹੈ। ਇੱਕ ਮਨੁੱਖੀ ਵਿਸ਼ੇਸ਼ਜਨ ਤੋਂ ਗਿਆਨ ਕੱਢਣਾ ਸਭ ਤੋਂ ਮੁਸ਼ਕਲ ਹਿੱਸਾ ਹੋ ਸਕਦਾ ਹੈ, ਕਿਉਂਕਿ ਬਹੁਤ ਸਾਰੇ ਮਾਮਲਿਆਂ ਵਿੱਚ ਡਾਕਟਰ ਨੂੰ ਪਤਾ ਨਹੀਂ ਹੁੰਦਾ ਕਿ ਉਹ ਕਿਸੇ ਵਿਸ਼ੇਸ਼ ਰੋਗ-ਨਿਰਧਾਰਨ ਦੇ ਨਾਲ ਕਿਉਂ ਆ ਰਿਹਾ ਹੈ। ਕਈ ਵਾਰ ਹੱਲ ਸਿਰਫ਼ ਉਸ ਦੇ ਸਿਰ ਵਿੱਚ ਆ ਜਾਂ
-> ਚਿੱਤਰ ਦਿਮਿਤਰੀ ਸੋਸ਼ਨਿਕੋਵ ਦੁਆਰਾ, [ਫੋਟੋ](https://unsplash.com/photos/r8LmVbUKgns) ਮਰੀਨਾ ਅਬਰੋਸਿਮੋਵਾ ਦੁਆਰਾ [Marina Abrosimova](https://unsplash.com/@abrosimova_marina_foto), Unsplash
+ਇਹ ਤਰੀਕਾ ਬਹੁਤ ਜ਼ਿਆਦਾ **ਜਾਣਕਾਰੀ ਦਰਸਾਅ** ਅਤੇ **ਤਰਕ** 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਮਨੁੱਖੀ ਮਾਹਿਰ ਤੋਂ ਜਾਣਕਾਰੀ ਕੱਢਣਾ ਸਬ ਤੋਂ ਮੁਸ਼ਕਲ ਹਿੱਸਾ ਹੈ, ਕਿਉਂਕਿ ਕਈ ਵਾਰ ਡਾਕਟਰ ਇਸ ਗੱਲ ਨੂੰ ਨਹੀਂ ਜਾਣਦਾ ਕਿ ਉਹ ਕਿਸ ਤਰੀਕੇ ਨਾਲ ਨਿਰਣਾ ਤੱਕ ਪਹੁੰਚਦਾ ਹੈ। ਕਈ ਵਾਰ ਹੱਲ ਬਿਨਾ ਜ਼ਾਹਰ ਸੋਚੇ ਮਨ ਵਿੱਚ ਆ ਜਾਂਦਾ ਹੈ। ਕੁਝ ਕੰਮ ਜਿਵੇਂ ਕਿਸੇ ਵਿਅਕਤੀ ਦੀ ਤਸਵੀਰ ਤੋਂ ਉਮਰ ਪਤਾ ਕਰਨ ਜਿਵੇਂ ਕੰਮ ਜਾਣਕਾਰੀ ਸੰਚਾਲਨ ਨਾਲ ਸੰਪੂਰਨ ਤੌਰ 'ਤੇ ਹੱਲ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕਦੇ।
-## ਹਾਲੀਆ AI ਖੋਜ
+### ਥੱਲੇ-ਉਪਰ ਤਰੀਕਾ
-ਨਿਊਰਲ ਨੈਟਵਰਕ ਖੋਜ ਵਿੱਚ ਹਾਲੀਆ ਵੱਡੀ ਵਾਧਾ 2010 ਦੇ ਆਸਪਾਸ ਸ਼ੁਰੂ ਹੋਇਆ, ਜਦੋਂ ਵੱਡੇ ਜਨਤਕ ਡੇਟਾਸੈਟ ਉਪਲਬਧ ਹੋਣ ਲੱਗੇ। ਚਿੱਤਰਾਂ ਦਾ ਇੱਕ ਵੱਡਾ ਸੰਗ੍ਰਹਿ [ImageNet](https://en.wikipedia.org/wiki/ImageNet), ਜਿਸ ਵਿੱਚ ਲਗਭਗ 14 ਮਿਲੀਅਨ ਐਨੋਟੇਟ ਚਿੱਤਰ ਹਨ, ਨੇ [ImageNet Large Scale Visual Recognition Challenge](https://image-net.org/challenges/LSVRC/) ਨੂੰ ਜਨਮ ਦਿੱਤਾ।
+ਵੱਖਰੇ ਤਰੀਕੇ ਨਾਲ, ਅਸੀਂ ਆਪਣੇ ਦਿਮਾਗ ਦੇ ਸਭ ਤੋਂ ਸਧਾਰਣ ਤੱਤ ਨੂੰ ਮਾਡਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਸਕਦੇ ਹਾਂ - ਨਿਊਰੋਨ। ਅਸੀਂ ਕੰਪਿਊਟਰ ਵਿੱਚ ਇੱਕ ਕਿਰਤ੍ਰਿਮ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਬਣਾ ਸਕਦੇ ਹਾਂ ਅਤੇ ਇਸਨੂੰ ਉਦਾਹਰਨਾਂ ਦੇ ਕੇ ਸਮੱਸਿਆਵਾਂ ਹੱਲ ਕਰਨਾ ਸਿਖਾ ਸਕਦੇ ਹਾਂ। ਇਹ ਪ੍ਰਕਿਰਿਆ ਉਸ ਤਰੀਕੇ ਨਾਲ ਮਿਲਦੀ ਹੈ ਜਿਸ ਤਰ੍ਹਾਂ ਨਵਜੰਮੇ ਬੱਚੇ ਆਪਣੇ ਆਸ ਪਾਸ ਦੇ ਮਾਹੌਲ ਬਾਰੇ ਜਾਣਨ ਲਈ ਅਵਹਾਵਾਂ ਕਰਦੇ ਹਨ।
+
+✅ ਤੱਕੜੀ ਖੋਜ ਕਰੋ ਕਿ ਬੱਚੇ ਕਿਵੇਂ ਸਿੱਖਦੇ ਹਨ। ਬੱਚੇ ਦੇ ਦਿਮਾਗ ਦੇ ਮੁੱਖ ਤੱਤ ਕੀ ਹਨ?
+
+> | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਬਾਰੇ ਕੀ? | |
+> |--------------|-----------|
+> | ਕਿਰਤ੍ਰਿਮ ਬੁੱਧੀਮੱਤਾ ਦਾ ਉਹ ਹਿੱਸਾ ਜੋ ਡੇਟਾ ਦੇ ਆਧਾਰ 'ਤੇ ਸਮੱਸਿਆ ਹੱਲ ਕਰਨ ਲਈ ਕੰਪਿਊਟਰ ਸਿੱਖਣ 'ਤੇ ਆਧਾਰਤ ਹੈ, ਉਸਨੂੰ **ਮਸ਼ੀਨ ਲਰਨਿੰਗ** ਕਹਿੰਦੇ ਹਨ। ਅਸੀਂ ਇਸ ਕੋਰਸ ਵਿੱਚ ਕਲਾਸਿਕ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਕਵਰ ਨਹੀਂ ਕਰਾਂਗੇ – ਤੁਹਾਨੂੰ ਵੱਖਰੇ [ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਬਿਗਨਰਜ਼](http://aka.ms/ml-beginners) ਕੋਰਸ ਵੱਲ ਰੁਝਾਨ ਕਰਦੇ ਹਾਂ।|  |
+
+## ਏਆਈ ਦਾ ਸੰਖੇਪ ਇਤਿਹਾਸ
+
+ਕਿਰਤਰਿਮ ਬੁੱਧੀਮੱਤਾ ਨੂੰ 20ਵੀਂ ਸਦੀ ਦੇ ਮੱਧ ਵਿੱਚ ਖੇਤਰ ਵਜੋਂ ਸ਼ੁਰੂ ਕੀਤਾ ਗਿਆ। ਸ਼ੁਰੂ ਵਿੱਚ ਪ੍ਰਤੀਕਾਤਮਕ ਤਰਕ ਪ੍ਰਮੁੱਖ ਤਰੀਕਾ ਸੀ, ਜਿਸ ਨਾਲ ਕੁਝ ਮਹੱਤਵਪੂਰਨ ਸਫਲਤਾਵਾਂ ਜਿਵੇਂ ਮਾਹਿਰ ਪ੍ਰਣਾਲੀਆਂ ਬਣੀਆਂ - ਕੰਪਿਊਟਰ ਪ੍ਰੋਗਰਾਮ ਜੋ ਕਈ ਖੇਤਰਾਂ ਵਿੱਚ ਮਾਹਿਰ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਸਨ। ਪਰ ਜਲਦ ਹੀ ਇਹ ਪਤਾ ਲੱਗਾ ਕਿ ਇਹ ਤਰੀਕਾ ਸਹੀ ਤਰ੍ਹਾਂ ਵੱਡੇ ਪੱਧਰ ਉੱਤੇ ਨਹੀਂ ਚੱਲਦਾ। ਮਾਹਿਰ ਤੋਂ ਜਾਣਕਾਰੀ ਕੱਢਣਾ, ਕੰਪਿਊਟਰ ਵਿੱਚ ਦਰਸਾਉਣਾ ਅਤੇ ਇਹ ਜਾਣਕਾਰੀ ਨਿਰੰਤਰ ਅਪਡੇਟ ਰੱਖਣਾ ਬਹੁਤ ਮੁਸ਼ਕਲ ਅਤੇ ਮਹਿੰਗਾ ਸੀ। ਇਸ ਕਾਰਨ 1970 ਦੇ ਦਹਾਕੇ ਵਿੱਚ ਆਉਣ ਵਾਲਾ [ਏਆਈ ਸਰਦੀ](https://en.wikipedia.org/wiki/AI_winter) ਆਇਆ।
+
+
+
+> ਤਸਵੀਰ [ਦਿਮਿਤਰੀ ਸੋਸ਼ਨਿਕੋਵ](http://soshnikov.com) ਵੱਲੋਂ
+
+ਸਮਾਂ ਬੀਤਣ ਦੇ ਨਾਲ ਕਿਰਤ੍ਰਿਮ ਬੁੱਧੀਮੱਤਾ ਲਈ ਕੰਪਿਊਟਿੰਗ ਸਾਧਨ ਸਸਤੇ ਹੋਏ ਅਤੇ ਵੱਧ ਡੇਟਾ ਉਪਲੱਬਧ ਹੋਇਆ, ਜਿਸ ਕਰਕੇ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਤਰੀਕਿਆਂ ਨੇ ਮਨੁੱਖਾਂ ਨਾਲ ਮੁਕਾਬਲੇ ਵਿੱਚ ਕਈ ਖੇਤਰਾਂ ਵਿੱਚ ਜਰੂਰੀ ਕਾਰਗੁਜ਼ਾਰੀ ਦਿਖਾਈ, ਜਿਵੇਂ ਕਿ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਜਾਂ ਬੋਲਚਾਲ ਸਮਝਣਾ। ਪਿਛਲੇ ਦਹਾਕੇ ਵਿੱਚ, ਟਰਮ “ਕਿਰਤ੍ਰਿਮ ਬੁੱਧੀਮੱਤਾ” ਜ਼ਿਆਦਾਤਰ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਦਾ ਪਰਯਾਯ ਬਣ ਗਿਆ ਹੈ, ਕਿਉਂਕਿ ਅਕਸਰ ਸਫਲਤਾਵਾਂ ਉਸ ਉੱਤੇ ਆਧਾਰਤ ਹਨ।
+
+ਅਸੀਂ ਵੇਖ ਸਕਦੇ ਹਾਂ ਕਿ ਕਿਵੇਂ ਤਰੀਕੇ ਬਦਲੇ, ਉਦਾਹਰਨ ਵਜੋਂ ਸ਼ਤਰੰਜ ਖੇਡਣ ਵਾਲਾ ਕੰਪਿਊਟਰ ਪ੍ਰੋਗਰਾਮ ਬਣਾਉਣ ਵਿੱਚ:
+
+* ਸ਼ਤਰੰਜ ਦੇ ਸ਼ੁਰੂਆਤੀ ਪ੍ਰੋਗਰਾਮ ਖੋਜ 'ਤੇ ਆਧਾਰਤ ਸਨ – ਪ੍ਰੋਗਰਾਮ ਵਿਰੋਧੀ ਦੇ ਸੰਭਾਵਿਤ ਚਾਲਾਂ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਂਦਾ ਅਤੇ ਕਈ ਅਗਲੀ ਚਾਲਾਂ ਵਿੱਚ ਸਭ ਤੋਂ ਵਧੀਆ ਚਾਲ ਚੁਣਦਾ। ਇਸ ਤਰੀਕੇ ਨਾਲ [ਅਲਫਾ-ਬੀਟਾ ਪ੍ਰੂਨਿੰਗ](https://en.wikipedia.org/wiki/Alpha%E2%80%93beta_pruning) ਖੋਜ ਐਲਗੋਰਿਦਮ ਵਿਕਸਤ ਹੋਇਆ।
+* ਖੋਜ ਰਣਨੀਤੀਆਂ ਖੇਡ ਦੇ ਅੰਤ ਵਿੱਚ ਚੰਗੇ funcionamento ਕਰਦੀਆਂ ਹਨ ਜਿੱਥੇ ਸੰਭਾਵਿਤ ਚਾਲਾਂ ਦੀ ਗਿਣਤੀ ਘੱਟ ਹੁੰਦੀ ਹੈ। ਪਰ ਖੇਡ ਦੀ ਸ਼ੁਰੂਆਤ ਵਿੱਚ ਖੋਜ ਖੇਤਰ ਵੱਡਾ ਹੁੰਦਾ ਹੈ ਅਤੇ ਪ੍ਰੋਗਰਾਮ ਖੇਡਾਂ ਦੇ ਮੌਜੂਦਾ ਮੈਚਾਂ ਤੋਂ ਸਿੱਖ ਕੇ ਇਸਨੂੰ ਬਿਹਤਰ ਕਰ ਸਕਦਾ ਹੈ। ਅਗਲੇ ਪ੍ਰਯੋਗਾਂ ਵਿੱਚ [ਕੇਸ-ਅਧਾਰਿਤ ਤਰਕ](https://en.wikipedia.org/wiki/Case-based_reasoning) ਵਰਤੀ ਗਈ, ਜਿੱਥੇ ਪ੍ਰੋਗਰਾਮ ਮੌਜੂਦਾ ਪੋਜ਼ੀਸ਼ਨ ਨਾਲ ਮਿਲਦੇ-ਜੁਲਦੇ ਕੇਸ ਖੋਜਦਾ ਹੈ।
+* ਆਧੁਨਿਕ ਪ੍ਰੋਗਰਾਮ ਜੋ ਮਨੁੱਖਾਂ ਨੂੰ ਹਰਾਉਂਦੇ ਹਨ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਅਤੇ [ਮਜ਼ਬੂਤੀ ਸਿੱਖਿਆ](https://en.wikipedia.org/wiki/Reinforcement_learning) 'ਤੇ ਧਿਆਨ ਦੇਂਦੇ ਹਨ, ਜਿੱਥੇ ਪ੍ਰੋਗਰਾਮ ਖੁਦ ਨਾਲ ਲੰਮਾ ਸਮਾਂ ਖੇਲਦੇ ਹਨ ਅਤੇ ਆਪਣੀਆਂ ਭੁੱਲਾਂ ਤੋਂ ਸਿੱਖਦੇ ਹਨ – ਜਿਸ ਤਰ੍ਹਾਂ ਮਨੁੱਖ ਸ਼ਤਰੰਜ ਸਿੱਖਦਾ ਹੈ। ਪਰ ਕੰਪਿਊਟਰ ਜ਼ਿਆਦਾ ਖੇਡਾਂ ਛੇਤੀ ਖੇਡ ਸਕਦਾ ਹੈ ਅਤੇ ਤੇਜ਼ ਸਿੱਖ ਸਕਦਾ ਹੈ।
+
+✅ ਹੋਰ ਖੇਡਾਂ 'ਤੇ ਥੋੜਾ ਖੋਜ ਕਰੋ ਜੋ ਏਆਈ ਨੇ ਖੇਡੀਆਂ ਹਨ।
+
+ਇਸੇ ਤਰ੍ਹਾਂ, ਅਸੀਂ ਵੇਖ ਸਕਦੇ ਹਾਂ ਕਿ “ਗੱਲ ਕਰਨ ਵਾਲੇ ਪ੍ਰੋਗਰਾਮ” ਬਣਾਉਣ ਦਾ ਤਰੀਕਾ ਜਿਹੜਾ ਟਿਊਰਿੰਗ ਟੈਸਟ ਪਾਸ ਕਰ ਸਕੇ, ਕਿਵੇਂ ਬਦਲਿਆ:
+
+* ਸ਼ੁਰੂਆਤੀ ਇੰਨ੍ਹਾਂ ਵਿੱਚ [ਐਲਿਜ਼ਾ](https://en.wikipedia.org/wiki/ELIZA) ਵਰਗੇ ਪ੍ਰੋਗਰਾਮ ਵਧੇਰੇ ਸਾਦੇ ਵਿਆਕਰਣ ਨਿਯਮਾਂ ਅਤੇ ਇੰਪੁੱਟ ਵਾਕ ਨੂੰ ਸਵਾਲ ਵਿੱਚ ਬਦਲਨ 'ਤੇ ਆਧਾਰਿਤ ਸਨ।
+* ਆਧੁਨਿਕ ਸਹਾਇਕ, ਜਿਵੇਂ ਕੋਰਟਾਨਾ, ਸਿਰੀ ਜਾਂ ਗੂਗਲ ਸਹਾਇਕ, ਸਾਰੇ ਹਾਈਬ੍ਰਿਡ ਪ੍ਰਣਾਲੀਆਂ ਹਨ ਜੋ ਸਪੀਚ ਨੂੰ ਟੈਕਸਟ ਵਿੱਚ ਬਦਲਣ ਅਤੇ ਸਾਡੇ ਮਕਸਦ ਨੂੰ ਸਮਝਣ ਲਈ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਵਰਤਦੀਆਂ ਹਨ, ਅਤੇ ਫਿਰ ਕੁਝ ਤਰਕਯੁਕਤ ਜਾਂ ਸਪਸ਼ਟ ਐਲਗੋਰਿਦਮ ਲਾਗੂ ਕਰਦੀਆਂ ਹਨ।
+* ਭਵਿੱਖ ਵਿੱਚ, ਅਸੀਂ ਇੱਕ ਪੂਰਨ ਨਿਊਰਲ-ਆਧਾਰਿਤ ਮਾਡਲ ਦੀ ਉਮੀਦ ਕਰ ਸਕਦੇ ਹਾਂ ਜੋ ਗੱਲਬਾਤ ਨੂੰ ਖੁਦ ਸੰਭਾਲੇ। ਹਾਲੀਆ GPT ਅਤੇ [ਟਿਊਰਿੰਗ-NLG](https://www.microsoft.com/research/blog/turing-nlg-a-17-billion-parameter-language-model-by-microsoft) ਪ੍ਰਬੰਧਕ ਨਿਊਰਲ ਨੈੱਟਵਰਕਾਂ ਨੇ ਇਸ ਵਿੱਚ ਵੱਡੀ ਸਫਲਤਾ ਦਿਖਾਈ ਹੈ।
+
+
+
+
+> Dimitry Soshnikov ਵੱਲੋਂ ਚਿੱਤਰ, [ਫੋਟੋ](https://unsplash.com/photos/r8LmVbUKgns) [Marina Abrosimova](https://unsplash.com/@abrosimova_marina_foto) ਵਲੋਂ, Unsplash
+
+## ਹਾਲੀਆ ਏਆਈ ਖੋਜ
+
+ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਖੋਜ ਵਿੱਚ ਵੱਡਾ ਵਿਕਾਸ ਲਗਭਗ 2010 ਵਿੱਚ ਸ਼ੁਰੂ ਹੋਇਆ, ਜਦ ਵੱਡੇ ਪਬਲਿਕ ਡੇਟਾ ਸੈੱਟ ਉਪਲੱਬਧ ਹੋਣ ਲੱਗੇ। ਇੱਕ ਵੱਡਾ ਚਿੱਤਰਾਂ ਦਾ ਸੰਗ੍ਰਹਿ ਜਿਸਨੂੰ [ImageNet](https://en.wikipedia.org/wiki/ImageNet) ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਜੋ ਲਗਭਗ 14 ਮਿਲੀਅਨ ਐਨੋਟੇਟ ਕੀਤੇ ਚਿੱਤਰਾਂ ਦਾ ਸਮੂਹ ਹੈ, [ImageNet Large Scale Visual Recognition Challenge](https://image-net.org/challenges/LSVRC/) ਨੂੰ ਜਨਮ ਦਿੱਤਾ।

-> ਚਿੱਤਰ [ਦਿਮਿਤਰੀ ਸੋਸ਼ਨਿਕੋਵ](http://soshnikov.com) ਦੁਆਰਾ
+> [Dmitry Soshnikov](http://soshnikov.com) ਵੱਲੋਂ ਚਿੱਤਰ
-2012 ਵਿੱਚ, [Convolutional Neural Networks](../4-ComputerVision/07-ConvNets/README.md) ਨੂੰ ਪਹਿਲੀ ਵਾਰ ਚਿੱਤਰ ਵਰਗੀਕਰਨ ਵਿੱਚ ਵਰਤਿਆ ਗਿਆ, ਜਿਸ ਨਾਲ ਵਰਗੀਕਰਨ ਗਲਤੀਆਂ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਕਮੀ ਆਈ (ਲਗਭਗ 30% ਤੋਂ 16.4% ਤੱਕ)। 2015 ਵਿੱਚ, ਮਾਈਕਰੋਸਾਫਟ ਰਿਸਰਚ ਦੀ ResNet ਆਰਕੀਟੈਕਚਰ ਨੇ [ਮਨੁੱਖੀ-ਸਤਰ ਦੀ ਸ਼ੁੱਧਤਾ ਹਾਸਲ ਕੀਤੀ](https://doi.org/10.1109/ICCV.2015.123)।
+2012 ਵਿੱਚ, [Convolutional Neural Networks](../4-ComputerVision/07-ConvNets/README.md) ਪਹਿਲੀ ਵਾਰ ਚਿੱਤਰ ਵਰਗੀਕਰਨ ਵਿੱਚ ਵਰਤੇ ਗਏ, ਜਿਸ ਨਾਲ ਵਰਗੀਕਰਨ ਦੀਆਂ ਗਲਤੀਆਂ ਵਿੱਚ ਕਾਫੀ ਘਟੋਤਰੀ ਆਈ (ਲਗਭਗ 30% ਤੋਂ 16.4% ਤੱਕ)। 2015 ਵਿੱਚ, Microsoft ਖੋਜ ਦੀ ResNet ਆਰਕੀਟੈਕਚਰ ਨੇ [ਮਾਨਵ-ਸਤਰ ਦੀ ਸ਼ੁੱਧਤਾ] (https://doi.org/10.1109/ICCV.2015.123) ਹਾਸਲ ਕੀਤੀ।
-ਤਦ ਤੋਂ, ਨਿਊਰਲ ਨੈਟਵਰਕ ਨੇ ਕਈ ਕੰਮਾਂ ਵਿੱਚ ਬਹੁਤ ਸਫਲ ਵਿਹਾਰ ਦਿਖਾਇਆ ਹੈ:
+ਉਸ ਤੋਂ ਬਾਅਦ, ਨਿਊਰਲ ਨੈੱਟਵਰਕਾਂ ਨੇ ਕਈ ਕੰਮਾਂ ਵਿੱਚ ਬਹੁਤ ਸਫਲਤਾ ਦਰਸਾਈ:
---
-ਸਾਲ | ਮਨੁੱਖੀ ਸਮਰੱਥਾ ਹਾਸਲ ਕੀਤੀ
+ਸਾਲ | ਮਾਨਵ ਸਮਾਨਤਾ ਪ੍ਰਾਪਤ
-----|--------
2015 | [ਚਿੱਤਰ ਵਰਗੀਕਰਨ](https://doi.org/10.1109/ICCV.2015.123)
-2016 | [ਵਾਤਚੀਤ ਵਾਲੀ ਬੋਲਚਾਲ ਦੀ ਪਛਾਣ](https://arxiv.org/abs/1610.05256)
+2016 | [ਗੱਲਬਾਤੀ ਸਪੀਚ ਰਿਕੱਗਨਿਸ਼ਨ](https://arxiv.org/abs/1610.05256)
2018 | [ਆਟੋਮੈਟਿਕ ਮਸ਼ੀਨ ਅਨੁਵਾਦ](https://arxiv.org/abs/1803.05567) (ਚੀਨੀ ਤੋਂ ਅੰਗਰੇਜ਼ੀ)
-2020 | [ਚਿੱਤਰ ਕੈਪਸ਼ਨਿੰਗ](https://arxiv.org/abs/2009.13682)
+2020 | [ਚਿੱਤਰ ਸਿਰਲੇਖੀਕਰਨ](https://arxiv.org/abs/2009.13682)
-ਪਿਛਲੇ ਕੁਝ ਸਾਲਾਂ ਵਿੱਚ, BERT ਅਤੇ GPT-3 ਵਰਗੇ ਵੱਡੇ ਭਾਸ਼ਾ ਮਾਡਲਾਂ ਨਾਲ ਬਹੁਤ ਸਫਲਤਾਵਾਂ ਦੇਖੀਆਂ ਗਈਆਂ ਹਨ। ਇਹ ਜ਼ਿਆਦਾਤਰ ਇਸ ਕਰਕੇ ਹੋਇਆ ਕਿ ਬਹੁਤ ਸਾਰਾ ਆਮ ਟੈਕਸਟ ਡੇਟਾ ਉਪਲਬਧ ਹੈ ਜੋ ਸਾਨੂੰ ਮਾਡਲਾਂ ਨੂੰ ਟੈਕਸਟ ਦੀ ਬਣਤਰ ਅਤੇ ਅਰਥ ਨੂੰ ਕੈਪਚਰ ਕਰਨ ਲਈ ਸਿਖਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਨ੍ਹਾਂ ਨੂੰ ਆਮ ਟੈਕਸਟ ਸੰਗ੍ਰਹਿ 'ਤੇ ਪ੍ਰੀ-ਟ੍ਰੇਨ ਕਰਦਾ ਹੈ, ਅਤੇ ਫਿਰ ਉਨ੍ਹਾਂ ਮਾਡਲਾਂ ਨੂੰ ਹੋਰ ਵਿਸ਼ੇਸ਼ ਕੰਮਾਂ ਲਈ ਮਾਹਰ ਬਣਾਉਂਦਾ ਹੈ। ਅਸੀਂ ਇਸ ਕੋਰਸ ਵਿੱਚ ਬਾਅਦ ਵਿੱਚ [Natural Language Processing](../5-NLP/README.md) ਬਾਰੇ ਹੋਰ ਸਿੱਖਾਂਗੇ।
+ਪਿਛਲੇ ਕੁਝ ਸਾਲਾਂ ਵਿੱਚ ਅਸੀਂ ਵੱਡੇ ਭਾਸ਼ਾ ਮਾਡਲਾਂ ਜਿਵੇਂ ਕਿ BERT ਅਤੇ GPT-3 ਦੀਆਂ ਵੱਡੀਆਂ ਕਾਮਯਾਬੀਆਂ ਦੇਖੀਆਂ ਹਨ। ਇਹ ਮੁੱਖ ਤੌਰ ਤੇ ਇਸ ਲਈ ਹੋਇਆ ਕਿਉਂਕਿ ਬਹੁਤ ਸਾਰਾ ਆਮ ਲਿਖਤੀ ਡੇਟਾ ਉਪਲਬਧ ਹੈ ਜੋ ਸਾਨੂੰ ਮਾਡਲਾਂ ਨੂੰ ਟੈਕਸਟਾਂ ਦੀ ਸਰਚਨਾ ਅਤੇ ਅਰਥ ਸਮਝਣ ਲਈ ਪ੍ਰਸ਼ਿਖਿਅਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ, ਜਨਰਲ ਟੈਕਸਟ ਸੰਗ੍ਰਹਿ 'ਤੇ ਪ੍ਰੀ-ਟ੍ਰੇਨ ਕਰਨ ਅਤੇ ਫਿਰ ਉਨ੍ਹਾਂ ਮਾਡਲਾਂ ਨੂੰ ਜ਼ਿਆਦਾ ਵਿਸ਼ੇਸ਼ ਕੰਮਾਂ ਲਈ ਖਾਸ ਬਨਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਅਸੀਂ ਇਸ ਕੋਰਸ ਦੇ ਅੱਗੇ ਹਿਸਸੇ ਵਿੱਚ [ਨੈਚੁਰਲ ਲੈਂਗਵੇਜ ਪ੍ਰੋਸੈਸਿੰਗ](../5-NLP/README.md) ਬਾਰੇ ਹੋਰ ਸਿੱਖਾਂਗੇ।
## 🚀 ਚੁਣੌਤੀ
-ਇੰਟਰਨੈਟ ਦਾ ਦੌਰਾ ਕਰੋ ਅਤੇ ਇਹ ਨਿਰਧਾਰਤ ਕਰੋ ਕਿ ਤੁਹਾਡੇ ਵਿਚਾਰ ਵਿੱਚ, AI ਸਭ ਤੋਂ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕੇ ਨਾਲ ਕਿੱਥੇ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ। ਕੀ ਇਹ ਕਿਸੇ ਮੈਪਿੰਗ ਐਪ ਵਿੱਚ ਹੈ, ਜਾਂ ਕੋਈ ਬੋਲ-ਤੋਂ-ਟੈਕਸਟ ਸੇਵਾ ਜਾਂ ਕੋਈ ਵੀਡੀਓ ਗੇਮ? ਖੋਜ ਕਰੋ ਕਿ ਇਹ ਸਿਸਟਮ ਕਿਵੇਂ ਬਣਾਇਆ ਗਿਆ ਸੀ।
+ਇੰਟਰਨੈਟ 'ਤੇ ਟੂਰ ਕਰੋ ਅਤੇ ਫੈਸਲਾ ਕਰੋ ਕਿ ਤੁਹਾਡੇ ਵਿਚਾਰ ਵਿੱਚ ਏਆਈ ਸਭ ਤੋਂ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤੌਰ 'ਤੇ ਕਿੱਥੇ ਵਰਤੀ ਜਾ ਰਹੀ ਹੈ। ਕੀ ਇਹ ਮੈਪਿੰਗ ਐਪ ਵਿੱਚ ਹੈ, ਜਾਂ ਕਿਸੇ ਸਪੀਚ-ਟੂ-ਟੈਕਸਟ ਸੇਵਾ ਵਿੱਚ ਜਾਂ ਕਿਸੇ ਵੀਡੀਓ ਗੇਮ ਵਿੱਚ? ਸੋਧ ਕਰੋ ਕਿ ਸਿਸਟਮ ਕਿਵੇਂ ਬਣਾਇਆ ਗਿਆ ਸੀ।
## [ਪੋਸਟ-ਲੈਕਚਰ ਕਵਿਜ਼](https://ff-quizzes.netlify.app/en/ai/quiz/2)
-## ਸਮੀਖਾ ਅਤੇ ਸਵੈ ਅਧਿਐਨ
+## ਸਮੀਖਿਆ ਅਤੇ ਸਵੈ ਅਧਿਐਨ
-AI ਅਤੇ ML ਦੇ ਇਤਿਹਾਸ ਦੀ ਸਮੀਖਾ ਕਰੋ [ਇਸ ਪਾਠ](https://github.com/microsoft/ML-For-Beginners/tree/main/1-Introduction/2-history-of-ML) ਨੂੰ ਪੜ੍ਹ ਕੇ। ਉਸ ਪਾਠ ਜਾਂ ਇਸ ਪਾਠ ਦੇ ਸਿਖੇਚਿੱਤਰ ਦੇ ਸਿਖਰ ਤੋਂ ਇੱਕ ਤੱਤ ਲਓ ਅਤੇ ਇਸ ਦੇ ਵਿਕਾਸ ਨੂੰ ਜਾਣਨ ਲਈ ਇਸ ਨੂੰ ਹੋਰ ਗਹਿਰਾਈ ਵਿੱਚ ਖੋਜੋ।
+[ਇਸ ਪਾਠ](https://github.com/microsoft/ML-For-Beginners/tree/main/1-Introduction/2-history-of-ML) ਨੂੰ ਪੜ੍ਹ ਕੇ ਏਆਈ ਅਤੇ ਐਮਐਲ ਦਾ ਇਤਿਹਾਸ ਸਮਝੋ। ਉਸ ਪਾਠ ਜਾਂ ਇਸ ਪਾਠ ਦੇ sketchnote ਵਿੱਚੋਂ ਕੋਈ ਇੱਕ ਤੱਤ ਚੁਣੋ ਅਤੇ ਉਸ ਦੀ ਗਹਿਰਾਈ ਵਿੱਚ ਖੋਜ ਕਰੋ ਤਾਂ ਜੋ ਇਸ ਦੇ ਵਿਕਾਸ ਦੇ ਸੱਭਿਆਚਾਰਕ ਸੰਦਰਭ ਨੂੰ ਸਮਝਿਆ ਜਾ ਸਕੇ।
-**ਅਸਾਈਨਮੈਂਟ**: [Game Jam](assignment.md)
+**ਅਸਾਈਨਮਿੰਟ**: [ਗੇਮ ਜੈਮ](assignment.md)
---
-**ਅਸਵੀਕਰਤੀ**:
-ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁੱਤੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।
+**ਅਸਵੀਕਾਰੋਪਣ**:
+ਇਸ ਦਸਤਾਵੇਜ਼ ਦਾ ਅਨੁਵਾਦ ਏਆਈ ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾਵਾਂ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮੱਤਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜਰੂਰੀ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੇ ਉਪਯੋਗ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਜਵਾਬਦੇਹ ਨਹੀਂ ਹਾਂ।
\ No newline at end of file
diff --git a/translations/pa/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb b/translations/pa/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
index 98de07c8..19f3a3b1 100644
--- a/translations/pa/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
+++ b/translations/pa/lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb
@@ -4,11 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "# ਪ੍ਰੀ-ਟ੍ਰੇਨ ਮਾਡਲ ਅਤੇ ਟ੍ਰਾਂਸਫਰ ਲਰਨਿੰਗ\n",
+ "# ਪਹਿਲਾਂ-ਟ੍ਰੇਨ ਕੀਤੇ ਮਾਡਲ ਅਤੇ ਟ੍ਰਾਂਸਫਰ ਲਰਨਿੰਗ\n",
"\n",
- "CNNs ਨੂੰ ਟ੍ਰੇਨ ਕਰਨ ਵਿੱਚ ਕਾਫ਼ੀ ਸਮਾਂ ਲੱਗ ਸਕਦਾ ਹੈ, ਅਤੇ ਇਸ ਕੰਮ ਲਈ ਬਹੁਤ ਸਾਰਾ ਡਾਟਾ ਲੋੜੀਂਦਾ ਹੁੰਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਜ਼ਿਆਦਾਤਰ ਸਮਾਂ ਇਸ ਗੱਲ ਦਾ ਪਤਾ ਲਗਾਉਣ ਵਿੱਚ ਲੱਗਦਾ ਹੈ ਕਿ ਨੈੱਟਵਰਕ ਕਿਵੇਂ ਚਿੱਤਰਾਂ ਵਿੱਚੋਂ ਪੈਟਰਨ ਕੱਢਣ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਨੀਚਲੇ-ਸਤਰ ਦੇ ਫਿਲਟਰ ਸਿੱਖ ਰਿਹਾ ਹੈ। ਇੱਕ ਕੁਦਰਤੀ ਸਵਾਲ ਉੱਠਦਾ ਹੈ - ਕੀ ਅਸੀਂ ਇੱਕ ਡਾਟਾਸੈਟ 'ਤੇ ਟ੍ਰੇਨ ਕੀਤੇ ਗਏ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਨੂੰ ਵਰਤ ਕੇ ਵੱਖ-ਵੱਖ ਚਿੱਤਰਾਂ ਨੂੰ ਕਲਾਸੀਫਾਈ ਕਰਨ ਲਈ ਅਡਾਪਟ ਕਰ ਸਕਦੇ ਹਾਂ ਬਿਨਾਂ ਪੂਰੇ ਟ੍ਰੇਨਿੰਗ ਪ੍ਰਕਿਰਿਆ ਦੇ?\n",
+ "CNN ਨੂੰ ਟ੍ਰੇਨ ਕਰਨ ਵਿੱਚ ਕਾਫੀ ਸਮਾਂ ਲੱਗਦਾ ਹੈ, ਅਤੇ ਇਸ ਕੰਮ ਲਈ ਕਾਫੀ ਡਾਟਾ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਹਾਲਾਂਕਿ, ਜ਼ਿਆਦਾਤਰ ਸਮਾਂ ਸਭ ਤੋਂ ਵਧੀਆ ਨੀਵੇਂ ਪੱਧਰ ਦੇ ਫਿਲਟਰ ਸਿੱਖਣ ਵਿੱਚ ਲੰਘਦਾ ਹੈ ਜੋ ਨੈੱਟਵਰਕ ਚਿੱਤਰਾਂ ਵਿੱਚੋਂ ਪੈਟਰਨ ਨਿਕਾਲਣ ਲਈ ਵਰਤਦਾ ਹੈ। ਇੱਕ ਕੁਦਰਤੀ ਸਵਾਲ ਉੱਠਦਾ ਹੈ - ਕੀ ਅਸੀਂ ਇੱਕ ਡੇਟਾਸੈੱਟ 'ਤੇ ਟ੍ਰੇਨ ਕੀਤੇ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਨੂੰ ਵਰਤ ਸਕਦੇ ਹਾਂ ਅਤੇ ਉਸ ਨੂੰ ਵੱਖ-ਵੱਖ ਚਿੱਤਰਾਂ ਦੀ ਵਰਗੀਕਰਨ ਲਈ ਬਿਨਾਂ ਪੂਰੇ ਟ੍ਰੇਨਿੰਗ ਪ੍ਰਕਿਰਿਆ ਦੇ ਅਨੁਕੂਲਿਤ ਕਰ ਸਕਦੇ ਹਾਂ?\n",
"\n",
- "ਇਸ ਪਹੁੰਚ ਨੂੰ **ਟ੍ਰਾਂਸਫਰ ਲਰਨਿੰਗ** ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਕਿਉਂਕਿ ਅਸੀਂ ਇੱਕ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਮਾਡਲ ਤੋਂ ਦੂਜੇ ਤੱਕ ਕੁਝ ਗਿਆਨ ਟ੍ਰਾਂਸਫਰ ਕਰਦੇ ਹਾਂ। ਟ੍ਰਾਂਸਫਰ ਲਰਨਿੰਗ ਵਿੱਚ, ਅਸੀਂ ਆਮ ਤੌਰ 'ਤੇ ਇੱਕ ਪ੍ਰੀ-ਟ੍ਰੇਨ ਮਾਡਲ ਨਾਲ ਸ਼ੁਰੂ ਕਰਦੇ ਹਾਂ, ਜੋ ਕਿ ਕਿਸੇ ਵੱਡੇ ਚਿੱਤਰ ਡਾਟਾਸੈਟ, ਜਿਵੇਂ ਕਿ **ImageNet**, 'ਤੇ ਟ੍ਰੇਨ ਕੀਤਾ ਗਿਆ ਹੁੰਦਾ ਹੈ। ਇਹ ਮਾਡਲ ਪਹਿਲਾਂ ਹੀ ਜਨਰਲ ਚਿੱਤਰਾਂ ਵਿੱਚੋਂ ਵੱਖ-ਵੱਖ ਫੀਚਰ ਕੱਢਣ ਵਿੱਚ ਚੰਗਾ ਕੰਮ ਕਰ ਸਕਦੇ ਹਨ, ਅਤੇ ਬਹੁਤ ਸਾਰੇ ਕੇਸਾਂ ਵਿੱਚ, ਉਹਨਾਂ ਕੱਢੇ ਗਏ ਫੀਚਰਾਂ ਦੇ ਉੱਪਰ ਸਿਰਫ਼ ਇੱਕ ਕਲਾਸੀਫਾਇਰ ਬਣਾਉਣਾ ਚੰਗੇ ਨਤੀਜੇ ਦੇ ਸਕਦਾ ਹੈ।\n"
+ "ਇਸ ਪਹੁੰਚ ਨੂੰ **ਟ੍ਰਾਂਸਫਰ ਲਰਨਿੰਗ** ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਕਿਉਂਕਿ ਅਸੀਂ ਇੱਕ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਮਾਡਲ ਤੋਂ ਦੂਜੇ ਨੂੰ ਕੁਝ ਗਿਆਨ ਟ੍ਰਾਂਸਫਰ ਕਰਦੇ ਹਾਂ। ਟ੍ਰਾਂਸਫਰ ਲਰਨਿੰਗ ਵਿੱਚ, ਅਸੀਂ ਆਮ ਤੌਰ 'ਤੇ ਇੱਕ ਪਹਿਲਾਂ-ਟ੍ਰੇਨ ਕੀਤਾ ਮਾਡਲ ਲੈਕੇ ਸ਼ੁਰੂ ਕਰਦੇ ਹਾਂ, ਜੋ ਕਿਸੇ ਵੱਡੇ ਚਿੱਤਰ ਡੇਟਾਸੈੱਟ, ਜਿਵੇਂ ਕਿ **ImageNet** 'ਤੇ ਟ੍ਰੇਨ ਕੀਤਾ ਗਿਆ ਹੁੰਦਾ ਹੈ। ਉਹ ਮਾਡਲ ਪਹਿਲਾਂ ਹੀ ਆਮ ਚਿੱਤਰਾਂ ਵਿੱਚੋਂ ਵੱਖ-ਵੱਖ ਫੀਚਰ ਬਾਹਰ ਕੱਢਣ ਦਾ ਚੰਗਾ ਕੰਮ ਕਰ ਸਕਦੇ ਹਨ, ਅਤੇ ਕਈ ਵਾਰ ਸਿਰਫ਼ ਉਹਨਾਂ ਨਿਕਾਲੇ ਹੋਏ ਫੀਚਰਾਂ ਦੇ ਮੂਲ ਉੱਤੇ ਇੱਕ ਕਲਾਸੀਫਾਇਰ ਬਣਾਉਣਾ ਚੰਗਾ ਨਤੀਜਾ ਦੇ ਸਕਦਾ ਹੈ।\n"
]
},
{
@@ -29,11 +29,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## ਬਿੱਲੀਆਂ ਵਿਰੁੱਧ ਕੁੱਤੇ ਡੇਟਾਸੈੱਟ\n",
+ "## ਬਿੱਲੀਆਂ ਵਿਰੁੱਧ ਕੱਤੇ ਡੇਟਾਸੇਟ\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",
+ "ਇਸ ਯੂਨਿਟ ਵਿੱਚ, ਅਸੀਂ ਬਿੱਲੀਆਂ ਅਤੇ ਕੱਤਿਆਂ ਦੀਆਂ ਤਸਵੀਰਾਂ ਕਲਾਸੀਫਾਈ ਕਰਨ ਦੀ ਇੱਕ ਅਸਲੀ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਾਂਗੇ। ਇਸ ਕਾਰਨ ਲਈ, ਅਸੀਂ [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",
+ "ਅਸਲ ਜ਼ਿੰਦਗੀ ਵਿੱਚ, ਚਿੱਤਰ ਡੇਟਾਸੈੱਟ ਦਾ ਆਕਾਰ ਕਾਫ਼ੀ ਵੱਡਾ ਹੋ ਸਕਦਾ ਹੈ, ਅਤੇ ਸਾਰਾ ਡਾਟਾ ਮੈਮੋਰੀ ਵਿੱਚ ਫਿੱਟ ਹੋਣ ਦੀ ਉਮੀਦ ਨਹੀਂ ਰੱਖੀ ਜਾ ਸਕਦੀ। ਇਸ ਲਈ, ਡੇਟਾਸੈੱਟਾਂ ਨੂੰ ਅਕਸਰ **ਜਨੇਰੇਟਰਾਂ** ਵਜੋਂ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ ਜੋ ਟ੍ਰੇਨਿੰਗ ਲਈ ਯੋਗ ਮਿਨੀਬੈਚਾਂ ਵਿੱਚ ਡੇਟਾ ਵਾਪਸ ਕਰ ਸਕਦੇ ਹਨ।\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"
+ "ਡੇਟਾਸੈਟ ਸਵੈਚਾਲਿਤ ਤੌਰ 'ਤੇ ਡਾਇਰੈਕਟਰੀਆਂ ਤੋਂ ਕਲਾਸ ਨਾਮ ਚੁਣਦਾ ਹੈ, ਅਤੇ ਜੇ ਲੋੜ ਹੋਵੇ ਤਾਂ ਤੁਸੀਂ ਇਨ੍ਹਾਂ ਨੂੰ ਕਾਲ ਕਰਕੇ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ:\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"
+ "> **ਨੋਟ**: ਡੇਟਾਸੇਟ ਵਿੱਚ ਸਾਰੀਆਂ ਤਸਵੀਰਾਂ ਫਲੋਟਿੰਗ ਪੌਇੰਟ ਟੈਂਸਰਾਂ ਵਜੋਂ ਦਰਸਾਈਆਂ ਗਈਆਂ ਹਨ ਜਿਨ੍ਹਾਂ ਦੀ ਰੇਂਜ 0-255 ਹੈ। ਉਹਨਾਂ ਨੂੰ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਵਿੱਚ ਪਾਸ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਸਾਨੂੰ ਉਹਨਾਂ ਦੀਆਂ ਕੀਮਤਾਂ ਨੂੰ 0-1 ਦੀ ਰੇਂਜ ਵਿੱਚ ਸਕੇਲ ਕਰਨਾ ਲਾਜ਼ਮੀ ਹੈ। ਤਸਵੀਰਾਂ ਨੂੰ ਪਲੌਟ ਕਰਦੇ ਸਮੇਂ, ਸਾਨੂੰ ਇਹੀ ਕੰਮ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਜਾਂ ਫਿਰ ਕੀਮਤਾਂ ਨੂੰ `int` ਕਿਸਮ ਵਿੱਚ ਬਦਲਣਾ ਪੈਂਦਾ ਹੈ (ਜਿਵੇਂ ਕਿ ਅਸੀਂ ਉੱਪਰ ਦਿੱਤੇ ਕੋਡ ਵਿੱਚ ਕਰਦੇ ਹਾਂ), ਤਾਂ ਜੋ `matplotlib` ਨੂੰ ਦਿਖਾਈ ਦੇ ਸਕੇ ਕਿ ਅਸੀਂ ਅਸਲ ਅਣਸਕੇਲ ਕੀਤੀ ਤਸਵੀਰ ਨੂੰ ਪਲੌਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ।\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "## ਪ੍ਰੀ-ਟ੍ਰੇਨਡ ਮਾਡਲ\n",
+ "## ਪ੍ਰੀ-ਟ੍ਰੇਨ ਕੀਤੇ ਮਾਡਲ\n",
"\n",
- "ਬਹੁਤ ਸਾਰੀਆਂ ਚਿੱਤਰ ਵਰਗੀਕਰਨ ਕੰਮਾਂ ਲਈ, ਪਹਿਲਾਂ ਤੋਂ ਪ੍ਰਸ਼ਿਕਸ਼ਿਤ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਮਾਡਲ ਮਿਲ ਸਕਦੇ ਹਨ। ਇਹਨਾਂ ਵਿੱਚੋਂ ਬਹੁਤ ਸਾਰੇ ਮਾਡਲ `keras.applications` ਨੈਮਸਪੇਸ ਦੇ ਅੰਦਰ ਉਪਲਬਧ ਹਨ, ਅਤੇ ਹੋਰ ਬਹੁਤ ਸਾਰੇ ਮਾਡਲ ਇੰਟਰਨੈਟ 'ਤੇ ਮਿਲ ਸਕਦੇ ਹਨ। ਆਓ ਵੇਖੀਏ ਕਿ ਸਭ ਤੋਂ ਸਧਾਰਣ VGG-16 ਮਾਡਲ ਨੂੰ ਕਿਵੇਂ ਲੋਡ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ:\n"
+ "ਬਹੁਤ ਸਾਰੇ ਇਮੇਜ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਕੰਮਾਂ ਲਈ ਪ੍ਰੀ-ਟ੍ਰੇਨ ਕੀਤੇ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਮਾਡਲ ਮਿਲ ਸਕਦੇ ਹਨ। ਉਹਨਾਂ ਵਿੱਚੋਂ ਬਹੁਤੇ ਮਾਡਲ `keras.applications` namespace ਵਿੱਚ ਉਪਲਬਧ ਹਨ, ਅਤੇ ਇੰਟਰਨੈੱਟ 'ਤੇ ਹੋਰ ਵੀ ਬਹੁਤ ਸਾਰੇ ਮਾਡਲ ਮਿਲ ਸਕਦੇ ਹਨ। ਚੱਲੋ ਵੇਖੀਏ ਕਿ ਸਭ ਤੋਂ ਸਧਾਰਣ 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",
@@ -510,20 +520,17 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ਇੱਥੇ ਕੁਝ ਮਹੱਤਵਪੂਰਨ ਗੱਲਾਂ ਹਨ:\n",
- "\n",
- "* ਕਿਸੇ ਵੀ ਪ੍ਰੀ-ਟ੍ਰੇਨਡ ਨੈੱਟਵਰਕ ਨੂੰ ਇਨਪੁਟ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ, ਉਸਨੂੰ ਇੱਕ ਖਾਸ ਤਰੀਕੇ ਨਾਲ ਪ੍ਰੀ-ਪ੍ਰੋਸੈਸ ਕੀਤਾ ਜਾਣਾ ਲਾਜ਼ਮੀ ਹੈ। ਇਹ ਕੰਮ ਸੰਬੰਧਤ `preprocess_input` ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਕੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜੋ ਇਮੇਜਜ਼ ਦੇ ਬੈਚ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਪ੍ਰੋਸੈਸ ਕੀਤੇ ਰੂਪ ਨੂੰ ਵਾਪਸ ਕਰਦਾ ਹੈ। VGG-16 ਦੇ ਕੇਸ ਵਿੱਚ, ਇਮੇਜਜ਼ ਨੂੰ ਨਾਰਮਲਾਈਜ਼ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਹਰ ਚੈਨਲ ਲਈ ਕੁਝ ਪਹਿਲੋਂ ਤੋਂ ਨਿਰਧਾਰਤ ਔਸਤ ਮੁੱਲ ਘਟਾਇਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਇਸ ਲਈ ਹੈ ਕਿਉਂਕਿ VGG-16 ਨੂੰ ਮੁੱਢਲੇ ਤੌਰ 'ਤੇ ਇਸ ਪ੍ਰੀ-ਪ੍ਰੋਸੈਸਿੰਗ ਨਾਲ ਟ੍ਰੇਨ ਕੀਤਾ ਗਿਆ ਸੀ।\n",
- "\n",
- "* ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਨੂੰ ਇਨਪੁਟ ਬੈਚ 'ਤੇ ਲਾਗੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਨਤੀਜੇ ਵਜੋਂ ਸਾਨੂੰ 1000-ਐਲੀਮੈਂਟ ਵਾਲੇ ਟੈਂਸਰਜ਼ ਦਾ ਬੈਚ ਮਿਲਦਾ ਹੈ ਜੋ ਹਰ ਕਲਾਸ ਦੀ ਸੰਭਾਵਨਾ ਦਿਖਾਉਂਦੇ ਹਨ। ਅਸੀਂ ਇਸ ਟੈਂਸਰ 'ਤੇ `argmax` ਕਾਲ ਕਰਕੇ ਸਭ ਤੋਂ ਸੰਭਾਵਤ ਕਲਾਸ ਨੰਬਰ ਪਤਾ ਕਰ ਸਕਦੇ ਹਾਂ।\n",
- "\n",
- "* ਪ੍ਰਾਪਤ ਨਤੀਜਾ ਇੱਕ [`ImageNet` ਕਲਾਸ ਦਾ ਨੰਬਰ](https://gist.github.com/yrevar/942d3a0ac09ec9e5eb3a) ਹੁੰਦਾ ਹੈ। ਇਸ ਨਤੀਜੇ ਨੂੰ ਸਮਝਣ ਲਈ, ਅਸੀਂ `decode_predictions` ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ, ਜੋ ਸਿਖਰਲੇ n ਕਲਾਸਾਂ ਨੂੰ ਉਨ੍ਹਾਂ ਦੇ ਨਾਮਾਂ ਸਮੇਤ ਵਾਪਸ ਕਰਦਾ ਹੈ।\n"
+ "ਇੱਥੇ ਕੁਝ ਮੁੱਖ ਗੱਲਾਂ ਹਨ:\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"
+ "ਆਓ ਅਸੀਂ ਵੀ VGG-16 ਨੈੱਟਵਰਕ ਦੀ ਆਰਕੀਟੈਕਚਰ ਦੇਖੀਏ:\n"
]
},
{
@@ -600,9 +607,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## GPU ਗਣਨਾ\n",
+ "## ਜੀਪਿਯੂ ਕਮਪਿਊਟੇਸ਼ਨ\n",
"\n",
- "ਡੀਪ ਨਿਊਰਲ ਨੈਟਵਰਕ, ਜਿਵੇਂ ਕਿ VGG-16 ਅਤੇ ਹੋਰ ਆਧੁਨਿਕ ਆਰਕੀਟੈਕਚਰ, ਚਲਾਉਣ ਲਈ ਕਾਫੀ ਜ਼ਿਆਦਾ ਗਣਨਾਤਮਕ ਤਾਕਤ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਜੇ GPU ਐਕਸਲੇਰੇਸ਼ਨ ਉਪਲਬਧ ਹੈ, ਤਾਂ ਇਸਦਾ ਉਪਯੋਗ ਕਰਨਾ ਸਮਝਦਾਰ ਹੈ। ਖੁਸ਼ਕਿਸਮਤੀ ਨਾਲ, ਜੇ GPU ਉਪਲਬਧ ਹੈ, ਤਾਂ Keras ਆਪਣੇ ਆਪ GPU 'ਤੇ ਗਣਨਾਵਾਂ ਨੂੰ ਤੇਜ਼ ਕਰ ਦਿੰਦਾ ਹੈ। ਅਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਕੋਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਜਾਂਚ ਸਕਦੇ ਹਾਂ ਕਿ Tensorflow GPU ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਯੋਗ ਹੈ ਜਾਂ ਨਹੀਂ:\n"
+ "ਡੀਪ ਨਿਊਰਲ ਨੈੱਟਵਰਕ, ਜਿਵੇਂ ਕਿ VGG-16 ਅਤੇ ਹੋਰ ਆਧੁਨਿਕ ਆਰਕੀਟੈਕਚਰਜ਼ ਨੂੰ ਚਲਾਉਣ ਲਈ ਕਾਫੀ ਗਣਨਾਤਮਕ ਤਾਕਤ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਜੇਕਰ ਮੌਜੂਦ ਹੋਵੇ ਤਾਂ GPU ਤੀਵਰਤਾ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਸਮਝਦਾਰੀ ਹੈ। ਖੁਸ਼ਕਿਸਮਤੀ ਨਾਲ, Keras ਜੀਪਿਯੂ ਉੱਤੇ ਸਵੈਚਾਲਿਤ ਤਰੀਕੇ ਨਾਲ ਗਣਨਾਵਾਂ ਨੂੰ ਤੇਜ਼ ਕਰ ਦਿੰਦਾ ਹੈ ਜੇਕਰ ਇਹ ਉਪਲਬਧ ਹੋਵੇ। ਅਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਕੋਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵੇਖ ਸਕਦੇ ਹਾਂ ਕਿ Tensorflow ਜੀਪਿਯੂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਯੋਗ ਹੈ ਜਾਂ ਨਹੀਂ:\n"
]
},
{
@@ -629,9 +636,10 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## VGG ਫੀਚਰਜ਼ ਨਿਕਾਲਣਾ\n",
"\n",
- "ਜੇ ਅਸੀਂ ਆਪਣੀਆਂ ਤਸਵੀਰਾਂ ਤੋਂ ਫੀਚਰਜ਼ ਨਿਕਾਲਣ ਲਈ VGG-16 ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੁੰਦੇ ਹਾਂ, ਤਾਂ ਸਾਨੂੰ ਮਾਡਲ ਦੀ ਆਖਰੀ ਵਰਗੀਕਰਨ ਲੇਅਰਾਂ ਤੋਂ ਬਿਨਾਂ ਲੋੜ ਹੈ। ਅਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਕੋਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ VGG-16 ਮਾਡਲ ਨੂੰ ਉੱਪਰੀ ਲੇਅਰਾਂ ਤੋਂ ਬਿਨਾਂ ਸ਼ੁਰੂ ਕਰ ਸਕਦੇ ਹਾਂ:\n"
+ "## VGG ਫੀਚਰਾਂ ਕੱਢਣਾ\n",
+ "\n",
+ "ਜੇ ਅਸੀਂ ਆਪਣੀਆਂ ਤਸਵੀਰਾਂ ਵਿੱਚੋਂ ਫੀਚਰ ਕੱਢਣ ਲਈ VGG-16 ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਹੈ, ਤਾਂ ਸਾਨੂੰ ਮਾਡਲ ਦੀ ਲੋੜ ਹੈ ਜਿਸ ਵਿੱਚ ਆਖਰੀ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਪਰਤਾਂ ਨਾ ਹੋਣ। ਅਸੀਂ ਇਸ ਕੋਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ VGG-16 ਮਾਡਲ ਬਿਨਾਂ ਉਪਰਲੇ ਪਰਤਾਂ ਦੀ ਸ਼ੁਰੂਆਤ ਕਰ ਸਕਦੇ ਹਾਂ: \n"
]
},
{
@@ -683,9 +691,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ਫੀਚਰ ਟੈਂਸਰ ਦਾ ਆਕਾਰ 7x7x512 ਹੈ, ਪਰ ਇਸਨੂੰ ਦ੍ਰਿਸ਼ਟੀਗੋਚਰ ਬਣਾਉਣ ਲਈ ਸਾਨੂੰ ਇਸਨੂੰ 2D ਰੂਪ ਵਿੱਚ ਰੀਸ਼ੇਪ ਕਰਨਾ ਪਿਆ।\n",
+ "ਫੀਚਰ ਟੈਂਸਰ ਦਾ ਮਾਪ 7x7x512 ਹੈ, ਪਰ ਇਸਨੂੰ ਵਿਜ਼ੁਆਲਾਈਜ਼ ਕਰਨ ਲਈ ਸਾਨੂੰ ਇਸਨੂੰ 2D ਰੂਪ ਵਿੱਚ ਦੁਬਾਰਾ ਧਾਂਚਾਬੱਧ ਕਰਨਾ ਪਿਆ।\n",
"\n",
- "ਹੁਣ ਆਓ ਦੇਖੀਏ ਕਿ ਕੀ ਇਹ ਫੀਚਰ ਤਸਵੀਰਾਂ ਨੂੰ ਵਰਗੀਕ੍ਰਿਤ ਕਰਨ ਲਈ ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ। ਆਓ ਹੱਥੋਂ ਹੱਥ ਕੁਝ ਤਸਵੀਰਾਂ ਦਾ ਹਿੱਸਾ ਲਵਾਂ (ਸਾਡੇ ਕੇਸ ਵਿੱਚ 50 ਮਿਨੀਬੈਚ), ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਫੀਚਰ ਵੇਕਟਰ ਪਹਿਲਾਂ ਹੀ ਗਣਨਾ ਕਰ ਲਈਏ। ਅਸੀਂ ਇਸ ਲਈ Tensorflow ਦੀ **ਡਾਟਾਸੈਟ** API ਵਰਤ ਸਕਦੇ ਹਾਂ। `map` ਫੰਕਸ਼ਨ ਇੱਕ ਡਾਟਾਸੈਟ ਲੈਂਦਾ ਹੈ ਅਤੇ ਦਿੱਤੀ ਗਈ ਲੈਂਬਡਾ-ਫੰਕਸ਼ਨ ਨੂੰ ਲਾਗੂ ਕਰਕੇ ਇਸਨੂੰ ਬਦਲਦਾ ਹੈ। ਅਸੀਂ ਇਸ ਮਕੈਨਿਜ਼ਮ ਨੂੰ ਨਵੇਂ ਡਾਟਾਸੈਟ ਬਣਾਉਣ ਲਈ ਵਰਤਦੇ ਹਾਂ, `ds_features_train` ਅਤੇ `ds_features_test`, ਜੋ ਮੂਲ ਤਸਵੀਰਾਂ ਦੀ ਥਾਂ VGG ਤੋਂ ਨਿਕਲੇ ਫੀਚਰ ਸ਼ਾਮਲ ਕਰਦੇ ਹਨ।\n"
+ "ਹੁਣ ਆਓ ਦੇਖੀਏ ਕਿ ਕੀ ਇਹ ਫੀਚਰ ਤਸਵੀਰਾਂ ਦੀ ਵਰਗੀਕਰਨ ਲਈ ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ। ਚਲੋ ਹੱਥੋਂ ਕੁਝ ਹਿੱਸਾ ਤਸਵੀਰਾਂ ਦਾ ਲਈਏ (ਸਾਡੀ ਹਾਲਤ ਵਿੱਚ 50 ਮਿਨੀਬੈਚ), ਅਤੇ ਉਹਨਾਂ ਦੇ ਫੀਚਰ ਵੇਕਟਰ ਪਹਿਲਾਂ ਹੀ ਗਣਨਾ ਕਰ ਲਈਏ। ਅਸੀਂ ਇਹ ਕੰਮ ਟੈਂਸਰਫ਼ਲੋ **dataset** API ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਰ ਸਕਦੇ ਹਾਂ। `map` ਫੰਕਸ਼ਨ ਇੱਕ ਡੇਟਾਸੈਟ ਲੈਂਦਾ ਹੈ ਅਤੇ ਇੱਕ ਦਿੱਤੀ ਹੋਈ ਲੈਂਬਡਾ-ਫੰਕਸ਼ਨ ਨੂੰ ਲੱਗੂ ਕਰਦਾ ਹੈ ਤਾ ਕਿ ਇਸ ਨੂੰ ਬਦਲਿਆ ਜਾ ਸਕੇ। ਅਸੀਂ ਇਸ ਤਰੀਕੇ ਨਾਲ ਨਵੇਂ ਡੇਟਾਸੈਟ ਬਣਾਉਂਦੇ ਹਾਂ, `ds_features_train` ਅਤੇ `ds_features_test`, ਜੋ ਮੂਲ ਤਸਵੀਰਾਂ ਦੀ ਥਾਂ VGG-ਨਿਕਲੇ ਫੀਚਰ ਰੱਖਦੇ ਹਨ।\n"
]
},
{
@@ -715,9 +723,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ਅਸੀਂ ਡੇਟਾਸੈੱਟ ਦਾ ਆਕਾਰ ਸੀਮਿਤ ਕਰਨ ਲਈ `.take(50)` ਦਾ ਉਪਯੋਗ ਕੀਤਾ, ਤਾਂ ਜੋ ਸਾਡੀ ਡੈਮੋਨਸਟਰੇਸ਼ਨ ਦੀ ਗਤੀ ਤੇਜ਼ ਹੋ ਸਕੇ। ਤੁਸੀਂ ਇਹ ਪ੍ਰਯੋਗ ਪੂਰੇ ਡੇਟਾਸੈੱਟ 'ਤੇ ਵੀ ਕਰ ਸਕਦੇ ਹੋ।\n",
+ "ਅਸੀਂ ਆਪਣੀ ਪ੍ਰਦਰਸ਼ਨੀ ਨੂੰ ਤੇਜ਼ ਕਰਨ ਲਈ ਡੇਟਾਸੈੱਟ ਦੇ ਆਕਾਰ ਨੂੰ ਸੀਮਤ ਕਰਨ ਲਈ `.take(50)` ਕੰਸਟਰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕੀਤੀ। ਤੁਸੀਂ ਬੇਸ਼ਕ ਇਸ ਪ੍ਰਯੋਗ ਨੂੰ ਪੂਰੇ ਡੇਟਾਸੈੱਟ 'ਤੇ ਕਰ ਸਕਦੇ ਹੋ।\n",
"\n",
- "ਹੁਣ ਜਦੋਂ ਸਾਡੇ ਕੋਲ ਖਿੱਚੇ ਗਏ ਫੀਚਰਾਂ ਨਾਲ ਇੱਕ ਡੇਟਾਸੈੱਟ ਹੈ, ਅਸੀਂ ਬਿਲਕੁਲ ਸਧਾਰਨ ਡੈਂਸ ਕਲਾਸੀਫਾਇਰ ਨੂੰ ਬਿਲੀਆਂ ਅਤੇ ਕੁੱਤਿਆਂ ਵਿੱਚ ਫਰਕ ਕਰਨ ਲਈ ਟ੍ਰੇਨ ਕਰ ਸਕਦੇ ਹਾਂ। ਇਹ ਨੈਟਵਰਕ (7,7,512) ਦੇ ਸ਼ੇਪ ਵਾਲੇ ਫੀਚਰ ਵੈਕਟਰ ਨੂੰ ਲਵੇਗਾ ਅਤੇ ਇੱਕ ਆਉਟਪੁੱਟ ਪੈਦਾ ਕਰੇਗਾ ਜੋ ਜਾਂ ਤਾਂ ਕੁੱਤੇ ਜਾਂ ਬਿੱਲੀ ਨਾਲ ਸਬੰਧਿਤ ਹੋਵੇਗਾ। ਕਿਉਂਕਿ ਇਹ ਇੱਕ ਬਾਈਨਰੀ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਹੈ, ਅਸੀਂ `sigmoid` ਐਕਟੀਵੇਸ਼ਨ ਫੰਕਸ਼ਨ ਅਤੇ `binary_crossentropy` ਲਾਸ ਦਾ ਉਪਯੋਗ ਕਰਦੇ ਹਾਂ।\n"
+ "ਹੁਣ ਜਦੋਂ ਸਾਡੇ ਕੋਲ ਕੱਢੇ ਹੋਏ ਫੀਚਰਾਂ ਨਾਲ ਇਕ ਡੇਟਾਸੈੱਟ ਹੈ, ਅਸੀਂ ਬਿਲਕੁਲ ਇੱਕ ਸਧਾਰਣ ਘਣੀ ਕਲਾਸੀਫਾਇਰ ਨੂੰ ਸਿੱਖਾ ਸਕਦੇ ਹਾਂ ਜੋ ਬਿੱਲੀਆਂ ਅਤੇ ਕੁੱਤਿਆਂ ਵਿੱਚ ਫਰਕ ਕਰ ਸਕੇ। ਇਹ ਨੈੱਟਵਰਕ ਫੀਚਰ ਵੇਕਟਰ ਆਕਾਰ (7,7,512) ਲਵੇਗਾ, ਅਤੇ ਇੱਕ ਆਉਟਪੁੱਟ ਦੇਵੇਗਾ ਜੋ ਇਸ ਵਿੱਚੋਂ ਕੁੱਤਾ ਜਾਂ ਬਿੱਲੀ ਵਿੱਚੋਂ ਕਿਸੇ ਇੱਕ ਨੂੰ ਦਿੱਖਾਵੇਗਾ। ਕਿਉਂਕਿ ਇਹ ਦੋਹਾਂ ਵਿਚਲੀ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਹੈ, ਅਸੀਂ `sigmoid` ਐਕਟੀਵੇਸ਼ਨ ਫੰਕਸ਼ਨ ਅਤੇ `binary_crossentropy` ਲਾਸ਼ ਵਰਤਦੇ ਹਾਂ।\n"
]
},
{
@@ -746,13 +754,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ਨਤੀਜਾ ਸ਼ਾਨਦਾਰ ਹੈ, ਅਸੀਂ ਬਿੱਲੀ ਅਤੇ ਕੁੱਤੇ ਵਿੱਚ ਲਗਭਗ 95% ਸੰਭਾਵਨਾ ਨਾਲ ਫਰਕ ਕਰ ਸਕਦੇ ਹਾਂ! ਹਾਲਾਂਕਿ, ਅਸੀਂ ਇਸ ਪਹੁੰਚ ਨੂੰ ਸਿਰਫ਼ ਸਾਰੀਆਂ ਤਸਵੀਰਾਂ ਦੇ ਇੱਕ ਹਿੱਸੇ 'ਤੇ ਹੀ ਟੈਸਟ ਕੀਤਾ ਹੈ, ਕਿਉਂਕਿ ਮੈਨੂਅਲ ਫੀਚਰ ਐਕਸਟ੍ਰੈਕਸ਼ਨ ਕਰਨ ਵਿੱਚ ਕਾਫ਼ੀ ਸਮਾਂ ਲੱਗਦਾ ਹੈ।\n",
+ "ਨਤੀਜਾ ਬਹੁਤ ਵਧੀਆ ਹੈ, ਅਸੀਂ ਬਿੱਲੀ ਅਤੇ ਕੁੱਤੇ ਵਿੱਚ ਲਗਭਗ 95% ਸੰਭਾਵਨਾ ਨਾਲ ਫਰਕ ਕਰ ਸਕਦੇ ਹਾਂ! ਹਾਲਾਂਕਿ, ਅਸੀਂ ਇਹ ਤਰੀਕਾ ਸਿਰਫ਼ ਸਾਰੀਆਂ ਤਸਵੀਰਾਂ ਦੇ ਇੱਕ ਉਪ-ਸੈੱਟ 'ਤੇ ਟੈਸਟ ਕੀਤਾ ਹੈ, ਕਿਉਂਕਿ ਮੈਨੂਅਲ ਫੀਚਰ ਐਕਸਟ੍ਰੈਕਸ਼ਨ ਵਿੱਚ ਬਹੁਤ ਸਮਾਂ ਲੱਗਦਾ ਹੈ।\n",
"\n",
- "## ਇੱਕ VGG ਨੈਟਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਟ੍ਰਾਂਸਫਰ ਲਰਨਿੰਗ\n",
+ "## ਇੱਕ VGG ਨੈੱਟਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਦਿਆਂ ਟਰਾਂਸਫਰ ਲਰਨਿੰਗ\n",
"\n",
- "ਅਸੀਂ ਮੈਨੂਅਲ ਤੌਰ 'ਤੇ ਫੀਚਰਾਂ ਨੂੰ ਪਹਿਲਾਂ ਤੋਂ ਗਣਨਾ ਕਰਨ ਤੋਂ ਬਚ ਸਕਦੇ ਹਾਂ ਜੇ ਅਸੀਂ ਮੂਲ VGG-16 ਨੈਟਵਰਕ ਨੂੰ ਸਾਰਾ ਹੀ ਟ੍ਰੇਨਿੰਗ ਦੌਰਾਨ ਵਰਤਾਂਗੇ, ਅਤੇ ਆਪਣੇ ਨੈਟਵਰਕ ਵਿੱਚ ਪਹਿਲੀ ਲੇਅਰ ਵਜੋਂ ਫੀਚਰ ਐਕਸਟ੍ਰੈਕਟਰ ਸ਼ਾਮਲ ਕਰਾਂਗੇ।\n",
+ "ਅਸੀਂ ਮੈਨੂਅਲ ਤੌਰ 'ਤੇ ਫੀਚਰ ਪ੍ਰੀ-ਕੰਪਿਊਟ ਕਰਨ ਤੋਂ ਵੀ ਬਚ ਸਕਦੇ ਹਾਂ, ਅਸਲ VGG-16 ਨੈੱਟਵਰਕ ਨੂੰ ਟ੍ਰੇਨਿੰਗ ਦੌਰਾਨ ਪੂਰੀ ਤਰ੍ਹਾਂ ਵਰਤ ਕੇ, ਆਪਣੇ ਨੈੱਟਵਰਕ ਵਿੱਚ ਪਹਿਲੀ ਲੇਅਰ ਵੱਜੋਂ ਫੀਚਰ ਐਕਸਟ੍ਰੈਕਟਰ ਸ਼ਾਮਲ ਕਰਕੇ।\n",
"\n",
- "Keras ਆਰਕੀਟੈਕਚਰ ਦੀ ਖੂਬਸੂਰਤੀ ਇਹ ਹੈ ਕਿ VGG-16 ਮਾਡਲ, ਜਿਸਨੂੰ ਅਸੀਂ ਉੱਪਰ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਹੈ, ਇਸਨੂੰ ਕਿਸੇ ਹੋਰ ਨਿਊਰਲ ਨੈਟਵਰਕ ਵਿੱਚ ਇੱਕ ਲੇਅਰ ਵਜੋਂ ਵੀ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ! ਸਾਨੂੰ ਸਿਰਫ਼ ਇਸਦੇ ਉੱਪਰ ਇੱਕ ਡੈਂਸ ਕਲਾਸੀਫਾਇਰ ਨਾਲ ਨੈਟਵਰਕ ਬਣਾਉਣ ਦੀ ਲੋੜ ਹੈ, ਅਤੇ ਫਿਰ ਪੂਰੇ ਨੈਟਵਰਕ ਨੂੰ ਬੈਕ ਪ੍ਰੋਪਾਗੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਟ੍ਰੇਨ ਕਰਨਾ ਹੈ।\n"
+ "Keras ਢਾਂਚਾ ਸੁੰਦਰਤਾ ਇਹ ਹੈ ਕਿ ਉਪਰ ਦਿੱਤਾ ਗਿਆ VGG-16 ਮਾਡਲ ਹੋਰ ਕਿਸੇ ਨਰਵਲ ਨੈੱਟਵਰਕ ਵਿੱਚ ਇੱਕ ਲੇਅਰ ਵਜੋਂ ਵੀ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ! ਸਾਨੂੰ ਸਿਰਫ ਇਸ ਦੇ ਉੱਪਰ ਇੱਕ ਡੈਂਸ ਕਲਾਸੀਫਾਇਰ ਵਾਲਾ ਨੈੱਟਵਰਕ ਬਣਾਉਣਾ ਹੈ, ਅਤੇ ਫਿਰ ਪੂਰੇ ਨੈੱਟਵਰਕ ਨੂੰ ਬੈਕ ਪ੍ਰੋਪਾਗੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਨਾਲ ਟ੍ਰੇਨ ਕਰਨਾ ਹੈ।\n"
]
},
{
@@ -796,13 +804,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ਇਹ ਮਾਡਲ ਇੱਕ end-to-end ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਨੈਟਵਰਕ ਵਾਂਗ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ, ਜੋ ਇੱਕ ਚਿੱਤਰ ਲੈਂਦਾ ਹੈ ਅਤੇ ਕਲਾਸ ਵਾਪਸ ਕਰਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਮੁਸ਼ਕਲ ਗੱਲ ਇਹ ਹੈ ਕਿ ਅਸੀਂ VGG16 ਨੂੰ ਇੱਕ ਫੀਚਰ ਐਕਸਟ੍ਰੈਕਟਰ ਵਜੋਂ ਕੰਮ ਕਰਨ ਲਈ ਚਾਹੁੰਦੇ ਹਾਂ, ਅਤੇ ਇਸਨੂੰ ਮੁੜ-ਟ੍ਰੇਨ ਨਹੀਂ ਕਰਨਾ। ਇਸ ਲਈ, ਸਾਨੂੰ **ਕਨਵੋਲੂਸ਼ਨਲ ਫੀਚਰ ਐਕਸਟ੍ਰੈਕਟਰ ਦੇ ਵਜ਼ਨ ਨੂੰ ਫ੍ਰੀਜ਼ ਕਰਨਾ** ਪਵੇਗਾ। ਅਸੀਂ ਨੈਟਵਰਕ ਦੀ ਪਹਿਲੀ ਲੇਅਰ ਤੱਕ `model.layers[0]` ਕਾਲ ਕਰਕੇ ਪਹੁੰਚ ਸਕਦੇ ਹਾਂ, ਅਤੇ ਸਾਨੂੰ ਸਿਰਫ `trainable` ਪ੍ਰਾਪਰਟੀ ਨੂੰ `False` ਸੈਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।\n",
+ "ਇਹ ਮਾਡਲ ਇੱਕ ਐਂਡ-ਟੂ-ਐਂਡ ਵਰਗੀਕਰਨ ਨੈੱਟਵਰਕ ਵਰਗਾ ਦਿਖਦਾ ਹੈ, ਜੋ ਇੱਕ ਚਿੱਤਰ ਲੈਂਦਾ ਹੈ ਅਤੇ ਵਰਗੀ ਵਾਪਸ ਕਰਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਮੁਸ਼ਕਲ ਗੱਲ ਇਹ ਹੈ ਕਿ ਅਸੀਂ ਚਾਹੁੰਦੇ ਹਾਂ ਕਿ VGG16 ਇੱਕ ਫੀਚਰ ਐਕਸਟ੍ਰੈਕਟਰ ਵਜੋਂ ਕੰਮ ਕਰੇ, ਅਤੇ ਮੁੜ-ਟ੍ਰੇਨ ਨਾ ਕੀਤਾ ਜਾਵੇ। ਇਸ ਲਈ, ਸਾਨੂੰ **ਕਨਵੋਲੂਸ਼ਨਲ ਫੀਚਰ ਐਕਸਟ੍ਰੈਕਟਰ ਦੇ ਭਾਰਆਂ ਨੂੰ ਫ੍ਰੀਜ਼ ਕਰਨ** ਦੀ ਲੋੜ ਹੈ। ਅਸੀਂ ਨੈੱਟਵਰਕ ਦੀ ਪਹਿਲੀ ਪਰਤ ਨੂੰ `model.layers[0]` ਕਾਲ ਕਰਕੇ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਾਂ, ਅਤੇ ਸਾਨੂੰ ਸਿਰਫ `trainable` ਗੁਣ ਨੂੰ `False` ਤੇ ਸੈੱਟ ਕਰਨਾ ਹੈ।\n",
"\n",
- "> **Note**: ਫੀਚਰ ਐਕਸਟ੍ਰੈਕਟਰ ਦੇ ਵਜ਼ਨ ਨੂੰ ਫ੍ਰੀਜ਼ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ, ਕਿਉਂਕਿ ਨਹੀਂ ਤਾਂ ਅਣ-ਟ੍ਰੇਨ ਕੀਤੀ ਕਲਾਸੀਫਾਇਰ ਲੇਅਰ ਕਨਵੋਲੂਸ਼ਨਲ ਐਕਸਟ੍ਰੈਕਟਰ ਦੇ ਅਸਲ ਪ੍ਰੀ-ਟ੍ਰੇਨ ਕੀਤੇ ਵਜ਼ਨ ਨੂੰ ਖਰਾਬ ਕਰ ਸਕਦੀ ਹੈ।\n",
+ "> **ਨੋਟ**: ਫੀਚਰ ਐਕਸਟ੍ਰੈਕਟਰ ਦੇ ਭਾਰਾਂ ਨੂੰ ਫ੍ਰੀਜ਼ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ, ਕਿਉਂਕਿ ਨਹੀਂ ਤਾਂ ਅਣ-ਟ੍ਰੇਨ ਕੀਤੀ ਕਲਾਸੀਫਾਇਰ ਪਰਤ ਮੂਲ ਪੂਰਵ-ਟ੍ਰੇਨ ਕੀਤੇ ਕਨਵੋਲੂਸ਼ਨਲ ਐਕਸਟ੍ਰੈਕਟਰ ਦੇ ਭਾਰਾਂ ਨੂੰ ਨਾਸ਼ ਕਰ ਸਕਦੀ ਹੈ।\n",
"\n",
- "ਤੁਹਾਨੂੰ ਧਿਆਨ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਜਦੋਂ ਕਿ ਸਾਡੇ ਨੈਟਵਰਕ ਵਿੱਚ ਕੁੱਲ ਪੈਰਾਮੀਟਰਾਂ ਦੀ ਗਿਣਤੀ ਲਗਭਗ 15 ਮਿਲੀਅਨ ਹੈ, ਅਸੀਂ ਸਿਰਫ 25k ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਟ੍ਰੇਨ ਕਰ ਰਹੇ ਹਾਂ। ਸਾਰੇ ਹੋਰ ਪੈਰਾਮੀਟਰਾਂ ਉੱਚ-ਸਤਰੀ ਕਨਵੋਲੂਸ਼ਨਲ ਫਿਲਟਰਾਂ ਦੇ ਪ੍ਰੀ-ਟ੍ਰੇਨ ਕੀਤੇ ਗਏ ਹਨ। ਇਹ ਚੰਗਾ ਹੈ, ਕਿਉਂਕਿ ਅਸੀਂ ਘੱਟ ਗਿਣਤੀ ਉਦਾਹਰਣਾਂ ਨਾਲ ਘੱਟ ਗਿਣਤੀ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਫਾਈਨ-ਟਿਊਨ ਕਰਨ ਦੇ ਯੋਗ ਹਾਂ।\n",
+ "ਤੁਸੀਂ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ਜਦੋਂ ਸਾਡੇ ਨੈੱਟਵਰਕ ਵਿੱਚ ਕੁੱਲ ਪੈਰਾਮੀਟਰ ਲਗਭਗ 15 ਮਿਲੀਅਨ ਹਨ, ਤਾਂ ਅਸੀਂ ਸਿਰਫ 25 ਹਜ਼ਾਰ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਟ੍ਰੇਨ ਕਰ ਰਹੇ ਹਾਂ। ਸਰਵੋਚ ਕਨਵੋਲੂਸ਼ਨਲ ਫਿਲਟਰਾਂ ਦੇ ਬਾਕੀ ਸਾਰੇ ਪੈਰਾਮੀਟਰ ਪੂਰਵ-ਟ੍ਰੇਨ ਕੀਤੇ ਹੋਏ ਹਨ। ਇਹ ਚੰਗਾ ਹੈ, ਕਿਉਂਕਿ ਅਸੀਂ ਘੱਟ ਉਦਾਹਰਣਾਂ ਨਾਲ ਘੱਟ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਫਾਈਨ-ਟਿਊਨ ਕਰ ਸਕਦੇ ਹਾਂ।\n",
"\n",
- "ਹੁਣ ਅਸੀਂ ਆਪਣੇ ਨੈਟਵਰਕ ਨੂੰ ਟ੍ਰੇਨ ਕਰਾਂਗੇ ਅਤੇ ਦੇਖਾਂਗੇ ਕਿ ਅਸੀਂ ਕਿੰਨਾ ਚੰਗਾ ਪ੍ਰਦਰਸ਼ਨ ਕਰ ਸਕਦੇ ਹਾਂ। ਲੰਬੇ ਸਮੇਂ ਦੀ ਰਨਿੰਗ ਦੀ ਉਮੀਦ ਕਰੋ, ਅਤੇ ਚਿੰਤਾ ਨਾ ਕਰੋ ਜੇ ਲਾਗੂ ਕਰਨ ਦਾ ਪ੍ਰਕਿਰਿਆ ਕੁਝ ਸਮੇਂ ਲਈ ਜਮੀ ਹੋਈ ਲੱਗੇ।\n"
+ "ਹੁਣ ਅਸੀਂ ਸਾਡਾ ਨੈੱਟਵਰਕ ਟ੍ਰੇਨ ਕਰਾਂਗੇ ਅਤੇ ਵੇਖਾਂਗੇ ਕਿ ਅਸੀਂ ਕਿੰਨਾ ਵਧੀਆ ਪ੍ਰਦਰਸ਼ਨ ਕਰ ਸਕਦੇ ਹਾਂ। ਲੰਮਾ ਸਮਾਂ ਲੱਗ ਸਕਦਾ ਹੈ, ਅਤੇ ਜੇ ਕਾਰਜ ਕੁਝ ਸਮੇਂ ਲਈ ਰੁਕਿਆ ਹੋਇਆ ਲੱਗੇ ਤਾਂ ਚਿੰਤਾ ਨਾ ਕਰੋ।\n"
]
},
{
@@ -827,11 +835,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ਇਹ ਲੱਗਦਾ ਹੈ ਕਿ ਸਾਨੂੰ ਬਿਲਕੁਲ ਸਹੀ ਬਿੱਲੀਆਂ ਵਿਰੁੱਧ ਕੁੱਤਿਆਂ ਦਾ ਕਲਾਸੀਫਾਇਰ ਮਿਲ ਗਿਆ ਹੈ!\n",
+ "ਇਹ ਲੱਗਦਾ ਹੈ ਕਿ ਅਸੀਂ ਬਿਲਕੁਲ ਸਹੀ ਬਿੱਲੀਆਂ ਬਨਾਮ ਕੁੱਤਿਆਂ ਦਾ ਕਲਾਸੀਫਾਇਰ ਪ੍ਰਾਪਤ ਕਰ ਲਿਆ ਹੈ! \n",
"\n",
- "## ਮਾਡਲ ਨੂੰ ਸੇਵ ਕਰਨਾ ਅਤੇ ਲੋਡ ਕਰਨਾ\n",
+ "## ਮਾਡਲ ਸੇਵ ਅਤੇ ਲੋਡ ਕਰਨਾ\n",
"\n",
- "ਜਦੋਂ ਸਾਨੂੰ ਮਾਡਲ ਨੂੰ ਟ੍ਰੇਨ ਕਰ ਲਿਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਅਸੀਂ ਭਵਿੱਖ ਵਿੱਚ ਇਸਤੇਮਾਲ ਲਈ ਮਾਡਲ ਦੀ ਆਰਕੀਟੈਕਚਰ ਅਤੇ ਟ੍ਰੇਨ ਕੀਤੇ ਵਜ਼ਨ ਨੂੰ ਇੱਕ ਫਾਇਲ ਵਿੱਚ ਸੇਵ ਕਰ ਸਕਦੇ ਹਾਂ:\n"
+ "ਜਦੋਂ ਅਸੀਂ ਮਾਡਲ ਨੂੰ ਟ੍ਰੇਨ ਕਰ ਲੈਂਦੇ ਹਾਂ, ਤਾਂ ਅਸੀਂ ਅਗਲੇ ਵਾਰ ਲਈ ਮਾਡਲ ਦੀ ਬਣਤਰ ਅਤੇ ਟ੍ਰੇਨ ਕੀਤੇ ਵਜ਼ਨ ਨੂੰ ਇੱਕ ਫਾਇਲ ਵਿੱਚ ਸੇਵ ਕਰ ਸਕਦੇ ਹਾਂ:\n"
]
},
{
@@ -855,7 +863,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ਅਸੀਂ ਫਿਰ ਮਾਡਲ ਨੂੰ ਕਿਸੇ ਵੀ ਸਮੇਂ ਫਾਇਲ ਤੋਂ ਲੋਡ ਕਰ ਸਕਦੇ ਹਾਂ। ਤੁਸੀਂ ਇਸਨੂੰ ਲਾਭਦਾਇਕ ਪਾ ਸਕਦੇ ਹੋ ਜੇ ਅਗਲਾ ਪ੍ਰਯੋਗ ਮਾਡਲ ਨੂੰ ਨਸ਼ਟ ਕਰ ਦੇਵੇ - ਤੁਹਾਨੂੰ ਸ਼ੁਰੂ ਤੋਂ ਮੁੜ ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਪਵੇਗੀ।\n"
+ "ਅਸੀਂ ਫਿਰ ਮਾਡਲ ਨੂੰ ਕਿਸੇ ਵੀ ਸਮੇਂ ਫਾਇਲ ਵਿੱਚੋਂ ਲੋਡ ਕਰ ਸਕਦੇ ਹਾਂ। ਇਹ ਤੁਹਾਡੇ ਲਈ ਫਾਇਦੇਮੰਦ ਹੋ ਸਕਦਾ ਹੈ ਜੇਕਰ ਅਗਲਾ ਪ੍ਰਯੋਗ ਮਾਡਲ ਨੂੰ ਖ਼ਤਮ ਕਰ ਦੇਵੇ - ਤਾਂ ਤੁਹਾਨੂੰ ਫਿਰ ਤੋਂ ਸਿਰੇ ਤੋਂ ਸ਼ੁਰੂਆਤ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਪਏਗੀ।\n"
]
},
{
@@ -871,15 +879,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## ਟ੍ਰਾਂਸਫਰ ਲਰਨਿੰਗ ਦਾ ਫਾਈਨ-ਟਿਊਨਿੰਗ\n",
+ "## ਫਾਈਨ-ਟਿਊਨਿੰਗ ਟ੍ਰਾਂਸਫਰ ਲਰਨਿੰਗ\n",
"\n",
- "ਪਿਛਲੇ ਸੈਕਸ਼ਨ ਵਿੱਚ, ਅਸੀਂ ਆਪਣੇ ਡਾਟਾਸੈੱਟ ਵਿੱਚ ਚਿੱਤਰਾਂ ਨੂੰ ਵਰਗਬੱਧ ਕਰਨ ਲਈ ਅੰਤਿਮ ਕਲਾਸੀਫਾਇਰ ਲੇਅਰ ਨੂੰ ਟ੍ਰੇਨ ਕੀਤਾ ਸੀ। ਹਾਲਾਂਕਿ, ਅਸੀਂ ਫੀਚਰ ਐਕਸਟ੍ਰੈਕਟਰ ਨੂੰ ਮੁੜ-ਟ੍ਰੇਨ ਨਹੀਂ ਕੀਤਾ ਸੀ, ਅਤੇ ਸਾਡੇ ਮਾਡਲ ਨੇ ImageNet ਡਾਟਾ 'ਤੇ ਸਿੱਖੇ ਗਏ ਫੀਚਰਾਂ 'ਤੇ ਭਰੋਸਾ ਕੀਤਾ। ਜੇ ਤੁਹਾਡੇ ਆਬਜੈਕਟ ਆਮ ImageNet ਚਿੱਤਰਾਂ ਤੋਂ ਵਿਜ਼ੂਅਲ ਤੌਰ 'ਤੇ ਵੱਖਰੇ ਹਨ, ਤਾਂ ਇਹ ਫੀਚਰਾਂ ਦਾ組ਮਿਲਾ ਸਭ ਤੋਂ ਵਧੀਆ ਕੰਮ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਇਸ ਲਈ, ਕਨਵੋਲੂਸ਼ਨਲ ਲੇਅਰਾਂ ਨੂੰ ਟ੍ਰੇਨ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰਨਾ ਸਮਝਦਾਰੀ ਹੈ।\n",
+ "ਪਿਛਲੇ ਭਾਗ ਵਿੱਚ, ਅਸੀਂ ਆਖਰੀ ਕਲਾਸੀਫਾਇਰ ਲੇਅਰ ਨੂੰ ਆਪਣੇ ਡੇਟਾਸੈੱਟ ਵਿੱਚ ਚਿੱਤਰਾਂ ਨੂੰ ਕਲਾਸੀਫਾਈ ਕਰਨ ਲਈ ਟ੍ਰੇਨ ਕੀਤਾ ਹੈ। ਹਾਲਾਂਕਿ, ਅਸੀਂ ਫੀਚਰ ਐਕਸਟ੍ਰੈਕਟਰ ਨੂੰ ਮੁੜ ਟ੍ਰੇਨ ਨਹੀਂ ਕੀਤਾ, ਅਤੇ ਸਾਡਾ ਮਾਡਲ ਉਹ ਫੀਚਰਾਂ ਤੇ ਆਧਾਰਤ ਸੀ ਜੋ ਮਾਡਲ ਨੇ ImageNet ਡਾਟਾ 'ਤੇ ਸਿੱਖੇ ਹਨ। ਜੇ ਤੁਹਾਡੇ ਵਸਤੂਆਂ ਸਧਾਰਣ ImageNet ਚਿੱਤਰਾਂ ਤੋਂ ਦ੍ਰਿਸ਼ਟੀਗਤ ਤੌਰ 'ਤੇ ਵੱਖਰੇ ਹਨ, ਤਾਂ ਇਹ ਫੀਚਰਾਂ ਦਾ ਸੰਯੋਗ ਸਭ ਤੋਂ ਵਧੀਆ ਕੰਮ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਇਸ ਲਈ, ਕਨਵੋਲਯੂਸ਼ਨਲ ਲੇਅਰਾਂ ਨੂੰ ਵੀ ਟ੍ਰੇਨ ਕਰਨਾ ਸਮਝਦਾਰ ਹੈ।\n",
"\n",
- "ਇਹ ਕਰਨ ਲਈ, ਅਸੀਂ ਉਹ ਕਨਵੋਲੂਸ਼ਨਲ ਫਿਲਟਰ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਅਨਫ੍ਰੀਜ਼ ਕਰ ਸਕਦੇ ਹਾਂ ਜੋ ਅਸੀਂ ਪਹਿਲਾਂ ਫ੍ਰੀਜ਼ ਕੀਤੇ ਸਨ।\n",
+ "ਇਸ ਲਈ, ਅਸੀਂ ਉਹ ਕਨਵੋਲਯੂਸ਼ਨਲ ਫਿਲਟਰ ਪੈਰਾਮੀਟਰਾਂ ਅਨਫ੍ਰੀਜ਼ ਕਰ ਸਕਦੇ ਹਾਂ ਜੋ ਅਸੀਂ ਪਹਿਲਾਂ ਫ੍ਰੀਜ਼ ਕੀਤੇ ਸਨ।\n",
"\n",
- "> **Note:** ਇਹ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਤੁਸੀਂ ਪਹਿਲਾਂ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਫ੍ਰੀਜ਼ ਕਰੋ ਅਤੇ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਲੇਅਰ ਵਿੱਚ ਵਜ਼ਨਾਂ ਨੂੰ ਸਥਿਰ ਕਰਨ ਲਈ ਕਈ ਐਪੋਕਸ ਦੀ ਟ੍ਰੇਨਿੰਗ ਕਰੋ। ਜੇ ਤੁਸੀਂ ਤੁਰੰਤ ਅਨਫ੍ਰੀਜ਼ ਕੀਤੇ ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ ਐਂਡ-ਟੂ-ਐਂਡ ਨੈਟਵਰਕ ਟ੍ਰੇਨਿੰਗ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਵੱਡੀਆਂ ਗਲਤੀਆਂ ਕਨਵੋਲੂਸ਼ਨਲ ਲੇਅਰਾਂ ਵਿੱਚ ਪ੍ਰੀ-ਟ੍ਰੇਨ ਕੀਤੇ ਵਜ਼ਨਾਂ ਨੂੰ ਨਸ਼ਟ ਕਰ ਸਕਦੀਆਂ ਹਨ।\n",
+ "> **ਨੋਟ:** ਇਹ ਜਰੂਰੀ ਹੈ ਕਿ ਤੁਸੀਂ ਸਭ ਤੋਂ ਪਹਿਲਾਂ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਫ੍ਰੀਜ਼ ਕਰੋ ਅਤੇ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਲੇਅਰ ਵਿੱਚ ਵਜ਼ਨ ਸਥਿਰ ਕਰਨ ਲਈ ਕਈ ਕਾਲਾਂ ਦਾ ਟ੍ਰੇਨਿੰਗ ਕਰੋ। ਜੇ ਤੁਸੀਂ ਤੁਰੰਤ ਫ੍ਰੀਜ਼ ਨਾ ਕੀਤੇ ਗਏ ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ ਇਕ ਸਾਰੇ ਨੈੱਟਵਰਕ ਦੀ ਟ੍ਰੇਨਿੰਗ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਵੱਡੀਆਂ ਗਲਤੀਆਂ ਸੰਭਾਵਿਤ ਹਨ ਜੋ ਕਨਵੋਲਯੂਸ਼ਨਲ ਲੇਅਰਾਂ ਵਿੱਚ ਦੇ ਪਹਿਲਾਂ ਟ੍ਰੇਨ ਕੀਤੇ ਗਏ ਵਜ਼ਨਾਂ ਨੂੰ ਨੁਕਸਾਨ ਪਹੁੰਚਾ ਸਕਦੀਆਂ ਹਨ।\n",
"\n",
- "ਸਾਡਾ ਕਨਵੋਲੂਸ਼ਨਲ VGG-16 ਮਾਡਲ ਪਹਿਲੀ ਲੇਅਰ ਦੇ ਅੰਦਰ ਸਥਿਤ ਹੈ, ਅਤੇ ਇਹ ਆਪਣੇ ਆਪ ਵਿੱਚ ਕਈ ਲੇਅਰਾਂ 'ਤੇ ਮੁਸ਼ਤਮਿਲ ਹੈ। ਅਸੀਂ ਇਸ ਦੀ ਬਣਤਰ ਨੂੰ ਦੇਖ ਸਕਦੇ ਹਾਂ:\n"
+ "ਸਾਡਾ ਕਨਵੋਲਯੂਸ਼ਨਲ VGG-16 ਮਾਡਲ ਪਹਿਲੀ ਲੇਅਰ ਦੇ ਅੰਦਰ ਹੈ, ਅਤੇ ਇਹ ਆਪਣੇ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਲੇਅਰਾਂ 'ਤੇ مشتمل ਹੈ। ਅਸੀਂ ਇਸ ਦੀ ਸੰਰਚਨਾ ਦੇਖ ਸਕਦੇ ਹਾਂ:\n"
]
},
{
@@ -947,7 +955,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "ਅਸੀਂ ਕਨਵੋਲੂਸ਼ਨਲ ਬੇਸ ਦੀਆਂ ਸاریਆਂ ਪਰਤਾਂ ਨੂੰ ਅਣਫ੍ਰੀਜ਼ ਕਰ ਸਕਦੇ ਹਾਂ:\n"
+ ]
},
{
"cell_type": "code",
@@ -962,7 +972,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ਹਾਲਾਂਕਿ, ਸਾਰੇ ਨੂੰ ਇੱਕ ਵਾਰ ਵਿੱਚ ਅਨਫ੍ਰੀਜ਼ ਕਰਨਾ ਸਭ ਤੋਂ ਵਧੀਆ ਵਿਚਾਰ ਨਹੀਂ ਹੈ। ਅਸੀਂ ਪਹਿਲਾਂ ਸਿਰਫ ਕੁਝ ਅੰਤਮ ਲੇਅਰਾਂ ਨੂੰ ਅਨਫ੍ਰੀਜ਼ ਕਰ ਸਕਦੇ ਹਾਂ, ਕਿਉਂਕਿ ਉਹ ਉੱਚ ਪੱਧਰ ਦੇ ਪੈਟਰਨਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਦੇ ਹਨ ਜੋ ਸਾਡੀਆਂ ਤਸਵੀਰਾਂ ਲਈ ਸਬੰਧਤ ਹਨ। ਉਦਾਹਰਨ ਵਜੋਂ, ਸ਼ੁਰੂ ਕਰਨ ਲਈ, ਅਸੀਂ ਸਾਰੇ ਲੇਅਰਾਂ ਨੂੰ ਅਨਫ੍ਰੀਜ਼ ਕਰ ਸਕਦੇ ਹਾਂ ਸਿਵਾਏ ਆਖਰੀ 4 ਦੇ:\n"
+ "ਹਾਲਾਂਕਿ, ਸਾਰਿਆਂ ਨੂੰ ਇਕ ਵਾਰੀ ਅਣਫ੍ਰੀਜ਼ ਕਰਨਾ ਸਭ ਤੋਂ ਵਧੀਆ ਵਿਚਾਰ ਨਹੀਂ ਹੈ। ਅਸੀਂ ਪਹਿਲਾਂ ਸਿਰਫ ਕੁਝ ਅਖੀਰਲੇ ਕੋਨਵੋਲੂਸ਼ਨ ਲੇਅਰਾਂ ਨੂੰ ਹੀ ਅਣਫ੍ਰੀਜ਼ ਕਰ ਸਕਦੇ ਹਾਂ, ਕਿਉਂਕਿ ਉਨ੍ਹਾਂ ਵਿੱਚ ਉੱਚ ਪੱਧਰੀ ਪੈਟਰਨ ਹੁੰਦੇ ਹਨ ਜੋ ਸਾਡੇ ਚਿੱਤਰਾਂ ਲਈ ਮਹੱਤਵਪੂਰਣ ਹਨ। ਉਦਾਹਰਨ ਵਜੋਂ, ਸ਼ੁਰੂਆਤ ਲਈ, ਅਸੀਂ ਸਾਰੇ ਲੇਅਰਾਂ ਨੂੰ ਅਖੀਰਲੇ 4 ਨੂੰ ਛੱਡ ਕੇ ਫ੍ਰੀਜ਼ ਕਰ ਸਕਦੇ ਹਾਂ: \n"
]
},
{
@@ -1001,11 +1011,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ਟ੍ਰੇਨ ਕਰਨ ਯੋਗ ਪੈਰਾਮੀਟਰਾਂ ਦੀ ਗਿਣਤੀ ਵਿੱਚ ਕਾਫ਼ੀ ਵਾਧਾ ਹੋਇਆ ਹੈ, ਪਰ ਇਹ ਫਿਰ ਵੀ ਸਾਰੇ ਪੈਰਾਮੀਟਰਾਂ ਦੇ ਲਗਭਗ 50% ਦੇ ਆਸਪਾਸ ਹੈ।\n",
+ "ਧਿਆਨ ਦਿਓ ਕਿ ਟ੍ਰੇਨ ਕਰਨਯੋਗ ਪੈਰਾਮੀਟਰਾਂ ਦੀ ਗਿਣਤੀ ਅਹਮ ਤੌਰ 'ਤੇ ਵਧ ਗਈ ਹੈ, ਪਰ ਇਹ ਅਜੇ ਵੀ ਸਾਰੇ ਪੈਰਾਮੀਟਰਾਂ ਦਾ ਲਗਭਗ 50% ਹੈ।\n",
"\n",
- "ਅਨਫ੍ਰੀਜ਼ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ ਕੁਝ ਹੋਰ ਈਪੌਕਸ ਲਈ ਟ੍ਰੇਨਿੰਗ ਕਰ ਸਕਦੇ ਹਾਂ (ਸਾਡੇ ਉਦਾਹਰਨ ਵਿੱਚ, ਅਸੀਂ ਸਿਰਫ ਇੱਕ ਹੀ ਕਰਾਂਗੇ)। ਤੁਸੀਂ ਘੱਟ ਲਰਨਿੰਗ ਰੇਟ ਵੀ ਚੁਣ ਸਕਦੇ ਹੋ, ਤਾਂ ਜੋ ਪ੍ਰੀ-ਟ੍ਰੇਨਡ ਵਜ਼ਨਾਂ 'ਤੇ ਪ੍ਰਭਾਵ ਨੂੰ ਘਟਾਇਆ ਜਾ ਸਕੇ। ਹਾਲਾਂਕਿ, ਘੱਟ ਲਰਨਿੰਗ ਰੇਟ ਦੇ ਨਾਲ ਵੀ, ਤੁਸੀਂ ਟ੍ਰੇਨਿੰਗ ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਐਕ੍ਯੂਰੇਸੀ ਵਿੱਚ ਕਮੀ ਦੀ ਉਮੀਦ ਕਰ ਸਕਦੇ ਹੋ, ਜਦੋਂ ਤੱਕ ਕਿ ਇਹ ਆਖ਼ਰਕਾਰ ਫਿਕਸਡ ਵਜ਼ਨਾਂ ਦੇ ਮਾਮਲੇ ਨਾਲੋਂ ਥੋੜ੍ਹਾ ਉੱਚੇ ਪੱਧਰ 'ਤੇ ਨਹੀਂ ਪਹੁੰਚ ਜਾਂਦੀ।\n",
+ "ਅਨਫ੍ਰੀਜ਼ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ ਕੁਝ ਹੋਰ ਇਪੋਚਾਂ ਦੀ ਟ੍ਰੇਨਿੰਗ ਕਰ ਸਕਦੇ ਹਾਂ (ਸਾਡੇ ਉਦਾਹਰਨ ਵਿੱਚ, ਅਸੀਂ ਕੇਵਲ ਇੱਕ ਕਰਾਂਗੇ)। ਤੁਸੀਂ ਘੱਟ ਲਰਨਿੰਗ ਰੇਟ ਵੀ ਚੁਣ ਸਕਦੇ ਹੋ, ਤਾਂ ਜੋ ਪ੍ਰੀ-ਟ੍ਰੇਨ ਕੀਤਿਆਂ ਵਿਟਾਂ 'ਤੇ ਪ੍ਰਭਾਵ ਘੱਟ ਹੋਵੇ। ਫਿਰ ਵੀ, ਘੱਟ ਲਰਨਿੰਗ ਰੇਟ ਨਾਲ ਵੀ, ਤੁਸੀਂ ਟ੍ਰੇਨਿੰਗ ਦੇ ਆਰੰਭ ਵਿੱਚ ਸਹੀਤਾ ਵਿੱਚ ਕਮੀ ਦੀ ਉਮੀਦ ਕਰ ਸਕਦੇ ਹੋ, ਜਦ ਤੱਕ ਕਿ ਅੰਤ ਵਿੱਚ ਫਿਕਸ ਕੀਤਿਆਂ ਵਿਟਾਂ ਵਾਲੇ ਮੁਕਾਬਲੇ ਥੋੜ੍ਹਾ ਜਿਹਾ ਵੱਧ ਪੱਧਰ ਤੇ ਨਾ ਪਹੁੰਚ ਜਾਵੇ।\n",
"\n",
- "> **Note:** ਇਹ ਟ੍ਰੇਨਿੰਗ ਕਾਫ਼ੀ ਹੌਲੀ ਹੁੰਦੀ ਹੈ, ਕਿਉਂਕਿ ਸਾਨੂੰ ਨੈੱਟਵਰਕ ਦੇ ਕਈ ਲੇਅਰਾਂ ਰਾਹੀਂ ਗ੍ਰੇਡੀਐਂਟਸ ਵਾਪਸ ਪ੍ਰੋਪਾਗੇਟ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ!\n"
+ "> **ਟਿੱਪਣੀ:** ਇਹ ਟ੍ਰੇਨਿੰਗ ਕਾਫੀ ਹੌਲੀ ਹੁੰਦੀ ਹੈ, ਕਿਉਂਕਿ ਸਾਨੂੰ ਨੈੱਟਵਰਕ ਦੀਆਂ ਕਈ ਪਰਤਾਂ ਵਿੱਚੋਂ ਗ੍ਰੇਡੀਐਂਟ ਵਾਪਸ ਪਸਾਰਨੀਆਂ ਪੈਂਦੀਆਂ ਹਨ!\n"
]
},
{
@@ -1029,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 ਦੁਆਰਾ ਵਿਕਸਿਤ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ, ਅਤੇ Google ਦਾ **Inception**। ਉਦਾਹਰਣ ਵਜੋਂ, ਆਓ ਸਭ ਤੋਂ ਸਧਾਰਣ ResNet-50 ਮਾਡਲ ਦੀ ਆਰਕੀਟੈਕਚਰ ਦੀ ਪੜਚੋਲ ਕਰੀਏ (ResNet ਮਾਡਲਾਂ ਦਾ ਇੱਕ ਪਰਿਵਾਰ ਹੈ ਜਿਸ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਡਿਪਥ ਹਨ, ਤੁਸੀਂ ResNet-152 ਨਾਲ ਪ੍ਰਯੋਗ ਕਰ ਸਕਦੇ ਹੋ ਜੇ ਤੁਸੀਂ ਦੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਇੱਕ ਸੱਚਮੁੱਚ ਡੂੰਘਾ ਮਾਡਲ ਕਿਵੇਂ ਲੱਗਦਾ ਹੈ):\n"
+ "VGG-16 ਸਭ ਤੋਂ ਸਧਾਰਣ ਕੰਪਿютਰ ਵਿਜ਼ਨ ਆਰਕੀਟੈਕਚਰਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ। Keras ਹੋਰ ਬਹੁਤ ਸਾਰੇ ਪਹਿਲਾਂ ਤੋਂ ਸਿੱਖੇ ਹੋਏ ਨੈੱਟਵਰਕ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਉਹਨਾਂ ਵਿੱਚ ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ ਵਰਤੇ ਜਾਣ ਵਾਲੇ **ResNet** ਆਰਕੀਟੈਕਚਰ, ਜੋ Microsoft ਵੱਲੋਂ ਵਿਕਸਤ ਕੀਤੇ ਗਏ ਹਨ, ਅਤੇ **Inception** ਜੋ Google ਵੱਲੋਂ ਬਣਾਇਆ ਗਿਆ ਹੈ, ਹਨ। ਉਦਾਹਰਨ ਵਜੋਂ, ਆਓ ਸਭ ਤੋਂ ਸਧਾਰਣ ResNet-50 ਮਾਡਲ ਦੀ ਆਰਕੀਟੈਕਚਰ ਨੂੰ ਵੇਖੀਏ (ResNet ਮਾਡਲਾਂ ਦਾ ਇੱਕ ਪਰਿਵਾਰ ਹੈ ਜੋ ਵੱਖ-ਵੱਖ ਗਹਿਰਾਈ ਵਾਲੇ ਹਨ, ਜੇ ਤੁਸੀਂ ਇੱਕ ਬਹੁਤ ਹੀ ਡਿੱਗ ਮਾਡਲ ਦੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ResNet-152 ਨਾਲ ਪ੍ਰਯੋਗ ਕਰ ਸਕਦੇ ਹੋ):\n"
]
},
{
@@ -1442,29 +1452,29 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "ਜਿਵੇਂ ਤੁਸੀਂ ਦੇਖ ਸਕਦੇ ਹੋ, ਮਾਡਲ ਵਿੱਚ ਉਹੀ ਜਾਣ-ਪਛਾਣ ਵਾਲੇ ਬਿਲਡਿੰਗ ਬਲਾਕ ਹਨ: ਕਨਵੋਲੂਸ਼ਨਲ ਲੇਅਰ, ਪੂਲਿੰਗ ਲੇਅਰ ਅਤੇ ਅੰਤ ਵਿੱਚ ਡੈਂਸ ਕਲਾਸੀਫਾਇਰ। ਅਸੀਂ ਇਸ ਮਾਡਲ ਨੂੰ ਬਿਲਕੁਲ ਉਸੇ ਤਰੀਕੇ ਨਾਲ ਵਰਤ ਸਕਦੇ ਹਾਂ ਜਿਵੇਂ ਅਸੀਂ VGG-16 ਨੂੰ ਟ੍ਰਾਂਸਫਰ ਲਰਨਿੰਗ ਲਈ ਵਰਤ ਰਹੇ ਹਾਂ। ਤੁਸੀਂ ਉਪਰ ਦਿੱਤੇ ਕੋਡ ਨਾਲ ਅਲੱਗ-ਅਲੱਗ ResNet ਮਾਡਲ ਨੂੰ ਬੇਸ ਮਾਡਲ ਵਜੋਂ ਵਰਤ ਕੇ ਅਜ਼ਮਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ਸਹੀਤਾ (accuracy) ਕਿਵੇਂ ਬਦਲਦੀ ਹੈ।\n",
+ "ਜਿਵੇਂ ਕਿ ਤੁਸੀਂ ਦੇਖ ਸਕਦੇ ਹੋ, ਮਾਡਲ ਵਿੱਚ ਉਹੀ ਜਾਣਿਆ-ਪਹਚਾਣਿਆ ਬਿਲਡਿੰਗ ਬਲੌਕ ਸ਼ਾਮਲ ਹਨ: ਕਨਵੋਲੂਸ਼ਨਲ ਲੇਅਰ, ਪੂਲਿੰਗ ਲੇਅਰ ਅਤੇ ਅੰਤਿਮ ਡੈਂਸ ਕਲਾਸੀਫਾਇਰ। ਅਸੀਂ ਇਸ ਮਾਡਲ ਨੂੰ ਬਿਲਕੁਲ ਉਸੇ ਢੰਗ ਨਾਲ ਵਰਤ ਸਕਦੇ ਹਾਂ ਜਿਵੇਂ ਅਸੀਂ ਟ੍ਰਾਂਸਫਰ ਲਰਨਿੰਗ ਲਈ VGG-16 ਦਾ ਉਪਯੋਗ ਕਰ ਰਹੇ ਹਾਂ। ਤੁਸੀਂ ਉਪਰ ਦਿੱਤੇ ਕੋਡ ਨਾਲ ਵੱਖ-ਵੱਖ ResNet ਮਾਡਲਾਂ ਨੂੰ ਬੇਸ ਮਾਡਲ ਵਜੋਂ ਵਰਤ ਕੇ ਪ੍ਰਯੋਗ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ਸਹੀਤਾ ਕਿਵੇਂ ਬਦਲਦੀ ਹੈ।\n",
"\n",
"## ਬੈਚ ਨਾਰਮਲਾਈਜ਼ੇਸ਼ਨ\n",
"\n",
- "ਇਸ ਨੈਟਵਰਕ ਵਿੱਚ ਇੱਕ ਹੋਰ ਕਿਸਮ ਦੀ ਲੇਅਰ ਸ਼ਾਮਲ ਹੈ: **ਬੈਚ ਨਾਰਮਲਾਈਜ਼ੇਸ਼ਨ**। ਬੈਚ ਨਾਰਮਲਾਈਜ਼ੇਸ਼ਨ ਦਾ ਵਿਚਾਰ ਇਹ ਹੈ ਕਿ ਨਿਊਰਲ ਨੈਟਵਰਕ ਵਿੱਚ ਵਹਿਣ ਵਾਲੀਆਂ ਵੈਲਿਊਜ਼ ਨੂੰ ਸਹੀ ਅੰਤਰਾਲ ਵਿੱਚ ਲਿਆਇਆ ਜਾਵੇ। ਆਮ ਤੌਰ 'ਤੇ ਨਿਊਰਲ ਨੈਟਵਰਕ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕੇ ਨਾਲ ਕੰਮ ਕਰਦੇ ਹਨ ਜਦੋਂ ਸਾਰੀਆਂ ਵੈਲਿਊਜ਼ [-1,1] ਜਾਂ [0,1] ਦੀ ਰੇਂਜ ਵਿੱਚ ਹੁੰਦੀਆਂ ਹਨ, ਅਤੇ ਇਸੀ ਕਾਰਨ ਅਸੀਂ ਆਪਣੇ ਇਨਪੁਟ ਡਾਟਾ ਨੂੰ ਇਸ ਅਨੁਸਾਰ ਸਕੇਲ/ਨਾਰਮਲਾਈਜ਼ ਕਰਦੇ ਹਾਂ। ਹਾਲਾਂਕਿ, ਇੱਕ ਡੀਪ ਨੈਟਵਰਕ ਦੀ ਟ੍ਰੇਨਿੰਗ ਦੌਰਾਨ, ਇਹ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਵੈਲਿਊਜ਼ ਇਸ ਰੇਂਜ ਤੋਂ ਬਾਹਰ ਚਲੀ ਜਾਣ, ਜਿਸ ਨਾਲ ਟ੍ਰੇਨਿੰਗ ਸਮੱਸਿਆਜਨਕ ਹੋ ਜਾਂਦੀ ਹੈ। ਬੈਚ ਨਾਰਮਲਾਈਜ਼ੇਸ਼ਨ ਲੇਅਰ ਮੌਜੂਦਾ ਮਿਨੀਬੈਚ ਦੀਆਂ ਸਾਰੀਆਂ ਵੈਲਿਊਜ਼ ਲਈ ਐਵਰੇਜ ਅਤੇ ਸਟੈਂਡਰਡ ਡਿਵਿਏਸ਼ਨ ਦੀ ਗਣਨਾ ਕਰਦੀ ਹੈ ਅਤੇ ਨਿਊਰਲ ਨੈਟਵਰਕ ਲੇਅਰ ਵਿੱਚ ਸਿਗਨਲ ਨੂੰ ਪਾਸ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇਸਨੂੰ ਨਾਰਮਲਾਈਜ਼ ਕਰਦੀ ਹੈ। ਇਹ ਡੀਪ ਨੈਟਵਰਕ ਦੀ ਸਥਿਰਤਾ ਨੂੰ ਕਾਫੀ ਹੱਦ ਤੱਕ ਸੁਧਾਰਦਾ ਹੈ।\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ਇਸ ਦਸਤਾਵੇਜ਼ ਦਾ ਅਨੁਵਾਦ ਏਆਈ ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾਵਾਂ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮੱਤਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜਰੂਰੀ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੇ ਉਪਯੋਗ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਜਵਾਬਦੇਹ ਨਹੀਂ ਹਾਂ।\n\n"
]
}
],
@@ -1485,12 +1495,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
- },
- "coopTranslator": {
- "original_hash": "c189abc107848f96051085cc30945129",
- "translation_date": "2025-08-28T07:57:52+00:00",
- "source_file": "lessons/4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb",
- "language_code": "pa"
}
},
"nbformat": 4,
diff --git a/translations/pa/lessons/5-NLP/README.md b/translations/pa/lessons/5-NLP/README.md
index 1f8cc0e5..f2fce7eb 100644
--- a/translations/pa/lessons/5-NLP/README.md
+++ b/translations/pa/lessons/5-NLP/README.md
@@ -1,51 +1,51 @@
-# ਨੈਚਰਲ ਲੈਂਗਵੇਜ ਪ੍ਰੋਸੈਸਿੰਗ
+# ਪ੍ਰਾਕ੍ਰਿਤਿਕ ਭਾਸ਼ਾ ਪ੍ਰਕਿਰਿਆ
-
+
-ਇਸ ਸੈਕਸ਼ਨ ਵਿੱਚ, ਅਸੀਂ **ਨੈਚਰਲ ਲੈਂਗਵੇਜ ਪ੍ਰੋਸੈਸਿੰਗ (NLP)** ਨਾਲ ਸੰਬੰਧਿਤ ਟਾਸਕਾਂ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਨਿਊਰਲ ਨੈਟਵਰਕਸ ਦੀ ਵਰਤੋਂ 'ਤੇ ਧਿਆਨ ਦੇਵਾਂਗੇ। ਬਹੁਤ ਸਾਰੇ NLP ਸਮੱਸਿਆਵਾਂ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਅਸੀਂ ਚਾਹੁੰਦੇ ਹਾਂ ਕਿ ਕੰਪਿਊਟਰ ਹੱਲ ਕਰ ਸਕਣ:
+ਇਸ ਭਾਗ ਵਿੱਚ, ਅਸੀਂ **ਪ੍ਰਾਕ੍ਰਿਤਿਕ ਭਾਸ਼ਾ ਪ੍ਰਕਿਰਿਆ (NLP)** ਨਾਲ ਸੰਬੰਧਤ ਕਾਰਜਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਨਿਊਰਲ ਨੈੱਟਵਰਕਾਂ ਦੀ ਵਰਤੋਂ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਾਂਗੇ। ਐਸੇ ਬਹੁਤ ਸਾਰੇ NLP ਸਮੱਸਿਆਵਾਂ ਹਨ ਜੋ ਅਸੀਂ ਕਮਪਿਊਟਰਾਂ ਨੂੰ ਹੱਲ ਕਰਨ ਯੋਗ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹਾਂ:
-* **ਟੈਕਸਟ ਕਲਾਸੀਫਿਕੇਸ਼ਨ** ਇੱਕ ਆਮ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਸਮੱਸਿਆ ਹੈ ਜੋ ਟੈਕਸਟ ਸੀਕਵੈਂਸ ਨਾਲ ਸੰਬੰਧਿਤ ਹੈ। ਉਦਾਹਰਣਾਂ ਵਿੱਚ ਈਮੇਲ ਸੁਨੇਹਿਆਂ ਨੂੰ ਸਪੈਮ ਅਤੇ ਨੋ-ਸਪੈਮ ਵਜੋਂ ਕਲਾਸੀਫਾਈ ਕਰਨਾ, ਜਾਂ ਲੇਖਾਂ ਨੂੰ ਖੇਡ, ਕਾਰੋਬਾਰ, ਰਾਜਨੀਤੀ ਆਦਿ ਵਜੋਂ ਸ਼੍ਰੇਣੀਬੱਧ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਜਦੋਂ ਅਸੀਂ ਚੈਟ ਬੋਟਸ ਵਿਕਸਿਤ ਕਰਦੇ ਹਾਂ, ਤਾਂ ਅਕਸਰ ਸਾਨੂੰ ਸਮਝਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਕੀ ਕਹਿਣਾ ਚਾਹੁੰਦਾ ਹੈ—ਇਸ ਮਾਮਲੇ ਵਿੱਚ ਅਸੀਂ **ਇੰਟੈਂਟ ਕਲਾਸੀਫਿਕੇਸ਼ਨ** ਨਾਲ ਨਜਿੱਠ ਰਹੇ ਹਾਂ। ਅਕਸਰ, ਇੰਟੈਂਟ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਵਿੱਚ ਸਾਨੂੰ ਕਈ ਸ਼੍ਰੇਣੀਆਂ ਨਾਲ ਨਜਿੱਠਣਾ ਪੈਂਦਾ ਹੈ।
-* **ਸੈਂਟੀਮੈਂਟ ਵਿਸ਼ਲੇਸ਼ਣ** ਇੱਕ ਆਮ ਰਿਗ੍ਰੈਸ਼ਨ ਸਮੱਸਿਆ ਹੈ, ਜਿੱਥੇ ਸਾਨੂੰ ਇੱਕ ਗਿਣਤੀ (ਸੈਂਟੀਮੈਂਟ) ਨੂੰ ਜੁੜਨਾ ਪੈਂਦਾ ਹੈ ਜੋ ਵਾਕ ਦੇ ਅਰਥ ਦੇ ਕਿੰਨੇ ਸਕਾਰਾਤਮਕ/ਨਕਾਰਾਤਮਕ ਹੋਣ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਸੈਂਟੀਮੈਂਟ ਵਿਸ਼ਲੇਸ਼ਣ ਦਾ ਇੱਕ ਹੋਰ ਉੱਚਤਮ ਸੰਸਕਰਣ **ਐਸਪੈਕਟ-ਅਧਾਰਿਤ ਸੈਂਟੀਮੈਂਟ ਵਿਸ਼ਲੇਸ਼ਣ** (ABSA) ਹੈ, ਜਿੱਥੇ ਸਾਨੂੰ ਸੈਂਟੀਮੈਂਟ ਨੂੰ ਪੂਰੇ ਵਾਕ ਨਾਲ ਨਹੀਂ, ਸਗੋਂ ਇਸਦੇ ਵੱਖ-ਵੱਖ ਹਿੱਸਿਆਂ (ਐਸਪੈਕਟਸ) ਨਾਲ ਜੋੜਨਾ ਹੁੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ *ਇਸ ਰੈਸਟੋਰੈਂਟ ਵਿੱਚ, ਮੈਨੂੰ ਖਾਣਾ ਪਸੰਦ ਆਇਆ, ਪਰ ਮਾਹੌਲ ਬਹੁਤ ਖਰਾਬ ਸੀ*।
-* **ਨਾਮਤ ਐਨਟੀਟੀ ਪਛਾਣ** (NER) ਟੈਕਸਟ ਵਿੱਚ ਕੁਝ ਐਨਟੀਟੀਆਂ ਨੂੰ ਕੱਢਣ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਣ ਲਈ, ਸਾਨੂੰ ਇਹ ਸਮਝਣ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ ਕਿ *ਮੈਨੂੰ ਕੱਲ੍ਹ ਪੈਰਿਸ ਜਾਣਾ ਹੈ* ਵਾਕ ਵਿੱਚ *ਕੱਲ੍ਹ* DATE ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਅਤੇ *ਪੈਰਿਸ* LOCATION ਹੈ।
-* **ਕੀਵਰਡ ਕੱਢਣਾ** NER ਦੇ ਸਮਾਨ ਹੈ, ਪਰ ਸਾਨੂੰ ਵਾਕ ਦੇ ਅਰਥ ਲਈ ਮਹੱਤਵਪੂਰਨ ਸ਼ਬਦਾਂ ਨੂੰ ਆਪਣੇ ਆਪ ਕੱਢਣਾ ਹੁੰਦਾ ਹੈ, ਬਿਨਾਂ ਕਿਸੇ ਖਾਸ ਐਨਟੀਟੀ ਕਿਸਮਾਂ ਲਈ ਪ੍ਰੀ-ਟ੍ਰੇਨਿੰਗ ਕੀਤੇ।
-* **ਟੈਕਸਟ ਕਲੱਸਟਰਿੰਗ** ਤਦ ਉਪਯੋਗੀ ਹੋ ਸਕਦੀ ਹੈ ਜਦੋਂ ਅਸੀਂ ਸਮਾਨ ਵਾਕਾਂ ਨੂੰ ਇਕੱਠਾ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ, ਉਦਾਹਰਣ ਲਈ, ਤਕਨੀਕੀ ਸਹਾਇਤਾ ਗੱਲਬਾਤਾਂ ਵਿੱਚ ਸਮਾਨ ਬੇਨਤੀਆਂ।
-* **ਸਵਾਲ ਜਵਾਬ** ਇੱਕ ਮਾਡਲ ਦੀ ਸਮਰੱਥਾ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਉਹ ਖਾਸ ਸਵਾਲ ਦਾ ਜਵਾਬ ਦੇ ਸਕੇ। ਮਾਡਲ ਨੂੰ ਇੱਕ ਟੈਕਸਟ ਪੈਸੇਜ ਅਤੇ ਸਵਾਲ ਇਨਪੁਟ ਵਜੋਂ ਮਿਲਦੇ ਹਨ, ਅਤੇ ਇਸਨੂੰ ਟੈਕਸਟ ਵਿੱਚ ਉਹ ਜਗ੍ਹਾ ਪ੍ਰਦਾਨ ਕਰਨੀ ਹੁੰਦੀ ਹੈ ਜਿੱਥੇ ਸਵਾਲ ਦਾ ਜਵਾਬ ਮੌਜੂਦ ਹੈ (ਜਾਂ, ਕਈ ਵਾਰ, ਜਵਾਬ ਟੈਕਸਟ ਜਨਰੇਟ ਕਰਨਾ ਹੁੰਦਾ ਹੈ)।
-* **ਟੈਕਸਟ ਜਨਰੇਸ਼ਨ** ਮਾਡਲ ਦੀ ਸਮਰੱਥਾ ਹੈ ਕਿ ਉਹ ਨਵਾਂ ਟੈਕਸਟ ਜਨਰੇਟ ਕਰ ਸਕੇ। ਇਸਨੂੰ ਇੱਕ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਟਾਸਕ ਵਜੋਂ ਮੰਨਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜੋ ਕੁਝ *ਟੈਕਸਟ ਪ੍ਰੋਮਪਟ* ਦੇ ਆਧਾਰ 'ਤੇ ਅਗਲਾ ਅੱਖਰ/ਸ਼ਬਦ ਅਨੁਮਾਨ ਲਗਾਉਂਦਾ ਹੈ। ਉੱਚਤਮ ਟੈਕਸਟ ਜਨਰੇਸ਼ਨ ਮਾਡਲ, ਜਿਵੇਂ GPT-3, **ਪ੍ਰੋਮਪਟ ਪ੍ਰੋਗਰਾਮਿੰਗ** ਜਾਂ **ਪ੍ਰੋਮਪਟ ਇੰਜੀਨੀਅਰਿੰਗ** ਵਰਗੇ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੋਰ NLP ਟਾਸਕ ਹੱਲ ਕਰ ਸਕਦੇ ਹਨ।
-* **ਟੈਕਸਟ ਸੰਖੇਪਣ** ਇੱਕ ਤਕਨੀਕ ਹੈ ਜਦੋਂ ਅਸੀਂ ਚਾਹੁੰਦੇ ਹਾਂ ਕਿ ਕੰਪਿਊਟਰ ਲੰਬੇ ਟੈਕਸਟ ਨੂੰ "ਪੜ੍ਹੇ" ਅਤੇ ਇਸਨੂੰ ਕੁਝ ਵਾਕਾਂ ਵਿੱਚ ਸੰਖੇਪ ਕਰੇ।
-* **ਮਸ਼ੀਨ ਅਨੁਵਾਦ** ਨੂੰ ਇੱਕ ਭਾਸ਼ਾ ਵਿੱਚ ਟੈਕਸਟ ਸਮਝਣ ਅਤੇ ਦੂਜੀ ਭਾਸ਼ਾ ਵਿੱਚ ਟੈਕਸਟ ਜਨਰੇਸ਼ਨ ਦੇ ਸੰਯੋਗ ਵਜੋਂ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।
+* **ਟੈਕਸਟ ਵਰਗੀਕਰਨ** ਟੈਕਸਟ ਕ੍ਰਮਾਂਕਾਂ ਨਾਲ ਸੰਬੰਧਿਤ ਇੱਕ ਆਮ ਵਰਗੀਕਰਨ ਸਮੱਸਿਆ ਹੈ। ਉਦਾਹਰਨਾਂ ਵਿੱਚ ਈਮੇਲ ਸੁਨੇਹਿਆਂ ਨੂੰ ਸਪੈਮ ਵਾਂਗ ਵੱਖ ਕਰਨਾ ਜਾਂ ਲੇਖਾਂ ਨੂੰ ਖੇਡ, ਕਾਰੋਬਾਰ, ਰਾਜਨੀਤੀ ਆਦਿ ਕਿਸਮਾਂ 'ਚ ਵਰਗੀਕਰਨ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ। ਪਰਲੇ, ਜਦੋਂ ਚੈਟ ਬੋਟ ਵਿਕਸਤ ਕਰਦੇ ਹਾਂ, ਅਸੀਂ ਅਕਸਰ ਸਮਝਣਾ ਚਾਹੁੰਦੇ ਹਾਂ ਕਿ ਉਪਭੋਗਤਾ ਕੀ ਕਹਿਣਾ ਚਾਹੁੰਦਾ ਸੀ — ਇਸ ਸੰਦਰਭ ਵਿੱਚ ਅਸੀਂ **ਮਕਸਦ ਵਰਗੀਕਰਨ** ਨਾਲ ਨਜਿੱਠ ਰਹੇ ਹਾਂ। ਅਕਸਰ, ਮਕਸਦ ਵਰਗੀਕਰਨ ਵਿੱਚ ਸਾਨੂੰ ਕਈ ਸ਼੍ਰੇਣੀਆਂ ਨਾਲ ਨਜਿੱਠਣਾ ਪੈਂਦਾ ਹੈ।
+* **ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ** ਇੱਕ ਆਮ ਰੈਗ੍ਰੈਸ਼ਨ ਸਮੱਸਿਆ ਹੈ, ਜਿੱਥੇ ਸਾਨੂੰ ਇੱਕ ਨੰਬਰ (ਭਾਵਨਾ) ਨਿਰਧਾਰਿਤ ਕਰਨੀ ਹੁੰਦੀ ਹੈ ਜੋ ਕਿ ਇੱਕ ਵਾਕ ਦੇ ਅਰਥ ਦੀ ਕਿੰਨੀ ਸਕਾਰਾਤਮਕ/ਨਕਾਰਾਤਮਕ ਹੈ, ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ ਦਾ ਇੱਕ ਉੱਚ-ਪੱਧਰੀ ਸੰਸਕਰਨ ਹੈ **ਪੱਖ-ਆਧਾਰਿਤ ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ** (ABSA), ਜਿੱਥੇ ਅਸੀਂ ਭਾਵਨਾ ਨੂੰ ਪੂਰੇ ਵਾਕ ਨੂੰ ਨਹੀਂ, ਬਲਕਿ ਉਸ ਦੇ ਵੱਖ-ਵੱਖ ਹਿੱਸਿਆਂ (ਪੱਖਾਂ) ਨੂੰ ਅੰਕਿਤ ਕਰਦੇ ਹਾਂ, ਉਦਾਹਰਨ ਲਈ *ਇਸ ਰੈਸਟੋਰੈਂਟ ਵਿੱਚ, ਮੈਨੂੰ ਖਾਣ-ਪੀਣ ਪਸੰਦ ਆਇਆ, ਪਰ ਵਾਤਾਵਰਣ ਬਦਤਰ ਸੀ*।
+* **ਨਾਮਿਤ ਇਕਾਈ ਪਛਾਣ** (NER) ਐਸਾ ਸਮੱਸਿਆ ਹੈ ਜਿਸ ਵਿਚੋਂ ਟੈਕਸਟ ਵਿੱਚੋਂ ਕੁਝ ਵਿਸ਼ੇਸ਼ ਇਕਾਈਆਂ ਨੂੰ ਨਿਕਾਲਿਆ ਜਾਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਵਜੋਂ, ਸਾਨੂੰ ਸਮਝਣਾ ਪੈਂਦਾ ਹੈ ਕਿ ਫਰਜ਼ ਕਰੋ ਸਤਰ *ਮੈਨੂੰ ਕੱਲ੍ਹ ਪੈਰਿਸ ਜਾਣਾ ਹੈ* ਵਿੱਚ ਸ਼ਬਦ *ਕੱਲ੍ਹ* ਦਿਨਾਂਕ (DATE) ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਅਤੇ *ਪੈਰਿਸ* ਸਥਿਤੀ (LOCATION) ਹੈ।
+* **ਕੁੰਜੀ ਸ਼ਬਦ ਸੰਗ੍ਰਹਿ** NER ਦੇ ਲਈ ਸਮਾਨ ਹੈ, ਪਰ ਸਾਨੂੰ ਐਸੇ ਸ਼ਬਦ ਆਪਣੇ-ਆਪ ਵਿੱਚ ਨਿਕਾਲਣੇ ਹਨ ਜੋ ਵਾਕ ਦੇ ਅਰਥ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹਨ, ਕਿਸੇ ਵਿਸ਼ੇਸ਼ ਇਕਾਈ ਪ੍ਰਕਾਰ ਲਈ ਪਹਿਲਾਂ ਪ੍ਰਸ਼ਿਖਣ ਦੇ ਬਗੈਰ।
+* **ਟੈਕਸਟ ਕੁਲਸੰਗ੍ਰਹਿ** ਉਸ ਸਮੇਂ ਸਹਾਇਕ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਅਸੀਂ ਮਿਲਦੇ-ਜੁਲਦੇ ਵਾਕਾਂ ਨੂੰ ਇਕੱਠੇ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ, ਉਦਾਹਰਨ ਵਜੋਂ, ਤਕਨੀਕੀ ਸਹਾਇਤਾ ਗੱਲਬਾਤਾਂ ਵਿੱਚ ਇੱਕੋ ਜਿਹੀ ਬੇਨਤੀਆਂ।
+* **ਸਵਾਲ ਦਾ ਜਵਾਬ ਦੇਣਾ** ਇੱਕ ਮਾਡਲ ਦੀ ਸਮਰੱਥਾ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਉਹ ਕਿਸੇ ਵਿਸ਼ੇਸ਼ ਸਵਾਲ ਦਾ ਉੱਤਰ ਦੇ ਸਕੇ। ਮਾਡਲ ਨੂੰ ਇੱਕ ਟੈਕਸਟ ਪਾਸੇਜ ਅਤੇ ਇੱਕ ਸਵਾਲ ਦਿੰਦੇ ਹਨ, ਅਤੇ ਉਸ ਨੂੰ ਉਸ ਟੈਕਸਟ ਵਿੱਚ ਇਕ ਥਾਂ ਦੇਣੀ ਹੁੰਦੀ ਹੈ ਜਿੱਥੇ ਸਵਾਲ ਦਾ ਜਵਾਬ ਸ਼ਾਮਿਲ ਹੈ (ਜਾਂ, ਕਈ ਵਾਰੀ, ਜਵਾਬ ਟੈਕਸਟ ਤਿਆਰ ਕਰਨਾ)।
+* **ਟੈਕਸਟ ਪੈਦਾ ਕਰਨਾ** ਮਾਡਲ ਦੀ ਇੱਕ ਸਮਰੱਥਾ ਹੈ ਜਿਸ ਵਿੱਚ ਉਹ ਨਵਾਂ ਟੈਕਸਟ ਪੈਦਾ ਕਰ ਸਕਦਾ ਹੈ। ਇਸਨੂੰ ਇੱਕ ਵਰਗੀਕਰਨ ਕਾਮ ਸਮਝਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜੋ ਕੁਝ *ਟੈਕਸਟ ਪ੍ਰਾਂਪਟ* ਦੇ ਆਧਾਰ 'ਤੇ ਅਗਲਾ ਅੱਖਰ/ਸ਼ਬਦ ਭਵਿੱਖਬਾਣੀ ਕਰਦਾ ਹੈ। ਇੱਜ਼ਤਦਾਰ ਟੈਕਸਟ ਜਨਰੇਸ਼ਨ ਮਾਡਲ, ਜਿਵੇਂ GPT-3, ਹੋਰ NLP ਕਾਰਜਾਂ ਨੂੰ ਹੱਲ ਕਰਨ ਦੇ ਸਮਰੱਥ ਹਨ ਜਿਵੇਂ ਕਿ ਵਰਗੀਕਰਨ, ਜੋ [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 ਤਰੀਕੇ [ਨੈਚਰਲ ਲੈਂਗਵੇਜ ਪ੍ਰੋਸੈਸਿੰਗ ਟੂਲਕਿਟ (NLTK)](https://www.nltk.org) ਪਾਇਥਨ ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ ਲਾਗੂ ਕੀਤੇ ਗਏ ਹਨ। ਇੱਕ ਸ਼ਾਨਦਾਰ [NLTK ਬੁੱਕ](https://www.nltk.org/book/) ਆਨਲਾਈਨ ਉਪਲਬਧ ਹੈ ਜੋ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਕਿਵੇਂ ਵੱਖ-ਵੱਖ NLP ਟਾਸਕ NLTK ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੱਲ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ।
+> ਬਹੁਤ ਸਾਰੇ ਕਲਾਸਿਕ NLP ਤਰੀਕੇ [Natural Language Processing Toolkit (NLTK)](https://www.nltk.org) ਪਾਇਥਨ ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ ਲਾਗੂ ਕੀਤੇ ਗਏ ਹਨ। ਇੱਕ ਸ਼ਾਨਦਾਰ [NLTK ਕਿਤਾਬ](https://www.nltk.org/book/) ਆਨਲਾਈਨ ਉਪਲਬਧ ਹੈ ਜੋ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਵੱਖ-ਵੱਖ NLP ਕਾਰਜ NLTK ਦੀ ਵਰਤੋਂ ਨਾਲ ਕਿਵੇਂ ਹੱਲ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ।
-ਸਾਡੇ ਕੋਰਸ ਵਿੱਚ, ਅਸੀਂ ਮੁੱਖ ਤੌਰ 'ਤੇ 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 ਮੈਮਰੀ ਨੂੰ ਸਿਰਫ ਜਦੋਂ ਲੋੜ ਹੋਵੇ ਤਦ ਹੀ ਅਲੋਕੇਟ ਕਰਨ ਲਈ ਸੰਰਚਿਤ ਕਰ ਸਕਦੇ ਹੋ।
-* **ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ**: ਟੈਂਸਰਫਲੋ ਨੂੰ GPU ਮੈਮਰੀ ਅਲੋਕੇਸ਼ਨ ਨੂੰ ਸਿਰਫ ਜਦੋਂ ਲੋੜ ਹੋਵੇ ਤਦ ਵਧਾਉਣ ਲਈ, ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਆਪਣੇ ਨੋਟਬੁੱਕਸ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ:
+ਇਸ ਭਾਗ ਵਿੱਚ, ਕੁਝ ਉਦਾਹਰਨਾਂ ਵਿੱਚ ਅਸੀਂ ਕਾਫ਼ੀ ਵੱਡੇ ਮਾਡਲਾਂ ਨੂੰ ਟ੍ਰੇਨ ਕਰਾਂਗੇ।
+* **GPU-ਯੋਗ ਕੰਪਿਊਟਰ ਦੀ ਵਰਤੋਂ ਕਰੋ**: ਆਪਣੇ ਨੋਟਬੁੱਕ ਨੂੰ GPU-ਯੋਗ ਕੰਪਿਊਟਰ 'ਤੇ ਚਲਾਉਣਾ ਸਲਾਹਯੋਗ ਹੈ ਤਾਂ ਜੋ ਵੱਡੇ ਮਾਡਲਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਸਮੇਂ ਇੰਤਜ਼ਾਰ ਘਟ ਸਕੇ।
+* **GPU ਮੈਮੋਰੀ ਸੀਮਾਵਾਂ**: GPU 'ਤੇ ਦੌੜਾਉਣ ਨਾਲ ਤੁਸੀਂ ਐਸੀਆਂ ਸਥਿਤੀਆਂ ਦਾ ਸਾਹਮਣਾ ਕਰ ਸਕਦੇ ਹੋ ਜਿਥੇ GPU ਮੈਮੋਰੀ ਖਤਮ ਹੋ ਜਾਵੇ, ਖ਼ਾਸ ਕਰਕੇ ਵੱਡੇ ਮਾਡਲਾਂ ਨੂੰ ਟ੍ਰੇਨ ਕਰਨ ਵੇਲੇ।
+* **GPU ਮੈਮੋਰੀ ਦੀ ਖਪਤ**: ਟ੍ਰੇਨਿੰਗ ਦੇ ਦੌਰਾਨ ਖਪਤ ਕੀਤੀ ਜਾਂਦੀ GPU ਮੈਮੋਰੀ ਦੀ ਮਾਤਰਾ ਵੱਖ-ਵੱਖ ਤੱਤਾਂ ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਮਿਨੀਬੈਚ ਆਕਾਰ।
+* **ਮਿਨੀਬੈਚ ਆਕਾਰ ਘਟਾਓ**: ਜੇ ਤੁਸੀਂ GPU ਮੈਮੋਰੀ ਸੰਬੰਧੀ ਸਮੱਸਿਆਵਾਂ ਦਾ ਸਾਹਮਣਾ ਕਰਦੇ ਹੋ, ਤਾਂ ਆਪਣੇ ਕੋਡ ਵਿੱਚ ਮਿਨੀਬੈਚ ਆਕਾਰ ਘਟਾਉਣ ਦੀ ਸੋਚੋ।
+* **ਟੈਂਸਰਫਲੋ GPU ਮੈਮੋਰੀ ਰਿਹਾਈ**: ਟੈਂਸਰਫਲੋ ਦੇ ਕੁਝ ਪੁਰਾਣੇ ਸੰਸਕਰਣ ਇਕ Python ਕਰਨਲ ਵਿੱਚ ਕਈ ਮਾਡਲ ਟ੍ਰੇਨ ਕਰਨ ਤੇ GPU ਮੈਮੋਰੀ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਮੁਕਤ ਨਹੀਂ ਕਰਦੇ। GPU ਮੈਮੋਰੀ ਦੀ ਵਰਤੋਂ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕੇ ਨਾਲ ਸੰਭਾਲਣ ਲਈ, ਤੁਸੀਂ ਟੈਂਸਰਫਲੋ ਨੂੰ ਸਿਰਫ ਜਰੂਰਤ ਪੈਣ 'ਤੇ GPU ਮੈਮੋਰੀ ਵੰਡਣ ਲਈ ਕਾਂਫਿਗਰ ਕਰ ਸਕਦੇ ਹੋ।
+* **ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ**: ਟੈਂਸਰਫਲੋ ਨੂੰ ਕੇਵਲ ਜਰੂਰਤ ਪੈਣ 'ਤੇ GPU ਮੈਮੋਰੀ ਵਧਾਉਣ ਲਈ ਸੈਟ ਕਰਨ ਲਈ, ਆਪਣੇ ਨੋਟਬੁੱਕਾਂ ਵਿੱਚ ਹੇਠ ਲਿਖਿਆ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ:
```python
physical_devices = tf.config.list_physical_devices('GPU')
@@ -53,17 +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) 'ਤੇ ਜਾਓ।
+ਜੇ ਤੁਸੀਂ ਕਲਾਸਿਕ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਨਜ਼ਰੀਏ ਤੋਂ 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)
-* [ਜਨਰੇਟਿਵ ਨੈਟਵਰਕਸ](17-GenerativeNetworks/README.md)
-* [ਟ੍ਰਾਂਸਫਾਰਮਰਸ](18-Transformers/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) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਹਾਲਾਂਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚੱਜੇਪਣ ਹੋ ਸਕਦੇ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।
\ No newline at end of file
+---
+
+
+**ਅਸਵੀਕਾਰੋਪਣ**:
+ਇਸ ਦਸਤਾਵੇਜ਼ ਦਾ ਅਨੁਵਾਦ ਏਆਈ ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾਵਾਂ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮੱਤਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜਰੂਰੀ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੇ ਉਪਯੋਗ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਜਵਾਬਦੇਹ ਨਹੀਂ ਹਾਂ।
+
\ No newline at end of file
diff --git a/translations/pa/lessons/6-Other/23-MultiagentSystems/README.md b/translations/pa/lessons/6-Other/23-MultiagentSystems/README.md
index 9f663ec3..7572551a 100644
--- a/translations/pa/lessons/6-Other/23-MultiagentSystems/README.md
+++ b/translations/pa/lessons/6-Other/23-MultiagentSystems/README.md
@@ -1,38 +1,38 @@
# ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮ
-ਬੁੱਧੀਮਾਨੀ ਹਾਸਲ ਕਰਨ ਦੇ ਸੰਭਾਵਿਤ ਤਰੀਕਿਆਂ ਵਿੱਚੋਂ ਇੱਕ ਤਰੀਕਾ **ਉਭਰਤਾ** (ਜਾਂ **ਸਹਿਯੋਗੀ**) ਪਹੁੰਚ ਹੈ, ਜੋ ਇਸ ਗੱਲ 'ਤੇ ਆਧਾਰਿਤ ਹੈ ਕਿ ਕਈ ਸਧਾਰਣ ਏਜੰਟਾਂ ਦੇ ਮਿਲੇ-ਜੁਲੇ ਵਿਵਹਾਰ ਨਾਲ ਪੂਰੇ ਸਿਸਟਮ ਦਾ ਕੁੱਲ ਵਿਵਹਾਰ ਜ਼ਿਆਦਾ ਜਟਿਲ (ਜਾਂ ਬੁੱਧੀਮਾਨ) ਹੋ ਸਕਦਾ ਹੈ। ਸਿਧਾਂਤਕ ਤੌਰ 'ਤੇ, ਇਹ [ਸੰਯੁਕਤ ਬੁੱਧੀਮਾਨੀ](https://en.wikipedia.org/wiki/Collective_intelligence), [ਉਭਰਤਾਵਾਦ](https://en.wikipedia.org/wiki/Global_brain) ਅਤੇ [ਵਿਕਾਸੀ ਸਾਇਬਰਨੈਟਿਕਸ](https://en.wikipedia.org/wiki/Global_brain) ਦੇ ਸਿਧਾਂਤਾਂ 'ਤੇ ਆਧਾਰਿਤ ਹੈ, ਜੋ ਕਹਿੰਦੇ ਹਨ ਕਿ ਉੱਚ-ਪੱਧਰ ਦੇ ਸਿਸਟਮ ਨੂੰ ਕੁਝ ਵਾਧੂ ਮੁੱਲ ਮਿਲਦਾ ਹੈ ਜਦੋਂ ਉਹ ਠੀਕ ਤਰੀਕੇ ਨਾਲ ਹੇਠਲੇ ਪੱਧਰ ਦੇ ਸਿਸਟਮਾਂ ਤੋਂ ਜੋੜੇ ਜਾਂਦੇ ਹਨ (ਜਿਸਨੂੰ *ਮੈਟਾਸਿਸਟਮ ਟ੍ਰਾਂਜ਼ੀਸ਼ਨ ਦਾ ਸਿਧਾਂਤ* ਕਿਹਾ ਜਾਂਦਾ ਹੈ)।
+ਬੁੱਧੀਮਤਾ ਹਾਸਲ ਕਰਨ ਦੇ ਸੰਭਾਵਿਤ ਤਰੀਕਿਆਂ ਵਿੱਚੋਂ ਇੱਕ ਸੰਭਵ ਤਰੀਕਾ ਹੈ ਕਿਹਾ ਜਾਂਦਾ ਹੈ **ਉਭਰਣ ਵਾਲਾ** (ਜਾਂ **ਸੰਯੁਕਤ**) ਪਹੁੰਚ, ਜੋ ਇਸ ਗੱਲ 'ਤੇ ਆਧਾਰਤ ਹੈ ਕਿ ਕਈ ਸਾਧਾਰਣ ਏਜੰਟਾਂ ਦੇ ਮਿਲੇ ਜੁਲੇ ਵਰਤਾਰਾ ਨਾਲ ਪੂਰੇ ਸਿਸਟਮ ਦਾ ਕੁੱਲ ਵਰਤਾਰਾ ਹੋਰ ਵੱਧ ਜਟਿਲ (ਜਾਂ ਬੁੱਧੀਮਾਨ) ਹੁੰਦਾ ਹੈ। ਸਿਧਾਂਤਕ ਤੌਰ 'ਤੇ, ਇਹ [ਸੰਯੁਕਤ ਬੁੱਧਿਮਤਾ](https://en.wikipedia.org/wiki/Collective_intelligence), [ਉਭਰਣ ਵਾਦ](https://en.wikipedia.org/wiki/Global_brain) ਅਤੇ [ਵਿਕਾਸੀ ਸਾਈਬਰਨੈਟਿਕਸ](https://en.wikipedia.org/wiki/Global_brain) ਦੇ ਸਿਧਾਂਤਾਂ 'ਤੇ ਆਧਾਰਤ ਹੈ, ਜੋ ਕਹਿੰਦੇ ਹਨ ਕਿ ਉੱਚ-ਸਤ੍ਹਰੀ ਸਿਸਟਮ ਕੁਝ ਜੋੜ-ਮੂਲ ਕਦਰ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹਨ ਜਦੋਂ ਉਹ ਠੀਕ ਢੰਗ ਨਾਲ ਨੀਚਲੇ-ਸਤ੍ਹਰੀ ਸਿਸਟਮਾਂ ਤੋਂ ਬਣਾਏ ਜਾਂਦੇ ਹਨ (ਜੋ ਕਿਹਾ ਜਾਂਦਾ ਹੈ *ਮੈਟਾਸਿਸਟਮ ਤਬਦੀਲੀ ਦਾ ਸਿਧਾਂਤ*)।
## [ਪ੍ਰੀ-ਲੈਕਚਰ ਕਵਿਜ਼](https://ff-quizzes.netlify.app/en/ai/quiz/45)
-**ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮਾਂ** ਦੀ ਦਿਸ਼ਾ 1990 ਦੇ ਦਹਾਕੇ ਵਿੱਚ ਇੰਟਰਨੈਟ ਅਤੇ ਵੰਡੇ ਹੋਏ ਸਿਸਟਮਾਂ ਦੇ ਵਾਧੇ ਦੇ ਜਵਾਬ ਵਜੋਂ AI ਵਿੱਚ ਉਭਰੀ। ਕਲਾਸਿਕ AI ਦੀਆਂ ਕਿਤਾਬਾਂ ਵਿੱਚੋਂ ਇੱਕ, [Artificial Intelligence: A Modern Approach](https://en.wikipedia.org/wiki/Artificial_Intelligence:_A_Modern_Approach), ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮਾਂ ਦੇ ਨਜ਼ਰੀਏ ਤੋਂ ਕਲਾਸਿਕ AI ਨੂੰ ਵੇਖਣ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਦੀ ਹੈ।
+**ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮ** ਦੀ ਦਿਸ਼ਾ 1990 ਦੇ ਦਹਾਕੇ ਵਿੱਚ ਆਰਟੀਫੀਸ਼ੀਅਲ ਇੰਟੈਲੀਜੈਂਸ ਵਿੱਚ ਉਭਰੀ ਸੀ, ਇੰਟਰਨੈਟ ਅਤੇ ਵੰਡੇ ਹੋਏ ਸਿਸਟਮਾਂ ਦੀ ਵਾਧੇ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਦਿਆਂ। ਇੱਕ ਪਰੰਪਰਾਗਤ AI ਕਿਤਾਬ, [Artificial Intelligence: A Modern Approach](https://en.wikipedia.org/wiki/Artificial_Intelligence:_A_Modern_Approach), ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮਾਂ ਦੇ ਨਜ਼ਰੀਏ ਤੋਂ ਕਲਾਸਿਕ AI ਦੇ ਨਜ਼ਰੀਏ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਦੀ ਹੈ।
-ਮਲਟੀ-ਏਜੰਟ ਪਹੁੰਚ ਦਾ ਕੇਂਦਰ **ਏਜੰਟ** ਦੀ ਧਾਰਣਾ ਹੈ - ਇੱਕ ਐਕਾਈ ਜੋ ਕਿਸੇ **ਵਾਤਾਵਰਣ** ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ, ਜਿਸਨੂੰ ਇਹ ਸਮਝ ਸਕਦੀ ਹੈ ਅਤੇ ਇਸ 'ਤੇ ਕਾਰਵਾਈ ਕਰ ਸਕਦੀ ਹੈ। ਇਹ ਇੱਕ ਬਹੁਤ ਹੀ ਵਿਸਤ੍ਰਿਤ ਪਰਿਭਾਸ਼ਾ ਹੈ, ਅਤੇ ਇਸ ਵਿੱਚ ਕਈ ਵੱਖ-ਵੱਖ ਕਿਸਮਾਂ ਅਤੇ ਵਰਗਬੰਧੀਆਂ ਦੇ ਏਜੰਟ ਹੋ ਸਕਦੇ ਹਨ:
+ਮਲਟੀ-ਏਜੰਟ ਪਹੁੰਚ ਦਾ ਕੇਂਦਰ ਹੈ **ਏਜੰਟ** ਦਾ ਸੰਕਲਪ - ਇੱਕ ਐਸੀ ਇਕਾਈ ਜੋ ਕਿਸੇ **ਮਾਹੌਲ** ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ, ਜਿਸਨੂੰ ਇਹ ਸਮਝ ਸਕਦੀ ਹੈ ਅਤੇ ਜਿਸ ਉੱਤੇ ਕਾਰਵਾਈ ਕਰ ਸਕਦੀ ਹੈ। ਇਹ ਇਕ ਬਹੁਤ ਵਿਆਪਕ ਪਰਿਭਾਸ਼ਾ ਹੈ, ਅਤੇ ਏਜੰਟਾਂ ਦੀ ਕਈ ਕਿਸਮਾਂ ਅਤੇ ਵਰਗੀਕਰਨ ਹੋ ਸਕਦੇ ਹਨ:
-* ਉਨ੍ਹਾਂ ਦੀ ਤਰਕ ਕਰਨ ਦੀ ਯੋਗਤਾ ਦੇ ਅਧਾਰ 'ਤੇ:
- - **ਪ੍ਰਤੀਕ੍ਰਿਆਸ਼ੀਲ** ਏਜੰਟ ਆਮ ਤੌਰ 'ਤੇ ਸਧਾਰਣ ਬੇਨਤੀ-ਜਵਾਬ ਕਿਸਮ ਦੇ ਵਿਵਹਾਰ ਵਾਲੇ ਹੁੰਦੇ ਹਨ
- - **ਵਿਚਾਰਸ਼ੀਲ** ਏਜੰਟ ਕਿਸੇ ਤਰ੍ਹਾਂ ਦੇ ਤਰਕਸ਼ੀਲ ਤਰਕ ਅਤੇ/ਜਾਂ ਯੋਜਨਾ ਬਣਾਉਣ ਦੀ ਯੋਗਤਾ ਵਰਤਦੇ ਹਨ
-* ਜਿੱਥੇ ਏਜੰਟ ਆਪਣਾ ਕੋਡ ਚਲਾਉਂਦੇ ਹਨ:
- - **ਸਥਿਰ** ਏਜੰਟ ਇੱਕ ਸਮਰਪਿਤ ਨੈੱਟਵਰਕ ਨੋਡ 'ਤੇ ਕੰਮ ਕਰਦੇ ਹਨ
- - **ਮੋਬਾਈਲ** ਏਜੰਟ ਆਪਣੇ ਕੋਡ ਨੂੰ ਨੈੱਟਵਰਕ ਨੋਡਾਂ ਵਿੱਚ ਹਿਲਾ ਸਕਦੇ ਹਨ
-* ਉਨ੍ਹਾਂ ਦੇ ਵਿਵਹਾਰ ਦੇ ਅਧਾਰ 'ਤੇ:
- - **ਨਿਰਜੀਵ ਏਜੰਟ** ਵਿਸ਼ੇਸ਼ ਲਕਸ਼ ਨਹੀਂ ਰੱਖਦੇ। ਇਸ ਤਰ੍ਹਾਂ ਦੇ ਏਜੰਟ ਬਾਹਰੀ ਉਤਪ੍ਰੇਰਕਾਂ 'ਤੇ ਪ੍ਰਤੀਕ੍ਰਿਆ ਕਰ ਸਕਦੇ ਹਨ, ਪਰ ਖੁਦ ਕੋਈ ਕਾਰਵਾਈ ਸ਼ੁਰੂ ਨਹੀਂ ਕਰਨਗੇ।
- - **ਸਕ੍ਰਿਆ ਏਜੰਟ** ਕੁਝ ਲਕਸ਼ ਰੱਖਦੇ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਉਹ ਪੂਰਾ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਨ
- - **ਸੰਜੋਗੀ ਏਜੰਟ** ਜਟਿਲ ਯੋਜਨਾ ਬਣਾਉਣ ਅਤੇ ਤਰਕਸ਼ੀਲਤਾ ਸ਼ਾਮਲ ਕਰਦੇ ਹਨ
+* ਉਹਨਾਂ ਦੀ ਤਰੱਕੀ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਅਨੁਸਾਰ:
+ - **ਪ੍ਰਤੀਕਿਰਿਆਤਮਕ** ਏਜੰਟ ਆਮ ਤੌਰ 'ਤੇ ਸਾਦਾ ਬੇਨਤੀ-ਜਵਾਬ਼ ਵਰਗਾ ਵਰਤਾਰਾ ਰੱਖਦੇ ਹਨ
+ - **ਵਿਚਾਰਸ਼ੀਲ** ਏਜੰਟ ਕਿਸੇ ਤਰ੍ਹਾਂ ਦੀ ਤਰਕਸ਼ਕਤੀ ਅਤੇ / ਜਾਂ ਯੋਜਨਾ ਬਣਾਉਣ ਦੀ ਸਮਰੱਥਾ ਰੱਖਦੇ ਹਨ
+* ਉਹਨਾਂ ਦੀ ਕੋਡ ਕਿੱਥੇ ਚਲਾਈ ਜਾਂਦੀ ਹੈ:
+ - **ਸਥਿਰ** ਏਜੰਟ ਇਕ ਨਿਰਧਾਰਤ ਨੈੱਟਵਰਕ ਨੋਡ 'ਤੇ ਕੰਮ ਕਰਦੇ ਹਨ
+ - **ਮੋਬਾਈਲ** ਏਜੰਟ ਆਪਣਾ ਕੋਡ ਨੈੱਟਵਰਕ ਨੋਡਾਂ ਵਿਚਕਾਰ ਹਿਲਾ ਸਕਦੇ ਹਨ
+* ਉਹਨਾਂ ਦੀ ਵਰਤਾਰਾ ਅਨੁਸਾਰ:
+ - **ਨਿਸ਼ਕ੍ਰਿਯ ਏਜੰਟ** ਵਧੀਕ ਮਕਸਦ ਨਹੀਂ ਰੱਖਦੇ। ਇਸ ਤਰ੍ਹਾਂ ਦੇ ਏਜੰਟ ਬਾਹਰੀ ਉਤੇਜਨਾਵਾਂ ਨੂੰ ਜਵਾਬ ਦੇ ਸਕਦੇ ਹਨ, ਪਰ ਖੁਦ ਦਿਓ ਕਾਰਵਾਈਆਂ ਸ਼ੁਰੂ ਨਹੀਂ ਕਰਦੇ।
+ - **ਸਰਗਰਮ ਏਜੰਟ** ਦੇ ਕੁਝ ਲਕੜੇ ਹਨ ਜਿਨ੍ਹਾਂ ਦਾ ਉਹ ਪਿੱਛਾ ਕਰਦੇ ਹਨ
+ - **ਸੰਜਾਣੂਕ ਏਜੰਟ** ਵਿੱਚ ਜਟਿਲ ਯੋਜਨਾ ਅਤੇ ਤਰਕ ਸ਼ਾਮਿਲ ਹੁੰਦੀ ਹੈ
-ਅੱਜਕੱਲ੍ਹ ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮ ਕਈ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਵਰਤੇ ਜਾਂਦੇ ਹਨ:
+ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮ ਅੱਜਕੱਲ੍ਹ ਕਈ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਵਰਤੇ ਜਾਂਦੇ ਹਨ:
-* ਖੇਡਾਂ ਵਿੱਚ, ਕਈ ਗੈਰ-ਖਿਡਾਰੀ ਪਾਤਰ ਕਿਸੇ ਤਰ੍ਹਾਂ ਦੀ AI ਵਰਤਦੇ ਹਨ, ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਬੁੱਧੀਮਾਨ ਏਜੰਟ ਮੰਨਿਆ ਜਾ ਸਕਦਾ ਹੈ
-* ਵੀਡੀਓ ਉਤਪਾਦਨ ਵਿੱਚ, ਭੀੜਾਂ ਵਾਲੇ ਜਟਿਲ 3D ਦ੍ਰਿਸ਼ਾਂ ਨੂੰ ਰੇਂਡਰ ਕਰਨ ਲਈ ਆਮ ਤੌਰ 'ਤੇ ਮਲਟੀ-ਏਜੰਟ ਸਿਮੂਲੇਸ਼ਨ ਵਰਤੀ ਜਾਂਦੀ ਹੈ
-* ਸਿਸਟਮ ਮਾਡਲਿੰਗ ਵਿੱਚ, ਮਲਟੀ-ਏਜੰਟ ਪਹੁੰਚ ਨੂੰ ਕਿਸੇ ਜਟਿਲ ਮਾਡਲ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਸਿਮੂਲੇਟ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਉਦਾਹਰਣ ਲਈ, ਮਲਟੀ-ਏਜੰਟ ਪਹੁੰਚ ਨੂੰ ਦੁਨੀਆ ਭਰ ਵਿੱਚ COVID-19 ਬਿਮਾਰੀ ਦੇ ਫੈਲਾਅ ਦੀ ਪੇਸ਼ਗੋਈ ਕਰਨ ਲਈ ਸਫਲਤਾਪੂਰਵਕ ਵਰਤਿਆ ਗਿਆ ਹੈ। ਇਸੇ ਤਰ੍ਹਾਂ ਦੀ ਪਹੁੰਚ ਨੂੰ ਸ਼ਹਿਰ ਵਿੱਚ ਟ੍ਰੈਫਿਕ ਨੂੰ ਮਾਡਲ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਅਤੇ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ ਕਿ ਟ੍ਰੈਫਿਕ ਨਿਯਮਾਂ ਵਿੱਚ ਬਦਲਾਅ 'ਤੇ ਇਹ ਕਿਵੇਂ ਪ੍ਰਤੀਕ੍ਰਿਆ ਕਰਦਾ ਹੈ।
-* ਜਟਿਲ ਆਟੋਮੇਸ਼ਨ ਸਿਸਟਮਾਂ ਵਿੱਚ, ਹਰ ਡਿਵਾਈਸ ਇੱਕ ਸੁਤੰਤਰ ਏਜੰਟ ਵਜੋਂ ਕੰਮ ਕਰ ਸਕਦਾ ਹੈ, ਜੋ ਪੂਰੇ ਸਿਸਟਮ ਨੂੰ ਘੱਟ ਮੋਨੋਲਿਥਿਕ ਅਤੇ ਜ਼ਿਆਦਾ ਮਜ਼ਬੂਤ ਬਣਾਉਂਦਾ ਹੈ।
+* ਖੇਡਾਂ ਵਿੱਚ, ਕਈ ਗੈਰ-ਖਿਡਾਰੀ ਪਾਤਰ (NPCs) ਕਿਸੇ ਕਿਸਮ ਦੀ AI ਵਰਤਦੇ ਹਨ ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਬੁੱਧੀਮਾਨ ਏਜੰਟ ਮੰਨਿਆ ਜਾ ਸਕਦਾ ਹੈ
+* ਵੀਡੀਓ ਉਤਪਾਦਨ ਵਿੱਚ, ਜਟਿਲ 3D ਸੈਨ ਦੇ ਰੈਂਡਰਿੰਗ ਜਿੱਥੇ ਭੀੜ ਹੁੰਦੀ ਹੈ, ਆਮ ਤੌਰ 'ਤੇ ਮਲਟੀ-ਏਜੰਟ ਸੰਮੇਲਨ ਵਰਤ ਕੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ
+* ਸਿਸਟਮ ਮਾਡਲਿੰਗ ਵਿੱਚ, ਮਲਟੀ-ਏਜੰਟ ਪਹੁੰਚ ਜਟਿਲ ਮਾਡਲ ਦੇ ਵਰਤਾਰਾ ਦੀ ਸਿਮੂਲੇਸ਼ਨ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਉਦਾਹਰਣ ਵਜੋਂ, ਮਲਟੀ-ਏਜੰਟ ਪਹੁੰਚ ਨੂੰ ਸੰਸਾਰ ਭਰ ਵਿੱਚ ਕੋਵਿਡ-19 ਰੋਗ ਦੇ ਫੈਲਾਅ ਦੀ ਪੇਸ਼ਗੋਈ ਕਰਨ ਲਈ ਸਫਲਤਾਪੂਰਵਕ ਵਰਤਿਆ ਗਿਆ ਹੈ। ਇਸੇ ਤਰ੍ਹਾਂ ਦੀ ਪਹੁੰਚ ਸ਼ਹਿਰ ਵਿੱਚ ਟ੍ਰੈਫਿਕ ਮਾਡਲ ਕਰਨ ਅਤੇ ਵਿਭਿੰਨ ਟ੍ਰੈਫਿਕ ਨਿਯਮਾਂ ਦੇ ਬਦਲਾਅ ਨੂੰ ਦੇਖਣ ਲਈ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ।
+* ਜਟਿਲ ਆਟੋਮੇਸ਼ਨ ਸਿਸਟਮਾਂ ਵਿੱਚ, ਹਰ ਜੰਤਰ ਇੱਕ ਸਵਤੰਤ੍ਰ ਏਜੰਟ ਵਾਂਗ ਵਰਤ ਸਕਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਸਭ ਸਿਸਟਮ ਘੱਟ ਮੋਨੋਲੀਥਿਕ ਅਤੇ ਵੱਧ ਮਜ਼ਬੂਤ ਬਣ ਜਾਂਦਾ ਹੈ।
-ਅਸੀਂ ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮਾਂ ਵਿੱਚ ਗਹਿਰਾਈ ਨਾਲ ਜਾਣ ਲਈ ਬਹੁਤ ਜ਼ਿਆਦਾ ਸਮਾਂ ਨਹੀਂ ਲਗਾਵਾਂਗੇ, ਪਰ **ਮਲਟੀ-ਏਜੰਟ ਮਾਡਲਿੰਗ** ਦੇ ਇੱਕ ਉਦਾਹਰਣ 'ਤੇ ਵਿਚਾਰ ਕਰਾਂਗੇ।
+ਅਸੀਂ ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮਾਂ ਵਿੱਚ ਬਹੁਤ ਡੂੰਘਾਈ ਨਾਲ ਨਹੀਂ ਜਾਣ ਵਾਲੇ, ਪਰ ਇੱਕ ਉਦਾਹਰਣ ਦੇਣਗੇ **ਮਲਟੀ-ਏਜੰਟ ਮਾਡਲਿੰਗ** ਦੀ।
-## ਨੈਟਲੋਗੋ
+## NetLogo
-[ਨੈਟਲੋਗੋ](https://ccl.northwestern.edu/netlogo/) ਇੱਕ ਮਲਟੀ-ਏਜੰਟ ਮਾਡਲਿੰਗ ਵਾਤਾਵਰਣ ਹੈ ਜੋ [ਲੋਗੋ](https://en.wikipedia.org/wiki/Logo_(programming_language)) ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਦੇ ਸੰਸ਼ੋਧਿਤ ਸੰਸਕਰਣ 'ਤੇ ਆਧਾਰਿਤ ਹੈ। ਇਹ ਭਾਸ਼ਾ ਬੱਚਿਆਂ ਨੂੰ ਪ੍ਰੋਗਰਾਮਿੰਗ ਸੰਕਲਪ ਸਿਖਾਉਣ ਲਈ ਵਿਕਸਿਤ ਕੀਤੀ ਗਈ ਸੀ, ਅਤੇ ਇਹ ਤੁਹਾਨੂੰ **ਟਰਟਲ** ਨਾਮਕ ਇੱਕ ਏਜੰਟ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ, ਜੋ ਹਿਲ ਸਕਦੀ ਹੈ ਅਤੇ ਪਿੱਛੇ ਇੱਕ ਨਿਸ਼ਾਨ ਛੱਡ ਸਕਦੀ ਹੈ। ਇਹ ਜਟਿਲ ਜਾਮਿਤੀ ਆਕਰਤੀਆਂ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਏਜੰਟ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਸਮਝਣ ਦਾ ਬਹੁਤ ਹੀ ਦ੍ਰਿਸ਼ਮਾਨ ਤਰੀਕਾ ਹੈ।
+[NetLogo](https://ccl.northwestern.edu/netlogo/) ਇੱਕ ਮਲਟੀ-ਏਜੰਟ ਮਾਡਲਿੰਗ ਵਾਤਾਵਰਣ ਹੈ ਜੋ [ਲੋਗੋ](https://en.wikipedia.org/wiki/Logo_(programming_language)) ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਭਾਸ਼ਾ ਦੇ ਸੋਧੇ ਹੋਏ ਸੰਸਕਰਣ 'ਤੇ ਆਧਾਰਤ ਹੈ। ਇਹ ਭਾਸ਼ਾ ਬੱਚਿਆਂ ਨੂੰ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਸੰਕਲਪ ਸਿਖਾਉਣ ਲਈ ਵਿਕਸਿਤ ਕੀਤੀ ਗਈ ਸੀ ਅਤੇ ਇਹ ਤੁਹਾਡੇ ਲਈ ਇੱਕ ਏਜੰਟ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ ਜਿਸਨੂੰ '**turtle**' ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਜੋ ਹਿਲ ਸਕਦਾ ਹੈ ਅਤੇ ਪਿੱਛੇ ਨਿਸ਼ਾਨ ਛੱਡਦਾ ਹੈ। ਇਸ ਨਾਲ ਜਟਿਲ ਜਿਹਾਜਾਤਮਕ ਰੂਪ ਬਣਾਉਣਾ ਮੁਮਕਿਨ ਹੁੰਦਾ ਹੈ, ਜੋ ਕਿ ਏਜੰਟ ਦੀ ਵਰਤਾਰਾ ਨੂੰ ਸਮਝਣ ਦਾ ਬਹੁਤ দৃਸ਼ਮੀ ਤਰੀਕਾ ਹੈ।
-ਨੈਟਲੋਗੋ ਵਿੱਚ, ਅਸੀਂ `create-turtles` ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਈ ਟਰਟਲਾਂ ਬਣਾ ਸਕਦੇ ਹਾਂ। ਅਸੀਂ ਫਿਰ ਸਾਰੀਆਂ ਟਰਟਲਾਂ ਨੂੰ ਕੁਝ ਕਾਰਵਾਈਆਂ ਕਰਨ ਲਈ ਕਹਿ ਸਕਦੇ ਹਾਂ (ਹੇਠਾਂ ਦਿੱਤੇ ਉਦਾਹਰਣ ਵਿੱਚ - 10 ਪੌਇੰਟ ਅੱਗੇ ਵਧੋ):
+NetLogo ਵਿੱਚ, ਅਸੀਂ ਕਈ ਕੱਛੂਏ `create-turtles` ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਣਾ ਸਕਦੇ ਹਾਂ। ਫਿਰ ਅਸੀਂ ਸਾਰੇ ਕੱਛੂਆਂ ਨੂੰ ਕੁਝ ਕਾਰਵਾਈਆਂ ਕਰਨ ਦਾ ਹੁਕਮ ਦੇ ਸਕਦੇ ਹਾਂ (ਹੇਠਾਂ ਦਿੱਤੇ ਉਦਾਹਰਣ ਵਿੱਚ - 10 ਪਾਇੰਟ ਅੱਗੇ ਵਧੋ):
```
create-turtles 10
@@ -41,39 +41,39 @@ ask turtles [
]
```
-ਜ਼ਾਹਰ ਹੈ, ਜਦੋਂ ਸਾਰੀਆਂ ਟਰਟਲਾਂ ਇੱਕੋ ਜਿਹੀ ਚੀਜ਼ ਕਰਦੀਆਂ ਹਨ ਤਾਂ ਇਹ ਦਿਲਚਸਪ ਨਹੀਂ ਹੁੰਦਾ, ਇਸ ਲਈ ਅਸੀਂ ਕੁਝ ਟਰਟਲਾਂ ਦੇ ਸਮੂਹਾਂ ਨੂੰ `ask` ਕਰ ਸਕਦੇ ਹਾਂ, ਜਿਵੇਂ ਕਿ ਉਹ ਜੋ ਕਿਸੇ ਨਿਰਧਾਰਤ ਬਿੰਦੂ ਦੇ ਨੇੜੇ ਹਨ। ਅਸੀਂ `breed [cats cat]` ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵੱਖ-ਵੱਖ *ਬ੍ਰੀਡਾਂ* ਦੀਆਂ ਟਰਟਲਾਂ ਵੀ ਬਣਾ ਸਕਦੇ ਹਾਂ। ਇੱਥੇ `cat` ਇੱਕ ਬ੍ਰੀਡ ਦਾ ਨਾਮ ਹੈ, ਅਤੇ ਸਾਨੂੰ ਇਕਵਚਨ ਅਤੇ ਬਹੁਵਚਨ ਦੋਵੇਂ ਸ਼ਬਦਾਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨਾ ਪੈਂਦਾ ਹੈ, ਕਿਉਂਕਿ ਵੱਖ-ਵੱਖ ਕਮਾਂਡਾਂ ਸਪਸ਼ਟਤਾ ਲਈ ਵੱਖ-ਵੱਖ ਰੂਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ।
+ਬੇਸ਼ੱਕ, ਜਦੋਂ ਸਾਰੇ ਕੱਛੂਏ ਇਕੋ ਜਿਹਾ ਕੰਮ ਕਰ ਰਹੇ ਹਨ ਤਾਂ ਇਹ ਦਿਲਚਸਪ ਨਹੀਂ ਹੁੰਦਾ, ਇਸ ਲਈ ਅਸੀਂ ਕੁਝ ਕੱਛੂਆਂ ਦੇ ਸਮੂਹ ਨੂੰ `ask` ਕਰ ਸਕਦੇ ਹਾਂ, ਜਿਵੇਂ ਕਿ ਉਹ ਜੋ ਕਿਸੇ ਨਿਸ਼ਚਿਤ ਬਿੰਦੂ ਦੇ ਨੇੜੇ ਹਨ। ਅਸੀਂ `breed [cats cat]` ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵੱਖ-ਵੱਖ *ਕਿਸਮਾਂ* ਦੇ ਕੱਛੂਏ ਵੀ ਬਣਾ ਸਕਦੇ ਹਾਂ। ਇੱਥੇ `cat` ਕਿਸਮ ਦਾ ਨਾਮ ਹੈ, ਅਤੇ ਅਸੀਂ ਇਕਵਚਨ ਅਤੇ ਬਹੁਵਚਨ ਦੋਹਾਂ ਸ਼ਬਦ ਦੱਸਣੇ ਪੈਂਦੇ ਹਨ, ਕਿਉਂਕਿ ਵੱਖ-ਵੱਖ ਕਮਾਂਡਸ ਸਪਸ਼ਟਤਾ ਲਈ ਵੱਖਰੇ ਰੂਪ ਵਰਤਦੀਆਂ ਹਨ।
-> ✅ ਅਸੀਂ ਨੈਟਲੋਗੋ ਭਾਸ਼ਾ ਨੂੰ ਸਿੱਖਣ ਵਿੱਚ ਨਹੀਂ ਜਾਵਾਂਗੇ - ਜੇ ਤੁਸੀਂ ਹੋਰ ਸਿੱਖਣ ਵਿੱਚ ਰੁਚੀ ਰੱਖਦੇ ਹੋ ਤਾਂ ਤੁਸੀਂ ਸ਼ਾਨਦਾਰ [ਬਿਗਿਨਰਜ਼ ਇੰਟਰਐਕਟਿਵ ਨੈਟਲੋਗੋ ਡਿਕਸ਼ਨਰੀ](https://ccl.northwestern.edu/netlogo/bind/) ਸਰੋਤ 'ਤੇ ਜਾ ਸਕਦੇ ਹੋ।
+> ✅ ਅਸੀਂ NetLogo ਭਾਸ਼ਾ ਨੂੰ ਸਿੱਖਣ ਵਿੱਚ ਘੁੰਮਣ ਵਾਲ਼ੇ ਨਹੀਂ ਹਾਂ - ਜੇ ਤੁਹਾਨੂੰ ਹੋਰ ਸਿੱਖਣ ਵਿੱਚ ਦਿਲਚਸਪੀ ਹੈ ਤਾਂ [ਬਿਗਿਨਰਜ਼ ਇੰਟਰਐਕਟਿਵ NetLogo ਡਿਕਸ਼ਨਰੀ](https://ccl.northwestern.edu/netlogo/bind/) ਸ਼ਾਨਦਾਰ ਸਰੋਤ ਵੇਖ ਸਕਦੇ ਹੋ।
-ਤੁਸੀਂ ਨੈਟਲੋਗੋ ਨੂੰ [ਡਾਊਨਲੋਡ](https://ccl.northwestern.edu/netlogo/download.shtml) ਅਤੇ ਇੰਸਟਾਲ ਕਰਕੇ ਇਸਨੂੰ ਅਜ਼ਮਾ ਸਕਦੇ ਹੋ।
+ਤੁਸੀਂ NetLogo ਨੂੰ [ਡਾਊਨਲੋਡ](https://ccl.northwestern.edu/netlogo/download.shtml) ਕਰਕੇ ਇੰਸਟਾਲ ਕਰਕੇ ਇਹਨਾਂ ਨੂੰ ਅਜ਼ਮਾ ਸਕਦੇ ਹੋ।
-### ਮਾਡਲਾਂ ਦੀ ਲਾਇਬ੍ਰੇਰੀ
+### ਮਾਡਲਾਂ ਦੀ ਲਾਇਬਰੇਰੀ
-ਨੈਟਲੋਗੋ ਦੀ ਇੱਕ ਵਧੀਆ ਗੱਲ ਇਹ ਹੈ ਕਿ ਇਸ ਵਿੱਚ ਕੰਮ ਕਰਦੇ ਮਾਡਲਾਂ ਦੀ ਇੱਕ ਲਾਇਬ੍ਰੇਰੀ ਸ਼ਾਮਲ ਹੈ, ਜਿਸਨੂੰ ਤੁਸੀਂ ਅਜ਼ਮਾ ਸਕਦੇ ਹੋ। **File → Models Library** 'ਤੇ ਜਾਓ, ਅਤੇ ਤੁਹਾਡੇ ਕੋਲ ਮਾਡਲਾਂ ਦੀਆਂ ਕਈ ਸ਼੍ਰੇਣੀਆਂ ਵਿੱਚੋਂ ਚੁਣਨ ਲਈ ਹੈ।
+NetLogo ਦੀ ਇੱਕ ਵੱਡੀ ਖੂਬੀ ਇਹ ਹੈ ਕਿ ਇਸ ਵਿੱਚ ਕੰਮ ਕਰਨ ਵਾਲੇ ਮਾਡਲਾਂ ਦੀ ਲਾਇਬਰੇਰੀ ਹੈ, ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਅਜ਼ਮਾ ਸਕਦੇ ਹੋ। ਜਾਵੋ **File → Models Library** ਤੇ, ਅਤੇ ਤੁਹਾਡੇ ਕੋਲ ਮਾਡਲਾਂ ਦੇ ਕਈ ਸ਼੍ਰੇਣੀਆਂ ਹੁੰਦੀਆਂ ਹਨ।
-
+
-> ਦਿਮਿਤਰੀ ਸੋਸ਼ਨਿਕੋਵ ਦੁਆਰਾ ਮਾਡਲ ਲਾਇਬ੍ਰੇਰੀ ਦਾ ਸਕ੍ਰੀਨਸ਼ਾਟ
+> ਡਿਮਿਤਰੀ ਸੋਸ਼ਨਿਕੋਵ ਦੁਆਰਾ ਮਾਡਲ ਲਾਇਬਰੇਰੀ ਦੀ ਸਕ੍ਰੀਨਸ਼ਾਟ
-ਤੁਸੀਂ ਮਾਡਲਾਂ ਵਿੱਚੋਂ ਇੱਕ ਖੋਲ੍ਹ ਸਕਦੇ ਹੋ, ਉਦਾਹਰਣ ਲਈ **Biology → Flocking**।
+ਤੁਸੀਂ ਕਿਸੇ ਇੱਕ ਮਾਡਲ ਨੂੰ ਖੋਲ੍ਹ ਸਕਦੇ ਹੋ, ਉਦਾਹਰਣ ਵਜੋਂ **Biology → Flocking**।
### ਮੁੱਖ ਸਿਧਾਂਤ
-ਮਾਡਲ ਖੋਲ੍ਹਣ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਨੈਟਲੋਗੋ ਦੇ ਮੁੱਖ ਸਕ੍ਰੀਨ 'ਤੇ ਲਿਆਂਦਾ ਜਾਂਦਾ ਹੈ। ਇੱਥੇ ਇੱਕ ਨਮੂਨਾ ਮਾਡਲ ਹੈ ਜੋ ਵੁਲਫ਼ ਅਤੇ ਭੇਡਾਂ ਦੀ ਆਬਾਦੀ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਸੰਸਾਧਨ ਸੀਮਤ ਹਨ (ਘਾਹ)।
+ਮਾਡਲ ਖੋਲ੍ਹਣ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਮੁੱਖ NetLogo ਸਕ੍ਰੀਨ 'ਤੇ ਲਿਜਾਇਆ ਜਾਂਦਾ ਹੈ। ਇੱਥੇ ਇੱਕ ਨਮੂਨਾ ਮਾਡਲ ਹੈ ਜੋ ਬੱਦੀਆਂ ਅਤੇ ਭੇਂਡਿਆਂ ਦੀ ਆਬਾਦੀ ਨੂੰ ਵਿਆਖਿਆ ਕਰਦਾ ਹੈ, ਸੀਮਿਤ ਸਾਧਨਾਂ (ਘਾਹ) ਦੇ ਢੰਗ ਨਾਲ।
-
+
-> ਦਿਮਿਤਰੀ ਸੋਸ਼ਨਿਕੋਵ ਦੁਆਰਾ ਸਕ੍ਰੀਨਸ਼ਾਟ
+> ਡਿਮਿਤਰੀ ਸੋਸ਼ਨਿਕੋਵ ਦੁਆਰਾ ਸਕ੍ਰੀਨਸ਼ਾਟ
ਇਸ ਸਕ੍ਰੀਨ 'ਤੇ, ਤੁਸੀਂ ਦੇਖ ਸਕਦੇ ਹੋ:
-* **ਇੰਟਰਫੇਸ** ਭਾਗ ਜਿਸ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ:
+* **ਇੰਟਰਫੇਸ** ਸੈਕਸ਼ਨ ਜਿਸ ਵਿੱਚ ਸ਼ਾਮਿਲ ਹੈ:
- ਮੁੱਖ ਖੇਤਰ, ਜਿੱਥੇ ਸਾਰੇ ਏਜੰਟ ਰਹਿੰਦੇ ਹਨ
- - ਵੱਖ-ਵੱਖ ਨਿਯੰਤਰਣ: ਬਟਨ, ਸਲਾਈਡਰ, ਆਦਿ
- - ਗ੍ਰਾਫ, ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਸਿਮੂਲੇਸ਼ਨ ਦੇ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ ਵਰਤ ਸਕਦੇ ਹੋ
-* **ਕੋਡ** ਟੈਬ ਜਿਸ ਵਿੱਚ ਸੰਪਾਦਕ ਸ਼ਾਮਲ ਹੈ, ਜਿੱਥੇ ਤੁਸੀਂ ਨੈਟਲוגੋ ਪ੍ਰੋਗਰਾਮ ਲਿਖ ਸਕਦੇ ਹੋ
+ - ਵੱਖਰੇ ਕੰਟਰੋਲ: ਬਟਨ, ਸਲਾਈਡਰ ਆਦਿ
+ - ਗ੍ਰਾਫ ਜੋ ਤੁਸੀਂ ਸਿਮੂਲੇਸ਼ਨ ਦੇ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਵਰਤ ਸਕਦੇ ਹੋ
+* **ਕੋਡ** ਟੈਬ ਜਿਸ ਵਿੱਚ ਸੰਪਾਦਕ ਹੁੰਦਾ ਹੈ, ਜਿੱਥੇ ਤੁਸੀਂ NetLogo ਪ੍ਰੋਗ੍ਰਾਮ ਲਿਖ ਸਕਦੇ ਹੋ
-ਜਿਆਦਾਤਰ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਇੰਟਰਫੇਸ ਵਿੱਚ ਇੱਕ **ਸੈਟਅੱਪ** ਬਟਨ ਹੁੰਦਾ ਹੈ, ਜੋ ਸਿਮੂਲੇਸ਼ਨ ਦੀ ਸਥਿਤੀ ਨੂੰ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ, ਅਤੇ ਇੱਕ **ਗੋ** ਬਟਨ ਹੁੰਦਾ ਹੈ ਜੋ ਕਾਰਵਾਈ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ। ਇਹ ਸਬੰਧਤ ਹੈਂਡਲਰਾਂ ਦੁਆਰਾ ਸੰਭਾਲੇ ਜਾਂਦੇ ਹਨ ਜੋ ਇਸ ਤਰ੍ਹਾਂ ਦੇਖਦੇ ਹਨ:
+ਜ਼ਿਆਦਾਤਰ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਇੰਟਰਫੇਸ ਵਿੱਚ ਇੱਕ **Setup** ਬਟਨ ਹੁੰਦਾ ਹੈ, ਜੋ ਸਿਮੂਲੇਸ਼ਨ ਦੀ ਸਥਿਤੀ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ, ਅਤੇ ਇੱਕ **Go** ਬਟਨ ਜੋ ਕਾਰਗੁਜ਼ਾਰੀ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ। ਇਹਨਾਂ ਨੂੰ ਕੋਡ ਵਿੱਚ ਸੰਬੰਧਿਤ ਹੈਂਡਲਰਾਂ ਦੁਆਰਾ ਸੰਭਾਲਿਆ ਜਾਂਦਾ ਹੈ ਜੋ ਇਸ ਤਰ੍ਹਾਂ ਲੱਗਦੇ ਹਨ:
```
to go [
@@ -81,17 +81,79 @@ to go [
]
```
-ਨੈਟਲੋਗੋ ਦੀ ਦੁਨੀਆ ਹੇਠਾਂ ਦਿੱਤੇ ਵਸਤੂਆਂ 'ਤੇ ਆਧਾਰਿਤ ਹੈ:
+NetLogo ਦੀ ਦੁਨੀਆ ਹੇਠਾਂ ਦਿੱਤੇ ਚੀਜ਼ਾਂ 'ਤੇ ਬਣੀ ਹੈ:
-* **ਏਜੰਟ** (ਟਰਟਲ) ਜੋ ਖੇਤਰ ਵਿੱਚ ਹਿਲ ਸਕਦੇ ਹਨ ਅਤੇ ਕੁਝ ਕਰ ਸਕਦੇ ਹਨ। ਤੁਸੀਂ `ask turtles [...]` ਸਿੰਟੈਕਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਏਜੰਟਾਂ ਨੂੰ ਹੁਕਮ ਦੇ ਸਕਦੇ ਹੋ, ਅਤੇ ਬ੍ਰੈਕਟਾਂ ਵਿੱਚ ਕੋਡ ਸਾਰੇ ਏਜੰਟਾਂ ਦੁਆਰਾ *ਟਰਟਲ ਮੋਡ* ਵਿੱਚ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ।
-* **ਪੈਚ** ਖੇਤਰ ਦੇ ਵਰਗ ਆਕਾਰ ਦੇ ਖੇਤਰ ਹਨ, ਜਿਨ੍ਹਾਂ 'ਤੇ ਏਜੰਟ ਰਹਿੰਦੇ ਹਨ। ਤੁਸੀਂ ਇੱਕੋ ਪੈਚ 'ਤੇ ਸਾਰੇ ਏਜੰਟਾਂ ਨੂੰ ਸੰਦਰਭਿਤ ਕਰ ਸਕਦੇ ਹੋ, ਜਾਂ ਤੁਸੀਂ ਪੈਚ ਦੇ ਰੰਗ ਅਤੇ ਕੁਝ ਹੋਰ ਗੁਣਾਂ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ। ਤੁਸੀਂ ਪੈਚਾਂ ਨੂੰ ਕੁਝ ਕਰਨ ਲਈ `ask patches` ਵੀ ਕਰ ਸਕਦੇ ਹੋ।
-* **ਨਿਗਰਾਨੀ ਕਰਨ ਵਾਲਾ** ਇੱਕ ਵਿਲੱਖਣ ਏਜੰਟ ਹੈ ਜੋ ਦੁਨੀਆ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਦਾ ਹੈ। ਸਾਰੇ ਬਟਨ ਹੈਂਡਲਰ *ਨਿਗਰਾਨੀ ਮੋਡ* ਵਿੱਚ ਚਲਾਏ ਜਾਂਦੇ ਹਨ।
+* **ਏਜੰਟ** (ਕੱਛੂਏ) ਜੋ ਖੇਤਰ ਵਿੱਚ ਹਿਲ ਸਕਦੇ ਹਨ ਅਤੇ ਕੁਝ ਕਰ ਸਕਦੇ ਹਨ। ਤੁਸੀਂ ਏਜੰਟਾਂ ਨੂੰ `ask turtles [...]` ਸਿੰਟੈਕਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੁਕਮ ਦਿੰਦੇ ਹੋ, ਅਤੇ ਕੋਡ ਬ੍ਰੈਕਟਸ ਵਿੱਚ ਸਭ ਏਜੰਟਾਂ ਦੁਆਰਾ *ਕੱਛੂਏ ਮੋਡ* ਵਿੱਚ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ।
+* **ਪੈਚ** ਖੇਤਰ ਦੇ ਵਰਗਾਕਾਰ ਇਲਾਕੇ ਹਨ, ਜਿੱਥੇ ਏਜੰਟ ਰਹਿੰਦੇ ਹਨ। ਤੁਸੀਂ ਇੱਕੋ ਪੈਚ 'ਤੇ ਸਾਰੇ ਏਜੰਟਾਂ ਨੂੰ ਸੰਬੋਧਿਤ ਕਰ ਸਕਦੇ ਹੋ, ਜਾਂ ਪੈਚ ਦੇ ਰੰਗਾਂ ਅਤੇ ਹੋਰ ਕੁਝ ਗੁਣਾਂ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ। ਤੁਸੀਂ `ask patches` ਵੀ ਕਰਕੇ ਕੁਝ ਕਰਵਾ ਸਕਦੇ ਹੋ।
+* **ਦਰਸ਼ਕ** ਇੱਕ ਵਿਲੱਖਣ ਏਜੰਟ ਹੈ ਜੋ ਦੁਨੀਆ ਨੂੰ ਕੰਟਰੋਲ ਕਰਦਾ ਹੈ। ਸਾਰੇ ਬਟਨ ਹੈਂਡਲਰ *ਦਰਸ਼ਕ ਮੋਡ* ਵਿੱਚ ਚਲਦੇ ਹਨ।
-> ✅ ਮਲਟੀ-ਏਜੰਟ ਵਾਤਾਵਰਣ ਦੀ ਖੂਬਸੂਰਤੀ ਇਹ ਹੈ ਕਿ ਟਰਟਲ ਮੋਡ ਜਾਂ ਪੈਚ ਮੋਡ ਵਿੱਚ ਚਲ ਰਹੀ ਕੋਡ ਸਾਰੇ ਏਜੰਟਾਂ ਦੁਆਰਾ ਇੱਕੋ ਸਮੇਂ ਵਿੱਚ ਸਮਾਂਤਰ ਤੌਰ 'ਤੇ ਚਲਾਈ ਜਾਂਦੀ ਹੈ। ਇਸ ਤਰ੍ਹਾਂ, ਥੋੜ੍ਹਾ ਜਿਹਾ ਕੋਡ ਲਿਖ ਕੇ ਅਤੇ ਵਿਅਕਤੀਗਤ ਏਜੰਟ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਕਰਕੇ, ਤੁਸੀਂ ਸਿਮੂਲੇਸ਼ਨ ਸਿਸਟਮ ਦੇ ਕੁੱਲ ਵਿਵਹਾਰ ਨੂੰ ਜਟਿਲ ਬਣਾ ਸਕਦੇ ਹੋ।
+> ✅ ਮਲਟੀ-ਏਜੰਟ ਵਾਤਾਵਰਣ ਦੀ ਸੁੰਦਰਤਾ ਇਹ ਹੈ ਕਿ ਜੋ ਕੋਡ ਕੱਛੂਏ ਮੋਡ ਜਾਂ ਪੈਚ ਮੋਡ ਵਿੱਚ ਚਲਦਾ ਹੈ ਉਹ ਸਭ ਏਜੰਟਾਂ ਦੁਆਰਾ ਸਿੰਕ੍ਰੋਨਾਸ਼ਨ ਵਿੱਚ ਚਲੂ ਹੁੰਦਾ ਹੈ। ਇਸ ਲਈ, ਥੋੜ੍ਹਾ ਜਿਹਾ ਕੋਡ ਲਿਖ ਕੇ ਅਤੇ ਵੱਖਰੇ ਏਜੰਟ ਦੀ ਵਰਤਾਰਾ ਨੂੰ ਪ੍ਰੋਗ੍ਰਾਮ ਕਰਕੇ, ਤੁਸੀਂ ਪੂਰੇ ਸਿਮੂਲੇਸ਼ਨ ਸਿਸਟਮ ਦਾ ਜਟਿਲ ਵਰਤਾਰਾ ਪੈਦਾ ਕਰ ਸਕਦੇ ਹੋ।
### ਫਲਾਕਿੰਗ
-ਮਲਟੀ-ਏਜੰਟ ਵਿਵਹਾਰ ਦੇ ਇੱਕ ਉਦਾਹਰਣ ਵਜੋਂ, ਆਓ **[ਫਲਾਕਿੰਗ](https://en.wikipedia.org/wiki/Flocking_(behavior))** 'ਤੇ ਵਿਚਾਰ ਕਰੀਏ।
+ਮਲਟੀ-ਏਜੰਟ ਵਰਤਾਰਾ ਦੇ ਉਦਾਹਰਣ ਵਜੋਂ, ਆਓ **[ਫਲਾਕਿੰਗ](https://en.wikipedia.org/wiki/Flocking_(behavior))** ਬਾਰੇ ਸੋਚੀਏ। ਫਲਾਕਿੰਗ ਇੱਕ ਜਟਿਲ ਰੁਟਬਾ ਹੈ ਜੋ ਬਿਲਕੁਲ ਪੰਛੀਆਂ ਦੀ ਦਲਬੰਦੀ ਵਰਗੀ ਹੈ। ਉਨ੍ਹਾਂ ਨੂੰ ਉੱਡਦੇ ਦੇਖ ਕੇ ਤੁਸੀਂ ਸੋਚ ਸਕਦੇ ਹੋ ਕਿ ਉਹ ਕੁਝ ਸਮੂਹ ਬੁਧੀਮਤਾ ਜਾਂ ਸਮੂਹਿਕ ਅਲਗੋਰਿਦਮ ਦੀ ਪਾਲਣਾ ਕਰ ਰਹੇ ਹਨ। ਪਰ ਇਹ ਜਟਿਲ ਵਰਤਾਰਾ ਉਸ ਵੇਲੇ ਪੈਦਾ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਹਰ ਇੱਕ ਏਜੰਟ (ਇਸ ਮਾਮਲੇ ਵਿੱਚ, ਇੱਕ *ਪੰਛੀ*) ਸਿਰਫ ਆਪਣੇ ਨੇੜੇ ਕੁਝ ਦੂਜੇ ਏਜੰਟਾਂ ਨੂੰ ਵੇਖਦਾ ਹੈ ਅਤੇ ਤਿੰਨ ਸਾਦੇ ਨਿਯਮ ਮਾਨਦਾ ਹੈ:
+
+* **ਸਮਾਂਜਸਤਾ** - ਇਹ ਨੇੜੇਲੇ ਏਜੰਟਾਂ ਦੀ ਔਸਤ ਦਿਸ਼ਾ ਵੱਲ ਟਰਕਦਾ ਹੈ
+* **ਸਮੂਹਤਾ** - ਇਹ ਨੇੜੇਲੇ ਏਜੰਟਾਂ ਦੀ ਔਸਤ ਸਥਿਤੀ ਵੱਲ ਟਰਕਦਾ ਹੈ (*ਲੰਮੇ ਦੂਰੀ ਦੀ ਆਕਰਸ਼ਣ*)
+* **ਵੱਖੋ** - ਜਦੋਂ ਹੋਰ ਪੰਛੀਆਂ ਬਹੁਤ ਨੇੜੇ ਆ ਜਾਂਦੀਆਂ ਹਨ, ਤਾਂ ਇਹ ਦੂਰੀ ਬਣਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ (*ਛੋਟੀ ਦੂਰੀ ਦਾ ਵਿਛੋੜਾ*)
+
+ਤੁਸੀਂ ਫਲਾਕਿੰਗ ਦੀ ਉਦਾਹਰਣ ਦੌੜਾ ਸਕਦੇ ਹੋ ਅਤੇ ਇਸ ਵਰਤਾਰਾ ਨੂੰ ਵੇਖ ਸਕਦੇ ਹੋ। ਤੁਸੀਂ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਵੀ ਮੇਲ ਬੈਠਾ ਸਕਦੇ ਹੋ, ਜਿਵੇਂ *ਵੱਖਰੇਪਣ ਦੀ ਡਿਗਰੀ*, ਜਾਂ *ਦੇਖਣ ਦੀ ਰੇਂਜ*, ਜੋ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹਨ ਕਿ ਹਰ ਪੰਛੀ ਕਿੰਨਾ ਦੂਰ ਤੱਕ ਦੇਖ ਸਕਦਾ ਹੈ। ਧਿਆਨ ਦਿਓ ਜੇ ਤੁਸੀਂ ਦੇਖਣ ਦੀ ਰੇਂਜ 0 ਕਰਦੇ ਹੋ, ਤਾਂ ਸਾਰੇ ਪੰਛੀ ਅੰਨੇ ਹੋ ਜਾਂਦੇ ਹਨ ਅਤੇ ਫਲਾਕਿੰਗ ਰੁਕ ਜਾਂਦੀ ਹੈ। ਜੇ ਤੁਸੀਂ ਵੱਖਰੇਪਣ ਨੂੰ 0 ਕਰਦੇ ਹੋ, ਤਾਂ ਸਾਰੇ ਪੰਛੀ ਇਕ ਸਿੱਧੀ ਲਾਈਨ ਵਿੱਚ ਇਕੱਠੇ ਹੋ ਜਾਂਦੇ ਹਨ।
+
+> ✅ **ਕੋਡ** ਟੈਬ 'ਤੇ ਜਾਓ ਅਤੇ ਦੇਖੋ ਕਿ ਫਲਾਕਿੰਗ ਦੇ ਤਿੰਨ ਨਿਯਮ (ਸਮਾਂਜਸਤਾ, ਸਮੂਹਤਾ ਅਤੇ ਵੱਖੋ) ਕੋਡ ਵਿੱਚ ਕਿੱਥੇ ਲਾਗੂ ਕੀਤੇ ਗਏ ਹਨ। ਧਿਆਨ ਦਿਓ ਕਿ ਅਸੀਂ ਸਿਰਫ ਉਹਨਾਂ ਏਜੰਟਾਂ ਨੂੰ ਸੰਬੋਧਦੇ ਹਾਂ ਜੋ ਨਜ਼ਰ ਵਿੱਚ ਹਨ।
+
+### ਹੋਰ ਦੇਖਣ ਯੋਗ ਮਾਡਲ
+
+ਹੋਰ ਕੁਝ ਦਿਲਚਸਪ ਮਾਡਲ ਹਨ ਜਿਨ੍ਹਾਂ ਨਾਲ ਤੁਸੀਂ ਅਜ਼ਮਾਇਸ਼ ਕਰ ਸਕਦੇ ਹੋ:
+
+* **Art → Fireworks** ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਫਾਇਰਵਰਕ ਕਿਵੇਂ ਵਿਅਕਤੀਗਤ ਅੱਗ ਦੇ ਧਾਰਿਆਂ ਦਾ ਸਮੂਹਿਕ ਵਰਤਾਰਾ ਮੰਨਿਆ ਜਾ ਸਕਦਾ ਹੈ
+* **Social Science → Traffic Basic** ਅਤੇ **Social Science → Traffic Grid** 1D ਅਤੇ 2D ਗ੍ਰਿਡ ਵਿੱਚ ਸ਼ਹਿਰੀ ਟ੍ਰੈਫਿਕ ਦਾ ਮਾਡਲ ਦਿਖਾਉਂਦੇ ਹਨ ਜਿੱਥੇ ਟ੍ਰੈਫਿਕ ਲਾਈਟਾਂ ਨਾਲ ਜਾਂ ਬਿਨਾਂ ਹੁੰਦੇ ਹਨ। ਹਰ ਕਾਰ ਸਿਮੂਲੇਸ਼ਨ ਵਿੱਚ ਹੇਠ ਲਿਖੇ ਨਿਯਮ ਮਾਨਦੀ ਹੈ:
+ - ਜੇ ਅੱਗੇ ਖਾਲੀ ਸਥਾਨ ਹੈ - ਤੇਜ਼ ਕਰੋ (ਇੱਕ ਨਿਸ਼ਚਿਤ ਵੱਧ ਤੋਂ ਵੱਧ ਗਤੀ ਤੱਕ)
+ - ਜੇ ਅੱਗੇ ਰੁਕਾਵਟ ਵੇਖਦੀ ਹੈ - ਬਰੇਕ ਲਗਾਓ (ਤੁਸੀਂ ਇਸ ਨੂੰ ਸਮੰਜਸਤਾ ਲਈ ਦੂਰੀ ਕਿੰਨੀ ਹੈ ਅਨੁਸਾਰ ਤਬਦੀਲ ਕਰ ਸਕਦੇ ਹੋ)
+* **Social Science → Party** ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਲੋਕ ਕਿਵੇਂ ਕਾਕਟੇਲ ਪਾਰਟੀ ਦੌਰਾਨ ਗਰੁੱਪ ਬਣਾਉਂਦੇ ਹਨ। ਤੁਸੀਂ ਉਹ ਪੈਰਾਮੀਟਰਾਂ ਦਾ ਸੰਯੋਜਨ ਲੱਭ ਸਕਦੇ ਹੋ ਜੋ ਗਰੁੱਪ ਦੀ ਖੁਸ਼ੀ ਵਿਚ ਤੇਜ਼ੀ ਨਾਲ ਵਾਧਾ ਕਰਦਾ ਹੈ।
+
+ਜਿਵੇਂ ਕਿ ਇਹਨਾਂ ਉਦਾਹਰਣਾਂ ਤੋਂ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ, ਮਲਟੀ-ਏਜੰਟ ਸਿਮੂਲੇਸ਼ਨ ਇਨ੍ਹਾਂ ਲੋਕਾਂ ਦੀ ਵਰਤਾਰਾ ਸਮਝਣ ਲਈ ਕਾਫੀ ਮਦਦਗਾਰ ਹੈ ਜੋ ਇਕੋ ਜਾਂ ਸਮਾਨ ਤਰਕ ਨੂੰ ਪਾਲਦੇ ਹਨ। ਇਹ ਕਮਪਿਊਟਰ ਗੇਮਾਂ ਵਿੱਚ [NPCs](https://en.wikipedia.org/wiki/NPC) ਜਾਂ 3D ਐਨੀਮੇਟਿਡ ਸੰਸਾਰਾਂ ਵਿੱਚ ਵਰਚੁਅਲ ਏਜੰਟਾਂ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਭੀ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ।
+
+## ਵਿਚਾਰਸ਼ੀਲ ਏਜੰਟ
+
+ਉਪਰ ਦਿੱਤੇ ਏਜੰਟ ਬਹੁਤ ਸਧਾਰਣ ਹਨ, ਜੋ ਮਾਹੌਲ ਵਿੱਚ ਬਦਲਾਅ 'ਤੇ ਕਿਸੇ ਅਲਗੋਰਿਦਮ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪ੍ਰਤੀਕਿਰਿਆ ਕਰਦੇ ਹਨ। ਇਨ੍ਹਾਂ ਨੂੰ **ਪ੍ਰਤੀਕਿਰਿਆਤਮਕ ਏਜੰਟ** ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਪਰ ਕਈ ਵਾਰੀ ਏਜੰਟ ਸੋਚ ਵੀ ਸਕਦੇ ਹਨ ਅਤੇ ਆਪਣੀਆਂ ਕਾਰਵਾਈਆਂ ਦੀ ਯੋਜਨਾ ਵੀ ਬਣਾ ਸਕਦੇ ਹਨ, ਜਿਸ ਨੂੰ **ਵਿਚਾਰਸ਼ੀਲ** ਕਿਹਾ ਜਾਂਦਾ ਹੈ।
+
+ਇੱਕ ਸਧਾਰਣ ਉਦਾਹਰਣ ਇਕ ਨਿੱਜੀ ਏਜੰਟ ਹੋਵੇਗਾ ਜੋ ਕਿਸੇ ਮਨੁੱਖ ਤਰਫੋਂ ਛੁੱਟੀਆਂ ਬੁੱਕ ਕਰਨ ਦਾ ਹੁਕਮ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਧਾਰੋ ਕਿ ਇੰਟਰਨੈਟ 'ਤੇ ਕਈ ਏਜੰਟ ਹਨ ਜੋ ਇਸ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦੇ ਹਨ। ਇਹ ਫਿਰ ਹੋਰ ਏਜੰਟਾਂ ਨਾਲ ਸੰਪਰਕ ਕਰੇਗਾ, ਵੇਖਣ ਲਈ ਕਿ ਕਿਹੜੀਆਂ ਉਡਾਣਾਂ ਉਪਲਬਧ ਹਨ, ਵੱਖ-ਵੱਖ ਤਰੀਖਾਂ ਲਈ ਹੋਟਲ ਕਿਵੇਂ ਕੀਮਤਾਂ ਹਨ, ਅਤੇ ਸਭ ਤੋਂ ਵਧੀਆ ਕੀਮਤ हासिल ਕਰਨ ਲਈ ਵਾਤਾਂ-ਵਾਤਾਂ ਕਰਦਾ ਹੈ। ਜਦ ਛੁੱਟੀਆਂ ਦਾ ਯੋਜਨਾ ਮੁਕੰਮਲ ਅਤੇ ਮਾਲਕ ਦੁਆਰਾ ਪੁਸ਼ਟੀ ਹੋ ਜਾਂਦੀ ਹੈ, ਫਿਰ ਇਹ ਬੁਕਿੰਗ ਕਰ ਸਕਦਾ ਹੈ।
+
+ਇਹ ਕਰਨ ਲਈ, ਏਜੰਟਾਂ ਨੂੰ **ਸੰਚਾਰ** ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਸਫਲ ਸੰਚਾਰ ਲਈ ਉਹਨਾਂ ਨੂੰ ਚਾਹੀਦਾ ਹੈ:
+
+* ਕੁਝ **ਮਿਆਰੀ ਭਾਸ਼ਾਵਾਂ ਸੰਚਾਰ ਕਰਨ ਲਈ**, ਜਿਵੇਂ [Knowledge Interchange Format](https://en.wikipedia.org/wiki/Knowledge_Interchange_Format) (KIF) ਅਤੇ [Knowledge Query and Manipulation Language](https://en.wikipedia.org/wiki/Knowledge_Query_and_Manipulation_Language) (KQML). ਇਹ ਭਾਸ਼ਾਵਾਂ [Speech Act theory](https://en.wikipedia.org/wiki/Speech_act) ਦੇ ਆਧਾਰ ਤੇ ਬਣਾਈਆਂ ਗਈਆਂ ਹਨ।
+* ਇਹ ਭਾਸ਼ਾਵਾਂ ਕੁਝ **ਮੋਲ-ਭੋਲ ਦੇ ਪ੍ਰੋਟੋਕੋਲ** ਵੀ ਸਮੇਤਦੀ ਹੋਣ, ਵੱਖ-ਵੱਖ **ਨੀਲਾਮੀ ਕਿਸਮਾਂ** 'ਤੇ ਆਧਾਰਿਤ।
+* ਉਹਨਾਂ ਵਿੱਚ ਇੱਕ **ਆਮ ਓਨਟੋਲੋਜੀ** ਹੁੰਦੀ ਹੈ ਤਾਂ ਜੋ ਉਹ ਇੱਕੋ ਸੰਕਲਪਾਂ ਨੂੰ ਉਨ੍ਹਾਂ ਦੀ ਅਰਥਵਿਵਸਥਾ ਸਮਝ ਕੇ ਵਰਤ ਸਕਣ
+* ਇਕ ਤਰੀਕਾ ਕਿ ਕਿਵੇਂ ਅਲੱਗ-ਅਲੱਗ ਏਜੰਟ ਕੀ ਕਰ ਸਕਦੇ ਹਨ, ਇਹ ਵੀ ਕੁਝ ਓਨਟੋਲੋਜੀ ਦੇ ਆਧਾਰ ਤੇ ਲੱਭਣਾ
+
+ਵਿਚਾਰਸ਼ੀਲ ਏਜੰਟ ਪ੍ਰਤੀਕਿਰਿਆਤਮਕਾਂ ਨਾਲੋਂ ਕਾਫੀ ਜਟਿਲ ਹੁੰਦੇ ਹਨ, ਕਿਉਂਕਿ ਉਹ ਸਿਰਫ ਪਰਿਵਰਤਨ ਤੱਕ ਸੀਮਤ ਨਹੀਂ ਰਹਿੰਦੇ, ਉਹ ਕਾਰਵਾਈਆਂ ਨੂੰ *ਸ਼ੁਰੂ* ਵੀ ਕਰ ਸਕਦੇ ਹਨ। ਇਕ ਪਰਸਤਾਵਿਤ ਆਰਕੀਟੈਕਚਰ ਵਿਚਾਰਸ਼ੀਲ ਏਜੰਟਾਂ ਲਈ Belief-Desire-Intention (BDI) ਏਜੰਟ ਹੈ:
+
+* **ਵਿਸ਼ਵਾਸ** ਏਜੰਟ ਦੇ ਮਾਹੌਲ ਬਾਰੇ ਜਾਣਕਾਰੀ ਦਾ ਸੈੱਟ ਬਣਾਉਂਦੇ ਹਨ। ਇਹ ਗਿਆਨ ਅਧਾਰ ਜਾਂ ਨਿਯਮਾਂ ਦੇ ਸੈੱਟ ਵਜੋਂ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ ਜੋ ਏਜੰਟ ਨੂੰ ਵਿਸ਼ੇਸ਼ ਸਥਿਤੀ ਵਾਸਤੇ ਲਾਗੂ ਕਰਨਾ ਹੁੰਦਾ ਹੈ।
+* **ਇੱਛਾਵਾਂ** ਇਹ ਦਰਸਾਉਂਦੀਆਂ ਹਨ ਕਿ ਏਜੰਟ ਕੀ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਇਸਦੇ ਲਕੜੇ। ਉਦਾਹਰਣ ਵਜੋਂ, ਉਪਰੋਕਤ ਨਿੱਜੀ ਸਹਾਇਕ ਏਜੰਟ ਦਾ ਲਕੜਾ ਇੱਕ ਟੂਰ ਬੁਕ ਕਰਨਾ ਹੈ, ਅਤੇ ਇੱਕ ਹੋਟਲ ਏਜੰਟ ਦਾ ਲਕੜਾ ਲਾਭ ਵੱਧ ਤੋਂ ਵੱਧ ਕਰਨਾ ਹੈ।
+* **ਿੰਦਰਾਸ਼ਾ** ਉਹ ਨਿਸ਼ਚਿਤ ਕਾਰਵਾਈਆਂ ਹਨ ਜੋ ਏਜੰਟ ਆਪਣੇ ਲਕੜੇ ਪੂਰੇ ਕਰਨ ਲਈ ਯੋਜਨਾ ਬਣਾਉਂਦਾ ਹੈ। ਕਾਰਵਾਈਆਂ ਆਮ ਤੌਰ 'ਤੇ ਮਾਹੌਲ ਨੂੰ ਬਦਲਦੀਆਂ ਹਨ ਅਤੇ ਹੋਰ ਏਜੰਟਾਂ ਨਾਲ ਸੰਚਾਰ ਕਰਵਾਉਂਦੀਆਂ ਹਨ।
+
+ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮ ਬਣਾਉਣ ਲਈ ਕੁਝ ਪਲੈਟਫਾਰਮ ਉਪਲੱਬਧ ਹਨ, ਜਿਵੇਂ [JADE](https://jade.tilab.com/). [ਇਹ ਪੇਪਰ](https://arxiv.org/ftp/arxiv/papers/2007/2007.08961.pdf) ਮਲਟੀ-ਏਜੰਟ ਪਲੈਟਫਾਰਮਾਂ ਦਾ ਸੰਖੇਪ ਸਮੀਖਿਆ ਦਿੰਦਾ ਹੈ, ਨਾਲ ਹੀ ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮਾਂ ਦਾ ਸੰਖੇਪ ਇਤਿਹਾਸ ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਵੱਖ-ਵੱਖ ਪ੍ਰਯੋਗ ਕੇਸਾਂ ਦਾ ਜਾਇਜ਼ਾ ਵੀ।
+
+## ਨਤੀਜਾ
+
+ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮ ਵੱਖ-ਵੱਖ ਰੂਪਾਂ ਵਿੱਚ ਹੋ ਸਕਦੇ ਹਨ ਅਤੇ ਕਈ ਵੱਖ-ਵੱਖ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਵਰਤੇ ਜਾਂਦੇ ਹਨ।
+ਉਹ ਸਾਰੇ ਇੱਕ ਸਧਾਰਣ ਏਜੰਟ ਦੀ ਵਰਤਾਰਾ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਦੇ ਹਨ, ਅਤੇ **ਸੰਯੁਕਤ ਪ੍ਰਭਾਵ** ਕਾਰਨ ਕੁੱਲ ਸਿਸਟਮ ਦੀ ਵੱਧ ਜਟਿਲ ਵਰਤਾਰਾ ਨੂੰ ਹਾਸਲ ਕਰਦੇ ਹਨ।
+
+## 🚀 ਚੈਲੰਜ
+
+ਇਸ ਪਾਠ ਨੂੰ ਅਸਲੀ ਦੁਨੀਆ ਵਿੱਚ ਲੈ ਜਾਓ ਅਤੇ ਇੱਕ ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮ ਦਾ ਕਾਂਸੈਪਟ ਤਿਆਰ ਕਰੋ ਜੋ ਕਿਸੇ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰ ਸਕੇ। ਉਦਾਹਰਣ ਵਜੋਂ, ਇੱਕ ਸਕੂਲ ਬੱਸ ਰੂਟ ਨੂੰ ਕਿਵੇਂ ਅਪਟਿਮਾਈਜ਼ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ? ਇਹ ਬੇਕਰੀ ਵਿੱਚ ਕਿਵੇਂ ਕੰਮ ਕਰ ਸਕਦਾ ਹੈ?
+
+## [ਪੋਸਟ-ਲੈਕਚਰ ਕਵਿਜ਼](https://ff-quizzes.netlify.app/en/ai/quiz/46)
+
+## ਸਮੀਖਿਆ ਅਤੇ ਖੁਦ ਅਧਿਐਨ
+
+ਉਦਯੋਗ ਵਿੱਚ ਇਸ ਕਿਸਮ ਦੇ ਸਿਸਟਮ ਦੀ ਵਰਤੋਂ ਦੀ ਸਮੀਖਿਆ ਕਰੋ। ਕਿਸੇ ਖੇਤਰ ਨੂੰ ਚੁਣੋ ਜਿਵੇਂ ਕਿ ਉਦਯੋਗ ਜਾਂ ਵੀਡੀਓ ਗੇਮ ਉਦਯੋਗ ਅਤੇ ਪਤਾ ਲਗਾਓ ਕਿ ਮਲਟੀ-ਏਜੰਟ ਸਿਸਟਮ ਕਿਵੇਂ ਵਿਲੱਖਣ ਸਮੱਸਿਆਵਾਂ ਹੱਲ ਕਰਨ ਲਈ ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ।
+
+## [NetLogo ਅਸਾਈਨਮੈਂਟ](assignment.md)
---
+
+**ਅਸਵੀਕਾਰੋਪਣ**:
+ਇਸ ਦਸਤਾਵੇਜ਼ ਦਾ ਅਨੁਵਾਦ ਏਆਈ ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾਵਾਂ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮੱਤਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜਰੂਰੀ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੇ ਉਪਯੋਗ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਜਵਾਬਦੇਹ ਨਹੀਂ ਹਾਂ।
+
\ No newline at end of file