Skip to content

Commit ef12344

Browse files
committed
Revert "ruler 79 fix"
This reverts commit 6de4b4b.
1 parent d6ccc8a commit ef12344

File tree

19 files changed

+58
-43
lines changed

19 files changed

+58
-43
lines changed

chapter_computer-vision/fcn.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,8 @@ test_iter = gdata.DataLoader(
178178
ctx = d2l.try_all_gpus()
179179
loss = gloss.SoftmaxCrossEntropyLoss(axis=1)
180180
net.collect_params().reset_ctx(ctx)
181-
trainer = gluon.Trainer(net.collect_params(), 'sgd',
182-
{'learning_rate': 0.1, 'wd': 1e-3})
181+
trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': 0.1,
182+
'wd': 1e-3})
183183
d2l.train(train_iter, test_iter, net, loss, trainer, ctx, num_epochs=5)
184184
```
185185

chapter_computer-vision/fine-tuning.md

+2
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,8 @@ hotdog_w = nd.split(weight.data(), 1000, axis=0)[713]
175175
hotdog_w.shape
176176
```
177177

178+
179+
178180
## 参考文献
179181

180182
[1] GluonCV工具包。https://gluon-cv.mxnet.io/

chapter_computer-vision/kaggle-gluon-cifar10.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,8 @@ reorg_cifar10_data(data_dir, label_file, train_dir, test_dir, input_dir,
143143
transform_train = gdata.vision.transforms.Compose([
144144
# 将图像放大成高和宽各为40像素的正方形
145145
gdata.vision.transforms.Resize(40),
146-
# 随机对高和宽各为40像素的正方形图像裁剪出面积为原图像面积0.64~1倍的小正方形,再放缩为高
147-
# 和宽各为32像素的正方形
146+
# 随机对高和宽各为40像素的正方形图像裁剪出面积为原图像面积0.64~1倍的小正方形,再放缩为
147+
# 高和宽各为32像素的正方形
148148
gdata.vision.transforms.RandomResizedCrop(32, scale=(0.64, 1.0),
149149
ratio=(1.0, 1.0)),
150150
gdata.vision.transforms.RandomFlipLeftRight(),

chapter_computer-vision/neural-style.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ $$\sum_{i,j} \left|x_{i,j} - x_{i+1,j}\right| + \left|x_{i,j} - x_{i,j+1}\right|
147147

148148
```{.python .input n=13}
149149
def tv_loss(Y_hat):
150-
return 0.5 * ((Y_hat[:, :, 1:, :] - Y_hat[:, :, :-1, :]).abs().mean()
151-
+ (Y_hat[:, :, :, 1:] - Y_hat[:, :, :, :-1]).abs().mean())
150+
return 0.5 * ((Y_hat[:, :, 1:, :] - Y_hat[:, :, :-1, :]).abs().mean() +
151+
(Y_hat[:, :, :, 1:] - Y_hat[:, :, :, :-1]).abs().mean())
152152
```
153153

154154
### 损失函数

chapter_computer-vision/ssd.md

+6-5
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ from mxnet.gluon import loss as gloss, nn
2828
import time
2929
3030
def cls_predictor(num_anchors, num_classes):
31-
return nn.Conv2D(num_anchors * (num_classes + 1), kernel_size=3, padding=1)
31+
return nn.Conv2D(num_anchors * (num_classes + 1), kernel_size=3,
32+
padding=1)
3233
```
3334

3435
### 边界框预测层
@@ -152,8 +153,8 @@ class TinySSD(nn.Block):
152153
for i in range(5):
153154
# 即赋值语句self.blk_i = get_blk(i)
154155
setattr(self, 'blk_%d' % i, get_blk(i))
155-
setattr(self, 'cls_%d' % i,
156-
cls_predictor(num_anchors, num_classes))
156+
setattr(self, 'cls_%d' % i, cls_predictor(num_anchors,
157+
num_classes))
157158
setattr(self, 'bbox_%d' % i, bbox_predictor(num_anchors))
158159
159160
def forward(self, X):
@@ -258,8 +259,8 @@ for epoch in range(20):
258259
m += bbox_labels.size
259260
260261
if (epoch + 1) % 5 == 0:
261-
print('epoch %2d, class err %.2e, bbox mae %.2e, time %.1f sec'
262-
% (epoch + 1, 1 - acc_sum / n, mae_sum / m, time.time() - start))
262+
print('epoch %2d, class err %.2e, bbox mae %.2e, time %.1f sec' % (
263+
epoch + 1, 1 - acc_sum / n, mae_sum / m, time.time() - start))
263264
```
264265

265266
## 预测

chapter_deep-learning-basics/dropout.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ from mxnet.gluon import loss as gloss, nn
3333
def dropout(X, drop_prob):
3434
assert 0 <= drop_prob <= 1
3535
keep_prob = 1 - drop_prob
36-
if keep_prob == 0: # 这种情况下把全部元素都丢弃
36+
# 这种情况下把全部元素都丢弃
37+
if keep_prob == 0:
3738
return X.zeros_like()
3839
mask = nd.random.uniform(0, 1, X.shape) < keep_prob
3940
return mask * X / keep_prob
@@ -99,8 +100,8 @@ def net(X):
99100
num_epochs, lr, batch_size = 5, 0.5, 256
100101
loss = gloss.SoftmaxCrossEntropyLoss()
101102
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
102-
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, batch_size, params,
103-
lr)
103+
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, batch_size,
104+
params, lr)
104105
```
105106

106107
## 简洁实现

chapter_deep-learning-basics/fashion-mnist.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ Fashion-MNIST中一共包括了10个类别,分别为t-shirt(T恤)、trouse
5050
```{.python .input n=25}
5151
# 本函数已保存在d2lzh包中方便以后使用
5252
def get_fashion_mnist_labels(labels):
53-
text_labels = ['t-shirt', 'trouser', 'pullover', 'dress', 'coat', 'sandal',
54-
'shirt', 'sneaker', 'bag', 'ankle boot']
53+
text_labels = ['t-shirt', 'trouser', 'pullover', 'dress', 'coat',
54+
'sandal', 'shirt', 'sneaker', 'bag', 'ankle boot']
5555
return [text_labels[int(i)] for i in labels]
5656
```
5757

chapter_deep-learning-basics/linear-regression-gluon.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@ Gluon提供了`data`包来读取数据。由于`data`常用作变量名,我们
2626
from mxnet.gluon import data as gdata
2727
2828
batch_size = 10
29-
dataset = gdata.ArrayDataset(features, labels) # 将训练数据的特征和标签组合
30-
data_iter = gdata.DataLoader(dataset, batch_size, shuffle=True) # 随机读取小批量
29+
# 将训练数据的特征和标签组合
30+
dataset = gdata.ArrayDataset(features, labels)
31+
# 随机读取小批量
32+
data_iter = gdata.DataLoader(dataset, batch_size, shuffle=True)
3133
```
3234

3335
这里`data_iter`的使用跟上一节中的一样。让我们读取并打印第一个小批量数据样本。

chapter_deep-learning-basics/linear-regression-scratch.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ net = linreg
137137
loss = squared_loss
138138
139139
for epoch in range(num_epochs): # 训练模型一共需要num_epochs个迭代周期
140-
# 在每一个迭代周期中,会使用训练数据集中所有样本一次(假设样本数能够被批量大小整除)。X和
141-
# y分别是小批量样本的特征和标签
140+
# 在每一个迭代周期中,会使用训练数据集中所有样本一次(假设样本数能够被批量大小整除)。X
141+
# 和y分别是小批量样本的特征和标签
142142
for X, y in data_iter(batch_size, features, labels):
143143
with autograd.record():
144144
l = loss(net(X, w, b), y) # l是有关小批量X和y的损失

chapter_deep-learning-basics/mlp-scratch.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ loss = gloss.SoftmaxCrossEntropyLoss()
6969

7070
```{.python .input n=7}
7171
num_epochs, lr = 5, 0.5
72-
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, batch_size, params,
73-
lr)
72+
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, batch_size,
73+
params, lr)
7474
```
7575

7676
## 小结

chapter_deep-learning-basics/weight-decay.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,8 @@ def fit_and_plot_gluon(wd):
147147
trainer_b.step(batch_size)
148148
train_ls.append(loss(net(train_features),
149149
train_labels).mean().asscalar())
150-
test_ls.append(loss(net(test_features), test_labels).mean().asscalar())
150+
test_ls.append(loss(net(test_features),
151+
test_labels).mean().asscalar())
151152
d2l.semilogy(range(1, num_epochs + 1), train_ls, 'epochs', 'loss',
152153
range(1, num_epochs + 1), test_ls, ['train', 'test'])
153154
print('L2 norm of w:', net[0].weight.data().norm().asscalar())

chapter_deep-learning-computation/model-construction.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ class MySequential(nn.Block):
5151
super(MySequential, self).__init__(**kwargs)
5252
5353
def add(self, block):
54-
# block是一个Block子类实例,假设它有一个独一无二的名字。我们将它保存在Block类的成
55-
# 员变量_children里,其类型是OrderedDict。当MySequential实例调用initialize函
56-
# 数时,系统会自动对_children里所有成员初始化
54+
# block是一个Block子类实例,假设它有一个独一无二的名字。我们将它保存在Block类的
55+
# 成员变量_children里,其类型是OrderedDict。当MySequential实例调用
56+
# initialize函数时,系统会自动对_children里所有成员初始化
5757
self._children[block.name] = block
5858
5959
def forward(self, x):

chapter_natural-language-processing/machine-translation.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ PAD, BOS, EOS = '<pad>', '<bos>', '<eos>'
2020
接着定义两个辅助函数对后面读取的数据进行预处理。
2121

2222
```{.python .input}
23-
# 将一个序列中所有的词记录在all_tokens中以便之后构造词典,然后在该序列后面添加PAD直到序列长
24-
# 度变为max_seq_len,然后将序列保存在all_seqs中
23+
# 将一个序列中所有的词记录在all_tokens中以便之后构造词典,然后在该序列后面添加PAD直到序列
24+
# 长度变为max_seq_len,然后将序列保存在all_seqs中
2525
def process_one_seq(seq_tokens, all_tokens, all_seqs, max_seq_len):
2626
all_tokens.extend(seq_tokens)
2727
seq_tokens += [EOS] + [PAD] * (max_seq_len - len(seq_tokens) - 1)

chapter_natural-language-processing/sentiment-analysis-rnn.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ import tarfile
2626
首先下载这个数据集到`../data`路径下,然后解压至`../data/aclImdb`下。
2727

2828
```{.python .input n=3}
29-
def download_imdb(data_dir='../data'): # 本函数已保存在d2lzh包中方便以后使用
29+
# 本函数已保存在d2lzh包中方便以后使用
30+
def download_imdb(data_dir='../data'):
3031
url = ('http://ai.stanford.edu/~amaas/data/sentiment/aclImdb_v1.tar.gz')
3132
sha1 = '01ada507287d82875905620988597833ad4e0903'
3233
fname = gutils.download(url, data_dir, sha1_hash=sha1)
@@ -127,8 +128,8 @@ class BiRNN(nn.Block):
127128
self.decoder = nn.Dense(2)
128129
129130
def forward(self, inputs):
130-
# inputs的形状是(批量大小, 词数),因为LSTM需要将序列作为第一维,所以将输入转置后再
131-
# 提取词特征,输出形状为(词数, 批量大小, 词向量维度)
131+
# inputs的形状是(批量大小, 词数),因为LSTM需要将序列作为第一维,所以将输入转置后
132+
# 再提取词特征,输出形状为(词数, 批量大小, 词向量维度)
132133
embeddings = self.embedding(inputs.T)
133134
# states形状是(词数, 批量大小, 2 * 隐藏单元个数)
134135
states = self.encoder(embeddings)

chapter_natural-language-processing/word2vec-gluon.md

+3
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,9 @@ get_similar_tokens('chip', 3, net[0])
349349
* 当数据集较大时,我们通常在迭代模型参数时才对当前小批量里的中心词采样背景词和噪声词。也就是说,同一个中心词在不同的迭代周期可能会有不同的背景词或噪声词。这样训练有哪些好处?尝试实现该训练方法。
350350

351351

352+
353+
354+
352355
## 参考文献
353356

354357
[1] Penn Tree Bank. https://catalog.ldc.upenn.edu/LDC99T42

chapter_optimization/adadelta.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ def adadelta(params, states, hyperparams):
5151
使用超参数$\rho=0.9$来训练模型。
5252

5353
```{.python .input n=12}
54-
d2l.train_ch7(adadelta, init_adadelta_states(), {'rho': 0.9}, features, labels)
54+
d2l.train_ch7(adadelta, init_adadelta_states(), {'rho': 0.9}, features,
55+
labels)
5556
```
5657

5758
## 简洁实现

chapter_optimization/adam.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ def adam(params, states, hyperparams):
5959
使用学习率为0.01的Adam算法来训练模型。
6060

6161
```{.python .input n=5}
62-
d2l.train_ch7(adam, init_adam_states(), {'lr': 0.01, 't': 1}, features, labels)
62+
d2l.train_ch7(adam, init_adam_states(), {'lr': 0.01, 't': 1}, features,
63+
labels)
6364
```
6465

6566
## 简洁实现

chapter_optimization/momentum.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@ d2l.train_ch7(sgd_momentum, init_momentum_states(),
146146
在Gluon中,只需要在`Trainer`实例中通过`momentum`来指定动量超参数即可使用动量法。
147147

148148
```{.python .input n=9}
149-
d2l.train_gluon_ch7('sgd', {'learning_rate': 0.004, 'momentum': 0.9}, features,
150-
labels)
149+
d2l.train_gluon_ch7('sgd', {'learning_rate': 0.004, 'momentum': 0.9},
150+
features, labels)
151151
```
152152

153153
## 小结

chapter_recurrent-neural-networks/rnn-scratch.md

+10-8
Original file line numberDiff line numberDiff line change
@@ -226,19 +226,21 @@ pred_period, pred_len, prefixes = 50, 50, ['分开', '不分开']
226226
下面采用随机采样训练模型并创作歌词。
227227

228228
```{.python .input n=13}
229-
train_and_predict_rnn(rnn, get_params, init_rnn_state, num_hiddens, vocab_size,
230-
ctx, corpus_indices, idx_to_char, char_to_idx, True,
231-
num_epochs, num_steps, lr, clipping_theta, batch_size,
232-
pred_period, pred_len, prefixes)
229+
train_and_predict_rnn(rnn, get_params, init_rnn_state, num_hiddens,
230+
vocab_size, ctx, corpus_indices, idx_to_char,
231+
char_to_idx, True, num_epochs, num_steps, lr,
232+
clipping_theta, batch_size, pred_period, pred_len,
233+
prefixes)
233234
```
234235

235236
接下来采用相邻采样训练模型并创作歌词。
236237

237238
```{.python .input n=19}
238-
train_and_predict_rnn(rnn, get_params, init_rnn_state, num_hiddens, vocab_size,
239-
ctx, corpus_indices, idx_to_char, char_to_idx, False,
240-
num_epochs, num_steps, lr, clipping_theta, batch_size,
241-
pred_period, pred_len, prefixes)
239+
train_and_predict_rnn(rnn, get_params, init_rnn_state, num_hiddens,
240+
vocab_size, ctx, corpus_indices, idx_to_char,
241+
char_to_idx, False, num_epochs, num_steps, lr,
242+
clipping_theta, batch_size, pred_period, pred_len,
243+
prefixes)
242244
```
243245

244246
## 小结

0 commit comments

Comments
 (0)