Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Происхождение материалов

Источник

Материал основан на учебнике «Dive into Deep Learning» (动手学深度学习), репозиторий d2l-ai/d2l-zh. Текст лицензирован по CC BY-SA 4.0, код примеров — по MIT-0.

Что есть сейчас

  • Структура книги: book.toml, meta.toml, NOTICE.md, PROVENANCE.md.

  • Вступительная страница src/README.md с кратким описанием книги.

  • Глава 1 «Введение»: src/01_introduction.md (перевод всего главного текста, подписей, таблицы и списка литературы).

  • Глава 2 «Предварительные знания»: src/02_preliminaries.md (вступление) и семь разделов src/02_01_ndarray.md … src/02_07_lookup_api.md. Соответствие исходникам из chapter_preliminaries/: ndarray, pandas, linear-algebra, calculus, autograd, probability, lookup-api.

  • Оглавление src/SUMMARY.md.

  • Иллюстрации главы 1 в src/images/: пять схем перерисованы в SVG с русскими подписями, четыре фотографии взяты из исходного репозитория.

  • Иллюстрации главы 2 в src/images/: polygon-circle.svg и cat-dog-pixels.png скопированы без изменений (текста на них нет).

  • Глава 3 «Линейные нейронные сети»: src/03_linear_networks.md (вступление) и семь разделов src/03_01_linear_regression.md … src/03_07_softmax_regression_concise.md. Соответствие исходникам из chapter_linear-networks/: linear-regression, linear-regression-scratch, linear-regression-concise, softmax-regression, image-classification-dataset, softmax-regression-scratch, softmax-regression-concise. Исходные файлы *_origin.md (английская версия) не использовались.

  • Иллюстрации главы 3 в src/images/: singleneuron.svg, softmaxreg.svg, neuron.svg перерисованы с русскими подписями; fit-linreg.svg скопирован без изменений.

Предисловие, установка, обозначения, приложение и список литературы переведены; общие изменения перечислены в разделе «Сквозные изменения» в конце файла.

  • Глава 4 «Многослойные перцептроны»: src/04_multilayer_perceptrons.md (вступление) и десять разделов src/04_01_mlp.md … src/04_10_kaggle_house_price.md. Соответствие исходникам из chapter_multilayer-perceptrons/: index, mlp, mlp-scratch, mlp-concise, underfit-overfit, weight-decay, dropout, backprop, numerical-stability-and-init, environment, kaggle-house-price. Исходные файлы *_origin.md (английская версия) не использовались.
  • Иллюстрации главы 4 в src/images/: mlp.svg, dropout2.svg, capacity-vs-error.svg, cat-dog-train.svg, cat-dog-test.svg перерисованы или пересобраны с русскими подписями; forward.svg и popvssoda.png взяты без изменений.
  • Глава 5 «Вычисления глубокого обучения»: src/05_deep_learning_computation.md (вступление) и шесть разделов src/05_01_model_construction.md … src/05_06_use_gpu.md. Соответствие исходникам из chapter_deep-learning-computation/: model-construction, parameters, deferred-init, custom-layer, read-write, use-gpu. Исходные файлы *_origin.md (английская версия) не использовались.
  • Иллюстрации главы 5 в src/images/: blocks.svg скопирован без изменений (текста на нём нет), copyto.svg перерисован с русской подписью.
  • Глава 6 «Свёрточные нейронные сети»: src/06_convolutional_neural_networks.md (вступление) и шесть разделов src/06_01_why_conv.md … src/06_06_lenet.md. Соответствие исходникам из chapter_convolutional-neural-networks/: index, why-conv, conv-layer, padding-and-strides, channels, pooling, lenet. Исходные файлы *_origin.md (английская версия) не использовались.
  • Иллюстрации главы 6 в src/images/: correlation.svg, conv-multi-in.svg, conv-1x1.svg, conv-pad.svg, conv-stride.svg, pooling.svg, lenet.svg, lenet-vert.svg перерисованы с русскими подписями; фотографии из игры «Где Вальдо?» не включены.

