Происхождение материалов
Источник
Материал основан на учебнике «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 определение скалярного произведения повторено в зачёркнутой строке — сохранено как в исходнике.
- ссылка «Discussions» для PaddlePaddle (
- Служебные строки кода (
%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 принимает за зачёркивание.