|
|
# Ръководство за отстраняване на проблеми
|
|
|
|
|
|
Това ръководство ще ви помогне да решите често срещани проблеми при работа с учебната програма "Машинно обучение за начинаещи". Ако не намерите решение тук, моля, проверете нашите [дискусии в Discord](https://aka.ms/foundry/discord) или [отворете нов проблем](https://github.com/microsoft/ML-For-Beginners/issues).
|
|
|
|
|
|
## Съдържание
|
|
|
|
|
|
- [Проблеми с инсталацията](../..)
|
|
|
- [Проблеми с Jupyter Notebook](../..)
|
|
|
- [Проблеми с Python пакети](../..)
|
|
|
- [Проблеми с R средата](../..)
|
|
|
- [Проблеми с приложението за тестове](../..)
|
|
|
- [Проблеми с данни и пътища към файлове](../..)
|
|
|
- [Често срещани съобщения за грешки](../..)
|
|
|
- [Проблеми с производителността](../..)
|
|
|
- [Среда и конфигурация](../..)
|
|
|
|
|
|
---
|
|
|
|
|
|
## Проблеми с инсталацията
|
|
|
|
|
|
### Инсталация на Python
|
|
|
|
|
|
**Проблем**: `python: command not found`
|
|
|
|
|
|
**Решение**:
|
|
|
1. Инсталирайте Python 3.8 или по-нова версия от [python.org](https://www.python.org/downloads/)
|
|
|
2. Проверете инсталацията: `python --version` или `python3 --version`
|
|
|
3. На macOS/Linux може да се наложи да използвате `python3` вместо `python`
|
|
|
|
|
|
**Проблем**: Конфликти между различни версии на Python
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Use virtual environments to isolate projects
|
|
|
python -m venv ml-env
|
|
|
|
|
|
# Activate virtual environment
|
|
|
# On Windows:
|
|
|
ml-env\Scripts\activate
|
|
|
# On macOS/Linux:
|
|
|
source ml-env/bin/activate
|
|
|
```
|
|
|
|
|
|
### Инсталация на Jupyter
|
|
|
|
|
|
**Проблем**: `jupyter: command not found`
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Install Jupyter
|
|
|
pip install jupyter
|
|
|
|
|
|
# Or with pip3
|
|
|
pip3 install jupyter
|
|
|
|
|
|
# Verify installation
|
|
|
jupyter --version
|
|
|
```
|
|
|
|
|
|
**Проблем**: Jupyter не се отваря в браузъра
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Try specifying the browser
|
|
|
jupyter notebook --browser=chrome
|
|
|
|
|
|
# Or copy the URL with token from terminal and paste in browser manually
|
|
|
# Look for: http://localhost:8888/?token=...
|
|
|
```
|
|
|
|
|
|
### Инсталация на R
|
|
|
|
|
|
**Проблем**: R пакетите не се инсталират
|
|
|
|
|
|
**Решение**:
|
|
|
```r
|
|
|
# Ensure you have the latest R version
|
|
|
# Install packages with dependencies
|
|
|
install.packages(c("tidyverse", "tidymodels", "caret"), dependencies = TRUE)
|
|
|
|
|
|
# If compilation fails, try installing binary versions
|
|
|
install.packages("package-name", type = "binary")
|
|
|
```
|
|
|
|
|
|
**Проблем**: IRkernel не е наличен в Jupyter
|
|
|
|
|
|
**Решение**:
|
|
|
```r
|
|
|
# In R console
|
|
|
install.packages('IRkernel')
|
|
|
IRkernel::installspec(user = TRUE)
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Проблеми с Jupyter Notebook
|
|
|
|
|
|
### Проблеми с ядрото (Kernel)
|
|
|
|
|
|
**Проблем**: Ядрото постоянно се рестартира или спира
|
|
|
|
|
|
**Решение**:
|
|
|
1. Рестартирайте ядрото: `Kernel → Restart`
|
|
|
2. Изчистете изхода и рестартирайте: `Kernel → Restart & Clear Output`
|
|
|
3. Проверете за проблеми с паметта (вижте [Проблеми с производителността](../..))
|
|
|
4. Стартирайте клетките една по една, за да идентифицирате проблемния код
|
|
|
|
|
|
**Проблем**: Избрано е грешно Python ядро
|
|
|
|
|
|
**Решение**:
|
|
|
1. Проверете текущото ядро: `Kernel → Change Kernel`
|
|
|
2. Изберете правилната версия на Python
|
|
|
3. Ако ядрото липсва, създайте го:
|
|
|
```bash
|
|
|
python -m ipykernel install --user --name=ml-env
|
|
|
```
|
|
|
|
|
|
**Проблем**: Ядрото не стартира
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Reinstall ipykernel
|
|
|
pip uninstall ipykernel
|
|
|
pip install ipykernel
|
|
|
|
|
|
# Register the kernel again
|
|
|
python -m ipykernel install --user
|
|
|
```
|
|
|
|
|
|
### Проблеми с клетките в Notebook
|
|
|
|
|
|
**Проблем**: Клетките се изпълняват, но не показват резултати
|
|
|
|
|
|
**Решение**:
|
|
|
1. Проверете дали клетката все още се изпълнява (потърсете индикатора `[*]`)
|
|
|
2. Рестартирайте ядрото и изпълнете всички клетки: `Kernel → Restart & Run All`
|
|
|
3. Проверете конзолата на браузъра за грешки в JavaScript (F12)
|
|
|
|
|
|
**Проблем**: Клетките не се изпълняват - няма реакция при натискане на "Run"
|
|
|
|
|
|
**Решение**:
|
|
|
1. Проверете дали Jupyter сървърът все още работи в терминала
|
|
|
2. Презаредете страницата на браузъра
|
|
|
3. Затворете и отворете отново Notebook-а
|
|
|
4. Рестартирайте Jupyter сървъра
|
|
|
|
|
|
---
|
|
|
|
|
|
## Проблеми с Python пакети
|
|
|
|
|
|
### Грешки при импортиране
|
|
|
|
|
|
**Проблем**: `ModuleNotFoundError: No module named 'sklearn'`
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
pip install scikit-learn
|
|
|
|
|
|
# Common ML packages for this course
|
|
|
pip install scikit-learn pandas numpy matplotlib seaborn
|
|
|
```
|
|
|
|
|
|
**Проблем**: `ImportError: cannot import name 'X' from 'sklearn'`
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Update scikit-learn to latest version
|
|
|
pip install --upgrade scikit-learn
|
|
|
|
|
|
# Check version
|
|
|
python -c "import sklearn; print(sklearn.__version__)"
|
|
|
```
|
|
|
|
|
|
### Конфликти с версии
|
|
|
|
|
|
**Проблем**: Грешки за несъвместимост на версии на пакети
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Create a new virtual environment
|
|
|
python -m venv fresh-env
|
|
|
source fresh-env/bin/activate # or fresh-env\Scripts\activate on Windows
|
|
|
|
|
|
# Install packages fresh
|
|
|
pip install jupyter scikit-learn pandas numpy matplotlib seaborn
|
|
|
|
|
|
# If specific version needed
|
|
|
pip install scikit-learn==1.3.0
|
|
|
```
|
|
|
|
|
|
**Проблем**: `pip install` не успява поради грешки с права
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Install for current user only
|
|
|
pip install --user package-name
|
|
|
|
|
|
# Or use virtual environment (recommended)
|
|
|
python -m venv venv
|
|
|
source venv/bin/activate
|
|
|
pip install package-name
|
|
|
```
|
|
|
|
|
|
### Проблеми с зареждане на данни
|
|
|
|
|
|
**Проблем**: `FileNotFoundError` при зареждане на CSV файлове
|
|
|
|
|
|
**Решение**:
|
|
|
```python
|
|
|
import os
|
|
|
# Check current working directory
|
|
|
print(os.getcwd())
|
|
|
|
|
|
# Use relative paths from notebook location
|
|
|
df = pd.read_csv('../../data/filename.csv')
|
|
|
|
|
|
# Or use absolute paths
|
|
|
df = pd.read_csv('/full/path/to/data/filename.csv')
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Проблеми с R средата
|
|
|
|
|
|
### Инсталация на пакети
|
|
|
|
|
|
**Проблем**: Инсталацията на пакети се проваля с грешки при компилация
|
|
|
|
|
|
**Решение**:
|
|
|
```r
|
|
|
# Install binary version (Windows/macOS)
|
|
|
install.packages("package-name", type = "binary")
|
|
|
|
|
|
# Update R to latest version if packages require it
|
|
|
# Check R version
|
|
|
R.version.string
|
|
|
|
|
|
# Install system dependencies (Linux)
|
|
|
# For Ubuntu/Debian, in terminal:
|
|
|
# sudo apt-get install r-base-dev
|
|
|
```
|
|
|
|
|
|
**Проблем**: `tidyverse` не се инсталира
|
|
|
|
|
|
**Решение**:
|
|
|
```r
|
|
|
# Install dependencies first
|
|
|
install.packages(c("rlang", "vctrs", "pillar"))
|
|
|
|
|
|
# Then install tidyverse
|
|
|
install.packages("tidyverse")
|
|
|
|
|
|
# Or install components individually
|
|
|
install.packages(c("dplyr", "ggplot2", "tidyr", "readr"))
|
|
|
```
|
|
|
|
|
|
### Проблеми с RMarkdown
|
|
|
|
|
|
**Проблем**: RMarkdown не се рендерира
|
|
|
|
|
|
**Решение**:
|
|
|
```r
|
|
|
# Install/update rmarkdown
|
|
|
install.packages("rmarkdown")
|
|
|
|
|
|
# Install pandoc if needed
|
|
|
install.packages("pandoc")
|
|
|
|
|
|
# For PDF output, install tinytex
|
|
|
install.packages("tinytex")
|
|
|
tinytex::install_tinytex()
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Проблеми с приложението за тестове
|
|
|
|
|
|
### Създаване и инсталация
|
|
|
|
|
|
**Проблем**: `npm install` не успява
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Clear npm cache
|
|
|
npm cache clean --force
|
|
|
|
|
|
# Remove node_modules and package-lock.json
|
|
|
rm -rf node_modules package-lock.json
|
|
|
|
|
|
# Reinstall
|
|
|
npm install
|
|
|
|
|
|
# If still fails, try with legacy peer deps
|
|
|
npm install --legacy-peer-deps
|
|
|
```
|
|
|
|
|
|
**Проблем**: Порт 8080 вече се използва
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Use different port
|
|
|
npm run serve -- --port 8081
|
|
|
|
|
|
# Or find and kill process using port 8080
|
|
|
# On Linux/macOS:
|
|
|
lsof -ti:8080 | xargs kill -9
|
|
|
|
|
|
# On Windows:
|
|
|
netstat -ano | findstr :8080
|
|
|
taskkill /PID <PID> /F
|
|
|
```
|
|
|
|
|
|
### Грешки при създаване
|
|
|
|
|
|
**Проблем**: `npm run build` не успява
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Check Node.js version (should be 14+)
|
|
|
node --version
|
|
|
|
|
|
# Update Node.js if needed
|
|
|
# Then clean install
|
|
|
rm -rf node_modules package-lock.json
|
|
|
npm install
|
|
|
npm run build
|
|
|
```
|
|
|
|
|
|
**Проблем**: Грешки при проверка на кода (Linting), които пречат на създаването
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Fix auto-fixable issues
|
|
|
npm run lint -- --fix
|
|
|
|
|
|
# Or temporarily disable linting in build
|
|
|
# (not recommended for production)
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Проблеми с данни и пътища към файлове
|
|
|
|
|
|
### Проблеми с пътища
|
|
|
|
|
|
**Проблем**: Данните не се намират при изпълнение на Notebook-и
|
|
|
|
|
|
**Решение**:
|
|
|
1. **Винаги изпълнявайте Notebook-ите от директорията, в която се намират**
|
|
|
```bash
|
|
|
cd /path/to/lesson/folder
|
|
|
jupyter notebook
|
|
|
```
|
|
|
|
|
|
2. **Проверете относителните пътища в кода**
|
|
|
```python
|
|
|
# Correct path from notebook location
|
|
|
df = pd.read_csv('../data/filename.csv')
|
|
|
|
|
|
# Not from your terminal location
|
|
|
```
|
|
|
|
|
|
3. **Използвайте абсолютни пътища, ако е необходимо**
|
|
|
```python
|
|
|
import os
|
|
|
base_path = os.path.dirname(os.path.abspath(__file__))
|
|
|
data_path = os.path.join(base_path, 'data', 'filename.csv')
|
|
|
```
|
|
|
|
|
|
### Липсващи файлове с данни
|
|
|
|
|
|
**Проблем**: Липсват файлове с данни
|
|
|
|
|
|
**Решение**:
|
|
|
1. Проверете дали данните трябва да са в репозитория - повечето набори от данни са включени
|
|
|
2. Някои уроци може да изискват изтегляне на данни - проверете README на урока
|
|
|
3. Уверете се, че сте изтеглили последните промени:
|
|
|
```bash
|
|
|
git pull origin main
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Често срещани съобщения за грешки
|
|
|
|
|
|
### Грешки с паметта
|
|
|
|
|
|
**Грешка**: `MemoryError` или ядрото спира при обработка на данни
|
|
|
|
|
|
**Решение**:
|
|
|
```python
|
|
|
# Load data in chunks
|
|
|
for chunk in pd.read_csv('large_file.csv', chunksize=10000):
|
|
|
process(chunk)
|
|
|
|
|
|
# Or read only needed columns
|
|
|
df = pd.read_csv('file.csv', usecols=['col1', 'col2'])
|
|
|
|
|
|
# Free memory when done
|
|
|
del large_dataframe
|
|
|
import gc
|
|
|
gc.collect()
|
|
|
```
|
|
|
|
|
|
### Предупреждения за конвергенция
|
|
|
|
|
|
**Предупреждение**: `ConvergenceWarning: Maximum number of iterations reached`
|
|
|
|
|
|
**Решение**:
|
|
|
```python
|
|
|
from sklearn.linear_model import LogisticRegression
|
|
|
|
|
|
# Increase max iterations
|
|
|
model = LogisticRegression(max_iter=1000)
|
|
|
|
|
|
# Or scale your features first
|
|
|
from sklearn.preprocessing import StandardScaler
|
|
|
scaler = StandardScaler()
|
|
|
X_scaled = scaler.fit_transform(X)
|
|
|
```
|
|
|
|
|
|
### Проблеми с визуализацията
|
|
|
|
|
|
**Проблем**: Графиките не се показват в Jupyter
|
|
|
|
|
|
**Решение**:
|
|
|
```python
|
|
|
# Enable inline plotting
|
|
|
%matplotlib inline
|
|
|
|
|
|
# Import pyplot
|
|
|
import matplotlib.pyplot as plt
|
|
|
|
|
|
# Show plot explicitly
|
|
|
plt.plot(data)
|
|
|
plt.show()
|
|
|
```
|
|
|
|
|
|
**Проблем**: Графиките на Seaborn изглеждат различно или хвърлят грешки
|
|
|
|
|
|
**Решение**:
|
|
|
```python
|
|
|
import warnings
|
|
|
warnings.filterwarnings('ignore', category=UserWarning)
|
|
|
|
|
|
# Update to compatible version
|
|
|
# pip install --upgrade seaborn matplotlib
|
|
|
```
|
|
|
|
|
|
### Грешки с Unicode/кодиране
|
|
|
|
|
|
**Проблем**: `UnicodeDecodeError` при четене на файлове
|
|
|
|
|
|
**Решение**:
|
|
|
```python
|
|
|
# Specify encoding explicitly
|
|
|
df = pd.read_csv('file.csv', encoding='utf-8')
|
|
|
|
|
|
# Or try different encoding
|
|
|
df = pd.read_csv('file.csv', encoding='latin-1')
|
|
|
|
|
|
# For errors='ignore' to skip problematic characters
|
|
|
df = pd.read_csv('file.csv', encoding='utf-8', errors='ignore')
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Проблеми с производителността
|
|
|
|
|
|
### Бавно изпълнение на Notebook-и
|
|
|
|
|
|
**Проблем**: Notebook-ите се изпълняват много бавно
|
|
|
|
|
|
**Решение**:
|
|
|
1. **Рестартирайте ядрото, за да освободите памет**: `Kernel → Restart`
|
|
|
2. **Затворете неизползвани Notebook-и**, за да освободите ресурси
|
|
|
3. **Използвайте по-малки проби от данни за тестване**:
|
|
|
```python
|
|
|
# Work with subset during development
|
|
|
df_sample = df.sample(n=1000)
|
|
|
```
|
|
|
4. **Профилирайте кода си**, за да намерите тесните места:
|
|
|
```python
|
|
|
%time operation() # Time single operation
|
|
|
%timeit operation() # Time with multiple runs
|
|
|
```
|
|
|
|
|
|
### Висока употреба на памет
|
|
|
|
|
|
**Проблем**: Системата изчерпва паметта
|
|
|
|
|
|
**Решение**:
|
|
|
```python
|
|
|
# Check memory usage
|
|
|
df.info(memory_usage='deep')
|
|
|
|
|
|
# Optimize data types
|
|
|
df['column'] = df['column'].astype('int32') # Instead of int64
|
|
|
|
|
|
# Drop unnecessary columns
|
|
|
df = df[['col1', 'col2']] # Keep only needed columns
|
|
|
|
|
|
# Process in batches
|
|
|
for batch in np.array_split(df, 10):
|
|
|
process(batch)
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Среда и конфигурация
|
|
|
|
|
|
### Проблеми с виртуална среда
|
|
|
|
|
|
**Проблем**: Виртуалната среда не се активира
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Windows
|
|
|
python -m venv venv
|
|
|
venv\Scripts\activate.bat
|
|
|
|
|
|
# macOS/Linux
|
|
|
python3 -m venv venv
|
|
|
source venv/bin/activate
|
|
|
|
|
|
# Check if activated (should show venv name in prompt)
|
|
|
which python # Should point to venv python
|
|
|
```
|
|
|
|
|
|
**Проблем**: Пакетите са инсталирани, но не се намират в Notebook-а
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Ensure notebook uses the correct kernel
|
|
|
# Install ipykernel in your venv
|
|
|
pip install ipykernel
|
|
|
python -m ipykernel install --user --name=ml-env --display-name="Python (ml-env)"
|
|
|
|
|
|
# In Jupyter: Kernel → Change Kernel → Python (ml-env)
|
|
|
```
|
|
|
|
|
|
### Проблеми с Git
|
|
|
|
|
|
**Проблем**: Не може да се изтеглят последните промени - конфликти при сливане
|
|
|
|
|
|
**Решение**:
|
|
|
```bash
|
|
|
# Stash your changes
|
|
|
git stash
|
|
|
|
|
|
# Pull latest
|
|
|
git pull origin main
|
|
|
|
|
|
# Reapply your changes
|
|
|
git stash pop
|
|
|
|
|
|
# If conflicts, resolve manually or:
|
|
|
git checkout --theirs path/to/file # Take remote version
|
|
|
git checkout --ours path/to/file # Keep your version
|
|
|
```
|
|
|
|
|
|
### Интеграция с VS Code
|
|
|
|
|
|
**Проблем**: Jupyter Notebook-ите не се отварят в VS Code
|
|
|
|
|
|
**Решение**:
|
|
|
1. Инсталирайте разширението Python в VS Code
|
|
|
2. Инсталирайте разширението Jupyter в VS Code
|
|
|
3. Изберете правилния Python интерпретатор: `Ctrl+Shift+P` → "Python: Select Interpreter"
|
|
|
4. Рестартирайте VS Code
|
|
|
|
|
|
---
|
|
|
|
|
|
## Допълнителни ресурси
|
|
|
|
|
|
- **Дискусии в Discord**: [Задавайте въпроси и споделяйте решения в канала #ml-for-beginners](https://aka.ms/foundry/discord)
|
|
|
- **Microsoft Learn**: [Модули за ML за начинаещи](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
|
|
|
- **Видео уроци**: [Плейлист в YouTube](https://aka.ms/ml-beginners-videos)
|
|
|
- **Тракер за проблеми**: [Докладвайте грешки](https://github.com/microsoft/ML-For-Beginners/issues)
|
|
|
|
|
|
---
|
|
|
|
|
|
## Все още имате проблеми?
|
|
|
|
|
|
Ако сте опитали горните решения и все още срещате трудности:
|
|
|
|
|
|
1. **Потърсете съществуващи проблеми**: [GitHub Issues](https://github.com/microsoft/ML-For-Beginners/issues)
|
|
|
2. **Проверете дискусиите в Discord**: [Discord Discussions](https://aka.ms/foundry/discord)
|
|
|
3. **Отворете нов проблем**: Включете:
|
|
|
- Вашата операционна система и версия
|
|
|
- Версия на Python/R
|
|
|
- Съобщение за грешка (пълен traceback)
|
|
|
- Стъпки за възпроизвеждане на проблема
|
|
|
- Какво вече сте опитали
|
|
|
|
|
|
Тук сме, за да помогнем! 🚀
|
|
|
|
|
|
---
|
|
|
|
|
|
**Отказ от отговорност**:
|
|
|
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод. |