Глава 8: что изменено относительно оригинала

  • Переведены вступление главы и разделы 8.1–8.7 (src/08_*.md): модели последовательностей, предобработка текста, языковые модели и набор данных, рекуррентные нейронные сети, реализация с нуля, краткая реализация и обратное распространение через время (BPTT). Соответствие исходникам из chapter_recurrent-neural-networks/: index, sequence, text-preprocessing, language-models-and-dataset, rnn, rnn-scratch, rnn-concise, bptt. Исходные файлы *_origin.md (английская версия) не использовались.
  • Код не изменён: переведены комментарии, docstring и строки вывода print и подписи графиков ('время', 'частота', 'эпоха', 'перплексия'). Разметка #@tab и :begin_tab: заменена подписями фреймворков; общий код (#@tab all) выведен без подписи, как в главах 2–6.
  • Ссылки Sphinx заменены обычным текстом: :numref: → «раздел 3.3», «рис. 8.4.1»; :eqref: → «(8.7.3)»; :cite: → «(Wu et al., 2017)». Нумерация формул и рисунков совпадает с книгой: формулы, которым в исходнике присвоена метка, пронумерованы по разделу (8.3.1, 8.4.1–8.4.4, 8.7.1–8.7.9).
  • Подписи в тексте: названия фильмов «Plan 9 from Outer Space» и «Troll 2» записаны полностью, как в исходнике; ссылки на Википедию и онлайн-приложение по теории информации сохранены.
  • Иллюстрации:
    • перерисованы заново с русскими подписями (производные работы): rnn.svg (рис. 8.4.1), rnn-train.svg (рис. 8.4.2), sequence-model.svg (рис. 8.1.2);
    • скопированы без изменений: rnn-bptt.svg (рис. 8.7.2), truncated-bptt.svg (рис. 8.7.1) и timemachine-5gram.svg (рис. 8.3.1). На них только математические обозначения и английские данные примера, перевода не требуется;
    • ftse100.png (рис. 8.1.1) скопирован без изменений. Это растровый график, на котором остался английский заголовок «FTSE 100 Index» и числовые оси; перерисовка потребует исходных данных, поэтому подпись не переведена.

Глава 7: что изменено относительно оригинала

  • Переведены вступление главы и разделы 7.1–7.7 (src/07_*.md): AlexNet, VGG, NiN, GoogLeNet, пакетная нормализация, ResNet и DenseNet.
  • Код не изменён: переведены комментарии, docstring и строки вывода print. Разметка #@tab и :begin_tab: заменена подписями фреймворков (**MXNet:** и т. д.), как в главах 2–6.
  • Исправления по сравнению с исходником:
    • в разделе 7.3 (NiN) исходный текст называет глобальный средний пулинг «суммированием по всем позициям»; в переводе сказано «усреднение», что соответствует самому слою;
    • на схеме AlexNet в исходном vgg.svg все три последних свёрточных слоя показаны с 384 каналами; в перерисованной схеме пятый свёрточный слой имеет 256 каналов, как в коде раздела 7.1.
  • Иллюстрации перерисованы заново с русскими подписями (производные работы): alexnet.svg, vgg.svg, nin.svg, inception.svg, inception-full.svg, residual-block.svg, resnet-block.svg, resnet18.svg, functionclasses.svg, densenet.svg, densenet-block.svg. Номера рисунков в тексте соответствуют книге.

Исключено из перевода

  • Рис. 7.1.1 исходника (filters.png, фильтры первого слоя AlexNet из статьи Krizhevsky et al., 2012): рисунок стороннего издания. В тексте оставлено описание и ссылка на статью.

