- Rõ ràng, trôi chảy, thực tế, và nhất quán
- Be clear, engaging, pragmatic, and consistent
- Chapters and Sections
- Provide an overview at the beginning of each chapter
- Be consistent in the structure of each section
- Summary
- Exercises
- References (if any)
- Quotes
- Use double quotes
- Symbol Descriptions
- time step t(not t time step)
- Tools, Class, and Functions
- Gluon, MXNet, NumPy, spaCy, NDArray, Symbol, Block, HybridBlock, ResNet-18, Fashion-MNIST, matplotlib
- Consider these as words without accents (``)
- Sequential class/instance, HybridSequential class/instance
- Without accents (``)
backward
function- not
backward()
function
- not
- for loop
- Gluon, MXNet, NumPy, spaCy, NDArray, Symbol, Block, HybridBlock, ResNet-18, Fashion-MNIST, matplotlib
- Terminologies
- Consistently use
- function (not method)
- instance (not object)
- weight, bias, label
- model training, model prediction (model inference)
- training/testing/validation data set
- Distinguish:
- hyperparameter vs parameter
- mini-batch stochastic gradient descent vs stochastic gradient descent
- List
- Consistently use
- Be consistent in math format
- Reference
- the equation above/below (Equation numbering is to be consolidated by the Press)
- the N equations above/below
- Place punctuations within equations if necessary
- e.g., comma and period
- Assignment sumbol
- \leftarrow
- Software
- Use OmniGraffle to make figures.
- Export pdf (infinite canvas) in 100%, then use pdf2svg to convert to svg
ls | while read f; do pdf2svg $f ${f%.pdf}.svg; done
- Do not export svg directly from Omnigraffle (font size may slightly change)
- Export pdf (infinite canvas) in 100%, then use pdf2svg to convert to svg
- Use OmniGraffle to make figures.
- Style
- Size:
- Horizontal:<= 400 pixels (limited by page width)
- Vertical:<= 200 pixels (exceptions may be made)
- Thickness:
- StickArrow
- 1pt
- arrow head size: 50%
- Font:
- Arial, 9pt(subscripts:7pt)
- Color:
- Blue as background (text is black)
- Dark:66BFFF
- Light:B2D9FF
- Blue as background (text is black)
- Size:
- Be careful about copyright
- Reference
- e.g., Figure 7.1 (manually)
- matplotlib
- Each line must have <=80 characters (limited by page width)
- Use utils.py to encapsulate classes/functions that are repetitively used
- Give full implementation when it is used for the first time
- Python
- To save space, put several assignments on the same line
- e.g,
num_epochs, lr = 5, 0.1
- e.g,
- Be consistent in variable names
num_epochs
- number of epochs
num_hiddens
- number of hidden units
num_inputs
- number of inputs
num_outputs
- number of outputs
net
- model
lr
- learning rate
acc
- accuracy
- During iterations
- features:
X
- labels:
y
,y_hat
orY
,Y_hat
for X, y in data_iter
- features:
- Data sets:
- features:
features
orimages
- labels:
labels
- DataLoader instance:
train_iter
,test_iter
,data_iter
- features:
- Comments
- Add period at the end of comments.
- imports
- import alphabetically
from mxnet.gluon import data as gdata, loss as gloss, nn, utils as gutils
- Print outputs
epoch, lr, loss, train acc, time
- Around 5 lines
- Print variables
- if possible use
x, y
instead ofprint('x:', x, 'y:', y)
at the end of the code block
- if possible use
- String
- Use single quotes
- Other items
nd.f(x)
→x.nd
random_normal
→random.normal
- multiple imports
.1
→1.0
-
- →
1.0
- →
- remove namescope
- Internal hyperlinks
- In the “Linear Regression” section
- External hyperlinks
- Append references at the end of each section
- Google Scholar: APA format
- All references are to be consolidated by the Press