Глава 6: что изменено относительно оригинала

  • Вкладки фреймворков оформлены как в главах 2–5: жирная подпись фреймворка перед блоком кода (например, «PyTorch:», «MXNet, PyTorch, PaddlePaddle:»). Общий код (#@tab all) выведен без подписи. Маркеры #@tab удалены, маркеры #@save в коде оставлены.
  • Текст вкладок :begin_tab: переведён в виде абзацев с жирной подписью фреймворка. Если текст относится к нескольким фреймворкам, подпись общая.
  • Ссылки Sphinx заменены обычным текстом: «рис. 6.2.1», «раздел 6.1.4.1», «формула (6.1.2)», «раздел 4.8». Номера формул (6.1.1)–(6.1.3) проставлены по помеченным уравнениям раздела 6.1, как в главах 3–4. Ссылка :cite: оформлена как «(LeCun et al., 1998)»; список литературы приведён в разделе 6.6.
  • Маркеры выделения [**…**] и (**…**) переведены в обычное полужирное выделение. Зачёркнутые фрагменты исходника (заголовок «1x1卷积» в разделе 6.4 и «卷积编码器和全连接层密集块» в разделе 6.6) не переносились.
  • Подписи в выводе программ и на графиках переведены: эпоха, потери, точность, примеров/с, на. Легенды графиков: «потери (обучение)», «точность (обучение)», «точность (тест)». Имена функций, переменные и выражения не изменены.
  • Ссылки «Discussions» сохранены, по каждой вкладке оформлены как «Обсуждение» (как в главах 2–5).
  • Опечатка в исходнике: в разделе 6.1.2 вместо написано «»; в переводе использовано .
  • Иллюстрации where-wally-walker-books.jpg и waldo-mask.jpg (сцены из игры «Где Вальдо?») не включены в перевод: это иллюстрации стороннего издания. Вместо них в тексте оставлены подписи с пояснением (как рис. 1.6 в главе 1).
  • Схемы correlation.svg, conv-multi-in.svg, conv-1x1.svg, conv-pad.svg, conv-stride.svg, pooling.svg, lenet.svg и lenet-vert.svg перерисованы заново с русскими подписями по схемам оригинала (производные работы). Числа на схемах совпадают с исходными и с текстом (например, 19, 25, 37, 43 в разделе 6.2 и 56, 72, 104, 120 в разделе 6.4). На lenet.svg вход изображён пустой сеткой 28×28, без рукописной цифры.

Глава 4: что изменено относительно оригинала

  • Вкладки фреймворков оформлены как в главах 2–3: жирная подпись фреймворка перед блоком кода (например, «PyTorch:», «MXNet, PyTorch:»). Общий код (#@tab all) выведен без подписи. Маркер #@tab удалён, маркер #@save в коде оставлен.
  • Текст вкладок :begin_tab: (раздел 4.5.4) переведён в виде абзацев с жирной подписью фреймворка.
  • Ссылки Sphinx заменены обычным текстом: «рис. 4.1.1», «раздел 3.4.3», «формула (3.1.4)», «глава 3». Ссылки :cite: оформлены как «(Zhang et al., 2021)», «(Srivastava et al., 2014)», «(Glorot and Bengio, 2010)» и т. д. Номера формул (4.7.1), (4.7.2) и (4.9.1)–(4.9.3) проставлены через \tag{}.
  • Маркеры выделения [**…**] и (**…**) переведены в обычное полужирное выделение; для формул выделение убрано. В заголовках маркеров нет.
  • Вычеркнутое в исходнике предложение в разделе 4.5 («权重衰减是最广泛使用的正则化的技术之一») не переносилось.
  • Подписи в выводе программ и на графиках переведены: эпохи, потери, обучение, тест, вес, L2-норма w, Одна матрица, Фолд, log rmse и т. п. Имена функций, переменные и выражения не изменены. В главе 3 подписи Animator (xlabel='epoch', legend=['train loss', …]) оставлены на английском; в главе 4 они переведены. При желании главу 3 можно привести к тому же виду.
  • Подписи к рисункам — текст под изображением, как в главах 1–3.
  • Перерисованные схемы: в mlp.svg и dropout2.svg математические обозначения (x, h, o) оставлены как в исходнике, заменены только подписи слоёв и «До/После исключения». В capacity-vs-error.svg все подписи переведены, линии и стрелки сохранены. В cat-dog-train.svg и cat-dog-test.svg подписи «cat» и «dog» заменены на «кошка» и «собака», фотографии сохранены.

Исключено из перевода

  • Скриншоты страниц Kaggle (kaggle.png, house-pricing.png, kaggle-submit2.png) — страницы стороннего сайта, по аналогии с рис. 1.6 главы 1 они не включены. В разделе 4.10 сохранены текстовые описания и ссылка на соревнование.

Глава 5: что изменено относительно оригинала

  • Вкладки фреймворков оформлены как в главах 2–4: жирная подпись фреймворка перед блоком кода. Блоки {.python .input} без #@tab выведены с подписью «MXNet:». Общий код (#@tab all) выведен без подписи. Маркер #@tab удалён, маркер #@save в коде оставлен.
  • Текст вкладок :begin_tab: переведён в виде абзацев с жирной подписью. Если текст относится к нескольким фреймворкам, подпись общая, например «MXNet, TensorFlow:» или «PyTorch, PaddlePaddle:».
  • Ссылки Sphinx заменены обычным текстом: «рис. 5.1.1», «рис. 5.6.1», «раздел 2.5», «раздел 4.3», «раздел 4.8», «раздел 5.1», «раздел 12.1», «таблица 1.1». Ссылка :cite: оформлена как «(He et al., 2016)»; список литературы в главе не приводится, как и в главе 4.
  • Маркеры выделения [**…**] и (**…**) переведены в обычное полужирное выделение; в заголовках маркеров нет. Номера разделов и подразделов проставлены в заголовках, как в главе 4.
  • Подписи в выводе функций my_init (раздел 5.2.2.2) переведены: Init → «Инициализация».
  • Схема copyto.svg: подпись «复制» заменена на «копирование», подписи gpu(0), gpu(1), X, Y, Z и + сохранены. Ширина схемы увеличена, чтобы подпись поместилась в зазор между блоками.
  • Выражения, имена функций и параметры в коде не изменены.

Замечания к исходнику, оставленные без изменений

  • Раздел 5.2 (упражнение 1) ссылается на модель FancyMLP, которой нет в разделе 5.1: там определены MLP, FixedHiddenMLP и NestMLP. В переводе сохранено как в исходнике.

Глава 3: что изменено относительно оригинала

  • Вкладки фреймворков оформлены так же, как в главе 2: жирная подпись с названиями фреймворков (например, «PyTorch:», «MXNet, PyTorch:»). Маркеры #@tab удалены, #@tab all выведен без подписи, #@save оставлен в коде.
  • Текст вкладок :begin_tab: (например, пояснения к nn.Linear и Dense в разделе 3.3) переведён в виде абзацев с жирной подписью фреймворка.
  • Ссылки Sphinx заменены обычным текстом: «рис. 3.1.2», «раздел 2.1.3», «глава 11», «формула (3.4.2)». Номера формул проставлены через \tag{} для помеченных уравнений (3.1.1)–(3.1.4), (3.4.1)–(3.4.4).
  • Ссылки :cite: оформлены как «(Russell and Norvig, 2016)», «(LeCun et al., 1998)», «(Xiao et al., 2017)», «(Zhang et al., 2021)». Список литературы по d2l.bib приведён в конце раздела 3.7.
  • Подписи к рисункам: в исходнике подписи — это альтернативный текст изображений; в переводе сохранён такой же подход, как в главе 2.
  • Зачёркнутый в исходнике заголовок «Две функции для визуализации набора данных» (раздел 3.5) не переносился. Зачёркнутые слова «softmax» (раздел 3.7) и «之前» (раздел 3.7.4) тоже опущены.
  • Наименования классов Fashion-MNIST переведены на русский (футболка, брюки, пуловер, платье, пальто, сандалия, рубашка, кроссовок, сумка, ботильон); они используются и в списке меток, и в подписях графиков.
  • Строки вывода и подписи графиков (эпоха, потери, среднее, ст. откл., Ошибка оценки) переведены. Сами выражения и имена функций не изменены.

Замечания к исходнику, оставленные без изменений

  • Раздел 3.4.1: соответствие классов и меток в исходнике противоречиво. Целочисленная кодировка даёт 1 = собака, 2 = кошка, 3 = курица, а прямое кодирование — (1, 0, 0) = кошка, (0, 1, 0) = курица, (0, 0, 1) = собака. В переводе оставлено как в исходнике; сверить с оригиналом.
  • Раздел 3.5.3: функция load_data_fashion_mnist возвращает итератор «проверочной» (validation) выборки, хотя на деле это тестовый набор Fashion-MNIST. В переводе сохранено как в исходнике.
  • Раздел 3.6.4 и 3.7.2: ссылка на «трюк LogSumExp» ведёт на английскую Википедию; оставлена без изменений.
  • Ссылка на приложение о распределениях и о теории информации (разделы 3.4.6.2 и 3.4.6.3) ведёт на английскую версию приложения на d2l.ai; оставлена без изменений.

Глава 2: что изменено относительно оригинала

  • Вкладки фреймворков. В исходнике каждый фрагмент кода и текста помечен для MXNet, PyTorch, TensorFlow или PaddlePaddle (#@tab, :begin_tab:). В переводе все четыре варианта сохранены, каждый помечен жирной подписью (например, «PyTorch:»). Общий код (#@tab all) выведен без подписи. Маркер #@tab удалён, маркер #@save в коде оставлен, как в исходной книге.
  • Ссылки Sphinx заменены обычным текстом: «рис. 2.4.1», «раздел 2.3.10.1», «таблица 2.6.1», «формула (2.3.2)». Номера формул проставлены через \tag{} для помеченных уравнений (2.3.1), (2.3.2), (2.4.1).
  • Ссылка :cite: в разделе 2.3 оформлена как «(Strang, 1993; Kolter, 2008; Petersen and Pedersen, 2008)». Список литературы составлен по d2l.bib; в записи Kolter 2008 исходный URL неполный (http), поэтому указано «Available online».
  • Маркеры выделения [**…**] и (**…**) из исходника переведены в обычное полужирное выделение **…**.
  • Таблицы 2.6.1 и 2.6.2 (тест на ВИЧ) получили подписи по нумерации книги. Подписи в исходнике оформлены как отдельная строка перед таблицей, здесь сохранено такое же расположение.
  • Термин 插值法 в разделе 2.2 переведён как «импутация» (заполнение пропусков): в контексте речь именно о замене пропусков, а не об интерполяции.
  • Замечания к исходнику, которые оставлены без изменений:
    • ссылка «Discussions» для PaddlePaddle (discuss.d2l.ai/t/11684) одинакова в разделах 2.4 и 2.5; вероятно, это опечатка в исходной книге, сверить с форумом;
    • в разделе 2.3.7 определение скалярного произведения повторено в зачёркнутой строке — сохранено как в исходнике.
  • Служебные строки кода (%matplotlib inline, импорты, npx.set_np(), warnings.filterwarnings) оставлены без изменений.

Что изменено относительно оригинала

  • Схемы. В исходных SVG надписи хранятся как контуры глифов, поэтому их нельзя отредактировать. Схемы перерисованы с теми же раскладкой, цветами и стрелками, подписи набраны текстом. Исходные подписи расшифрованы из OmniGraffle-файлов исходного репозитория.
  • Ссылки Sphinx (:numref:, :cite:, :label:, :width:) заменены обычным текстом: «рис. 1.1», «таблица 1.1», «раздел 3.4», а ссылки на литературу — парами «автор, год» (например, «(Turing, 1950)»).
  • Список литературы составлен по записям d2l.bib исходного репозитория; названия работ оставлены на языке оригинала.
  • Исправлены несогласованности и ошибки оригинала:
    • год публикации набора данных ирисов Фишера: в тексте китайской версии указаны и 1936, и 1932 год; в переводе — 1936 (статья Фишера);
    • TD-Gammon: в китайской версии сказано «五子棋» (гомоку), но речь идёт о программе для нард (backgammon); в переводе — нарды, как в английской версии и в цитируемой работе;
    • «库图斯» в китайской версии соответствует программе Libratus (Brown and Sandholm, 2017); в переводе использовано название Libratus;
    • ссылки на Википедию «Jacob\uBernoulli» и «Ronald_-Fisher» исправлены на «Jacob_Bernoulli» и «Ronald_Fisher»;
    • «克莱德定律» переведено как закон Крайдера (Kryder’s law).
  • Подписи к фотографиям и схемам переведены; подписи к таблице 1.1 и её заголовки приведены к русскому тексту.
  • Код в главе 1 отсутствует; переведены только текстовые примеры (блоки text).

Что не включено в перевод

  • Рис. 1.6 (скриншот страницы Amazon с рекомендациями книг): изображение принадлежит стороннему сайту, поэтому вместо него в тексте оставлена подпись с пояснением.
  • Англоязычные оригиналы глав (файлы *_origin.md) — это не китайский текст книги.
  • Статические файлы сайта (static/), исходники схем (graffle/), служебные скрипты сборки (ci/, .github/), файлы вкладов сообщества (contrib/).

Главы 9–12: что изменено относительно оригинала

  • Переведены главы 9 «Современные рекуррентные нейронные сети», 10 «Механизмы внимания», 11 «Алгоритмы оптимизации» и 12 «Вычислительная производительность». Соответствие исходникам: chapter_recurrent-modern/, chapter_attention-mechanisms/, chapter_optimization/, chapter_computational-performance/ (только основные файлы, *_origin.md не использовались).
  • Вкладки фреймворков оформлены жирной подписью перед блоком кода (**MXNet:**, **PyTorch:**, **TensorFlow:**, **PaddlePaddle:**); общий код (#@tab all) выведен без подписи. Маркеры #@tab удалены, #@save оставлен.
  • Ссылки Sphinx заменены обычным текстом: «рис. 12.2.1», «раздел 12.3», «таблица 12.4.1», формулы в скобках. Ссылки :cite: оформлены как «(He et al., 2016)» и т. п.

Глава 12: замечания к исходнику

  • 12.3: в тексте сказано « раз» умножения матриц, в коде функции run — range(50). В переводе сохранено значение из кода (50) и сказано « раз».
  • 12.3, упражнение 1: сказано «восемь операций», хотя run выполняет 50 умножений. Оставлено как в исходнике.
  • 12.1: в исходнике опечатка EargeTensor; в переводе записано EagerTensor.
  • 12.4: в исходнике «Arste Asanovic» — в переводе «Krste Asanović».

Глава 12: иллюстрации

  • Перерисованы заново с русскими подписями (производные работы): frontends.svg (вместо растрового frontends.png с логотипами, без логотипов), threading.svg, a77.svg, mobo-symbol.svg, neon128.svg, alexnet-original.svg (упрощённая схема двух GPU по мотивам исходной схемы AlexNet, не копия рисунка статьи), data-parallel.svg, splitting.svg, ps.svg, bw-hierarchy.svg, ps-distributed.svg, ps-multips.svg, ps-multimachine.svg.
  • Скопированы без изменений (на них только английские названия продуктов, код или математика, китайского текста нет): asyncgraph.svg, computegraph.svg, twogpu.svg (фотографии процессоров и видеокарт из исходника сохранены), skylake.svg, falsesharing.svg, nvlink.svg, nvlink-twoloop.svg, ringsync.svg.
  • Не включены: latencynumbers.png (инфографика стороннего автора с числами по мотивам лекции Джеффа Дина; данные приведены в таблицах 12.4.1 и 12.4.2 по исходнику), tensorcore.jpg, turing.png, turing-processing-block.png (иллюстрации производителя GPU, в тексте оставлены пояснения).

Глава 13: что изменено относительно оригинала

  • Переведены вступление главы и разделы 13.1–13.14 (src/13_*.md). Соответствие исходникам из chapter_computer-vision/: image-augmentation, fine-tuning, bounding-box, anchor, multiscale-object-detection, object-detection-dataset, ssd, rcnn, semantic-segmentation-and-dataset, transposed-conv, fcn, neural-style, kaggle-cifar10, kaggle-dog. Исходные файлы *_origin.md (английская версия) не использовались.
  • Вкладки фреймворков оформлены жирной подписью перед блоком кода (**MXNet:**, **PyTorch:**, **TensorFlow:**, **PaddlePaddle:**, при общем коде — **PyTorch, PaddlePaddle:** и т. п.); общий код (#@tab all) выведен без подписи. Маркеры #@tab удалены, #@save оставлен.
  • Ссылки Sphinx заменены обычным текстом: «рис. 13.2.1», «раздел 7.1», «таблица» и т. п. Ссылки :cite: оформлены как «(Liu et al., 2016)» и т. п.
  • Подписи в коде, комментарии, docstring и подписи графиков переведены. Вывод print и легенды графиков: «потери (обучение)», «точность (тест)», «эпоха» и т. п. Имена функций, переменные и выражения не изменены.
  • Зачёркнутые в исходнике заголовки ([~~数据增广~~], [~~超参数~~]) не переносились.
  • Исправление в тексте: в разделе 13.1 ссылка на раздел об AlexNet переведена как раздел 7.1 (в исходнике sec_alexnet).

Глава 13: иллюстрации

  • Перерисованы заново с русскими подписями (производные работы): anchor-label.svg, fcn.svg, finetune.svg, iou.svg, trans_conv.svg, trans_conv_stride2.svg, roi.svg, segmentation.svg, r-cnn.svg, fast-rcnn.svg, faster-rcnn.svg, mask-rcnn.svg, ssd.svg, neural-style.svg, style-transfer.svg. Фотографии (кошка и собака из catdog.jpg, пейзаж rainier.jpg, картина autumn-oak.jpg) встроены в SVG в уменьшенном виде; так схемы отображаются корректно, когда mdBook загружает их как изображения.
  • style-transfer.svg показывает только два входных изображения (содержимое и стиль). Синтезированный результат в книге не воспроизведён: он получается при запуске кода раздела 13.12 и не был взят из исходника.
  • Фотографии из img/, которые нужны только коду (cat1.jpg, banana.jpg), скопированы в src/images/ без изменений.
  • Не включены: kaggle-cifar10.png (рис. 13.13.1) и kaggle-dog.jpg (рис. 13.14.1) — скриншоты страниц соревнований Kaggle, по аналогии с главой 4 в тексте оставлено описание.

Главы 14–15: что изменено относительно оригинала

  • Переведены вступления и разделы 14.1–14.10 (src/14_*.md) и 15.1–15.7 (src/15_*.md). Соответствие исходникам из chapter_natural-language-processing-pretraining/: word2vec, approx-training, word-embedding-dataset, word2vec-pretraining, glove, subword-embedding, similarity-analogy, bert, bert-dataset, bert-pretraining; и из chapter_natural-language-processing-applications/: sentiment-analysis-and-dataset, sentiment-analysis-rnn, sentiment-analysis-cnn, natural-language-inference-and-dataset, natural-language-inference-attention, finetuning-bert, natural-language-inference-bert. Файлы *_origin.md (английская версия) использовались только для сверки мест, где китайский перевод оказался искажён.
  • Вкладки фреймворков оформлены жирной подписью перед блоком кода (**MXNet:**, **PyTorch:**, **PaddlePaddle:**, при общем коде — **MXNet, PyTorch:** и т. п.); общий код (#@tab all) выведен без подписи, а блок без пометки в исходнике — это вкладка MXNet. Маркеры #@tab удалены, #@save оставлен.
  • Ссылки Sphinx заменены обычным текстом: «рис. 14.1.1», «раздел 14.8», «табл. 14.5.1»; ссылки на подразделы записаны как «подраздел «…» раздела N.M». К формулам с метками добавлены номера \tag{14.1.1}. Ссылки :cite: оформлены как «(Mikolov et al., 2013b)»; две статьи Миколова 2013 года различены буквами a и b. В конце разделов с цитированием добавлен список «Литература».
  • Подписи в коде, комментарии, docstring, вывод print и подписи графиков переведены; имена функций, переменные и выражения не изменены. Проверка: токены кода во всех блоках совпадают с исходником, различаются только строковые литералы.

Главы 14–15: замечания к исходнику

  • 14.8: в исходнике особый токен назван «<seq>» вместо <sep>; в переводе везде <sep>.
  • 14.9: в исходнике сказано, что функция _pad_bert_inputs «добавляет специальные токены <mask>»; она дополняет входы токеном <pad>, в переводе так и сказано.
  • 14.6: в китайском тексте искажены примеры с символом _ («a_all er_man»); по английскому оригиналу — «a_ tall er_ man» и «faster_», «taller_» разбиваются на «fast er_» и «tall er_».
  • 14.3, 14.6: в исходнике обрывочные комментарии (# Exclude, # Readthetrainingset.) заменены законченными по смыслу.
  • 15.3: ссылка на несуществующую метку subsec_multi-output-channels заменена ссылкой на подраздел «Несколько выходных каналов» раздела 6.4.
  • 15.4: в китайском тексте пример следования искажён («表白» — признание в любви); по английскому оригиналу гипотеза — «Две женщины проявляют нежность» (showing affection).
  • 15.5: в пояснении к формуле (15.5.2) при в исходнике стоит индекс ; в переводе .
  • 15.2: в версии для PaddlePaddle в исходнике stop_gradient = False у весов вложений, хотя по тексту их не нужно обновлять, и опечатка "weigth" в условии инициализации; код оставлен без изменений.

Главы 14–15: иллюстрации

  • Перерисованы заново с русскими подписями (производные работы): nlp-map-pretrain.svg, nlp-map-app.svg, nlp-map-sa-rnn.svg, nlp-map-sa-cnn.svg, nlp-map-nli-attention.svg, nlp-map-nli-bert.svg, elmo-gpt-bert.svg, bert-input.svg, bert-one-seq.svg, bert-two-seqs.svg, bert-tagging.svg, bert-qa.svg, conv1d.svg, conv1d-2d.svg, conv1d-channel.svg, textcnn.svg, nli-attention.svg. Английские примеры внутри схем («i do need sleep», «a model loading and inference api…») сохранены. На схеме nlp-map-nli-attention.svg подписи архитектур выровнены с остальными схемами (в оригинале они английские: MLP, CNN, RNN, Attention).
  • Скопированы без изменений (на них только английские слова и математика): skip-gram.svg, cbow.svg, hi-softmax.svg.

Сквозные изменения

  • Нумерация. Подписи рисунков — «Рис. N.M.k. …», таблиц — «Таблица N.M.k. …». Формулы с метками переведены в \tag{N.M.k}. Ссылки Sphinx :numref: и :eqref: заменены на «рис. N.M.k», «раздел N.M», «формула (N.M.k)».
  • Литература. :cite: заменён на «(Автор et al., год)». Сводный список src/references.md собран из разделов «Литература» глав (155 записей). Записи, которых не было в списках глав, добавлены в разделы, где на них есть ссылка, по библиографии d2l.bib исходного репозитория (авторы и названия оставлены на языке оригинала).
  • Обсуждения. Ссылки на форум сохранены в виде [Обсуждение](…). Для нескольких фреймворков используется отдельная строка **FW:**.
  • Вкладки фреймворков. Подписи **MXNet:**, **PyTorch:**, **TensorFlow:**, **PaddlePaddle:** ставятся перед блоком кода. Общий код (#@tab all) выведен без подписи. Маркеры #@save сохранены.
  • Терминология. «Прямое распространение» вместо «прямой проход». «Подавление немаксимумов» вместо «не-максимальное подавление». «Дообучение» вместо «тонкая настройка». «Минибатч» и «пакетное матричное умножение» — единые термины по всей книге.
  • Код. Переведены комментарии, строки вывода, docstring и подписи графиков. Выражения, имена переменных и функций не изменены.
  • Исключено из перевода. Скриншоты страниц сторонних сайтов (Kaggle в главе 13, Amazon в главе 16), фотографии из игры «Где Вальдо?» (глава 6), filters.png (рис. 7.1.1, статья Krizhevsky et al., 2012). ftse100.png (глава 8) оставлен с английским заголовком, так как перерисовка требует исходных данных.
  • Исправления ошибок исходника. В разделе 7.3 слово «суммирование» заменено на «усреднение», как в самом слое. На схеме AlexNet пятый свёрточный слой показан с 256 каналами, как в коде раздела 7.1. В разделе 15.6.3 тег части речи для глагола «is» исправлен с VB на VBZ. Итоговый список исправлений приведён в описании глав выше.
  • Проверки. scripts/check_books.py и scripts/check_links.py проходят без ошибок. Перекрёстная проверка «(Автор, год)» ↔ список литературы — без пропусков, кроме одной ссылки в предисловии, где в тексте стоит «Bollobas», а в списке — «Bollobás».

Отображение на сайте

  • Подряд идущие блоки кода для разных фреймворков (MXNet, PyTorch, TensorFlow, PaddlePaddle) на сайте показаны вкладками. В исходных .md файлах они остаются отдельными блоками с подписями «PyTorch:» и т. д.; вкладки создаёт препроцессор scripts/mdbook_framework_tabs.py при сборке. Выбранный фреймворк запоминается в браузере (по умолчанию PyTorch).
  • Подписи, за которыми следует текст, а не код, остаются обычными абзацами: в исходниках не отмечено, где такой вариант заканчивается.
  • Формулы \tilde{...} записаны как \widetilde{...}: KaTeX выводит для \tilde знак «~», который mdBook принимает за зачёркивание.