TensorFlow 文件樣式指南

最佳做法

  • 專注於使用者意圖和目標對象。
  • 使用日常用語並保持句子簡短。
  • 使用一致的句子結構、措辭和大小寫。
  • 使用標題和清單讓您的文件更容易掃描。
  • 《Google 開發人員文件樣式指南》很有幫助。

Markdown

TensorFlow 使用的 Markdown 語法與GitHub Flavored Markdown (GFM) 類似,但有一些例外。本節說明 GFM Markdown 語法與 TensorFlow 文件使用的 Markdown 之間的差異。

撰寫程式碼相關內容

程式碼的內嵌提及

當在文字中使用下列符號時,請在符號周圍加上 `反引號`

  • 引數名稱:`input``x``tensor`
  • 傳回的張量名稱:`output``idx``out`
  • 資料類型:`int32``float``uint8`
  • 文字中參考的其他運算名稱:`list_diff()``shuffle()`
  • 類別名稱:`tf.Tensor``Strategy`
  • 檔案名稱:`image_ops.py``/path_to_dir/file_name`
  • 數學運算式或條件:`-1-input.dims() <= dim <= input.dims()`

程式碼區塊

使用三個反引號來開啟和關閉程式碼區塊。您可以選擇在第一個反引號群組後指定程式語言,例如


```python
# some python code here
```

在單一 GitHub 儲存庫中使用檔案之間的相對連結。請加入副檔名。

例如,您正在閱讀的這個檔案來自 https://github.com/tensorflow/docs 儲存庫。因此,它可以像這樣使用相對路徑連結到同一儲存庫中的其他檔案

  • [Basics](../../guide/basics.ipynb) 產生 Basics

這是建議的方法,因為這樣一來,tensorflow.orgGitHubColab 上的連結都能運作。此外,讀者在點擊連結時會停留在同一個網站中。

對於不在目前儲存庫中的檔案連結,請使用具有完整 URI 的標準 Markdown 連結。如果有的話,請優先連結到 tensorflow.org URI。

若要連結到原始碼,請使用以 https://www.github.com/tensorflow/tensorflow/blob/master/ 開頭的連結,後面接著從 GitHub 根目錄開始的檔案名稱。

tensorflow.org 連結出去時,請在 Markdown 連結中加入 {:.external},以便顯示「外部連結」符號。

  • [GitHub](https://github.com/tensorflow/docs){:.external} 產生 GitHub

請勿在連結中加入 URI 查詢參數

  • 使用:<a href="https://tensorflow.dev.org.tw/guide/data">https://tensorflow.dev.org.tw/guide/data</a>
  • 而非:<a href="https://tensorflow.dev.org.tw/guide/data?hl=en">https://tensorflow.dev.org.tw/guide/data?hl=en</a>

圖片

前一節中的建議適用於頁面的連結。圖片的處理方式不同。

一般來說,您不應簽入圖片,而是將 TensorFlow 文件團隊新增至您的 PR,並要求他們將圖片託管在 tensorflow.org 上。這有助於縮減儲存庫的大小。

如果您確實將圖片提交到您的儲存庫,請注意某些系統不處理圖片的相對路徑。最好使用指向圖片在 tensorflow.org 上最終位置的完整 URL。

API 連結會在網站發佈時轉換。若要連結到符號的 API 參考頁面,請將符號路徑放在反引號中

除了長路徑之外,稍微偏好完整路徑。路徑可以透過捨棄開頭路徑元件來縮寫。如果符合下列條件,部分路徑將會轉換為連結

  • 路徑中至少有一個 .,且
  • 部分路徑在專案中是唯一的。

API 路徑會針對每個在 tensorflow.org 上發佈 Python API 的專案連結。您可以透過將 API 名稱加上反引號,輕鬆地從單一檔案連結到多個子專案。例如

對於具有多個路徑別名的符號,稍微偏好與 tensorflow.org 上的 API 頁面相符的路徑。所有別名都會重新導向到正確的頁面。

Markdown 中的數學式

您可以在編輯 Markdown 檔案時在 TensorFlow 中使用 MathJax,但請注意下列事項

  • MathJax 在 tensorflow.org 上正確呈現。
  • MathJax 在 GitHub 上無法正確呈現。
  • 此標記法可能會讓不熟悉的開發人員反感。
  • 為了保持一致性,tensorflow.org 遵循與 Jupyter/Colab 相同的規則。

在 MathJax 區塊周圍使用 $$

$$
E=\frac{1}{2n}\sum_x\lVert (y(x)-y'(x)) \rVert^2
$$

\[ E=\frac{1}{2n}\sum_x\lVert (y(x)-y'(x)) \rVert^2 \]

使用 $ ... $ 包裝內嵌 MathJax 運算式


This is an example of an inline MathJax expression: $ 2 \times 2 = 4 $

以下是內嵌 MathJax 運算式的範例:\( 2 \times 2 = 4 \)

\\( ... \\) 分隔符號也適用於內嵌數學式,但 $ 形式有時更易於閱讀。

散文風格

如果您要撰寫或編輯敘述性文件的大部分內容,請閱讀《Google 開發人員文件樣式指南》

良好風格的原則

  • 檢查您貢獻內容中的拼字和文法。 大多數編輯器都包含拼字檢查器,或具有可用的拼字檢查外掛程式。您也可以將文字貼到 Google 文件或其他文件軟體中,以進行更完善的拼字和文法檢查。
  • 使用隨性友善的語氣。 撰寫 TensorFlow 文件時,就像在對話一樣,彷彿您正在與另一個人一對一交談。在文章中使用支持性的語氣。
  • 避免免責聲明、意見和價值判斷。 「輕鬆」、「僅僅」和「簡單」等詞語帶有許多假設。對您來說可能很容易的事情,對另一個人來說可能很困難。盡可能避免使用這些詞語。
  • 使用簡單、切入重點的句子,避免使用複雜的術語。 複合句、子句鏈和特定地點的慣用語可能會使文字難以理解和翻譯。如果一個句子可以分成兩個句子,則可能應該這樣做。避免使用分號。在適當時使用項目符號清單。
  • 提供背景資訊。 請勿在沒有解釋的情況下使用縮寫。請勿在沒有連結到非 TensorFlow 專案的情況下提及它們。說明程式碼為何以這種方式撰寫。

用法指南

運算

在 markdown 檔案中,當您想要顯示運算傳回的內容時,請使用 # ⇒ 而不是單一等號。

# 'input' is a tensor of shape [2, 3, 5]
tf.expand_dims(input, 0)  # ⇒ [1, 2, 3, 5]

在筆記本中,顯示結果而不是新增註解 (如果筆記本單元格中的最後一個運算式未指派給變數,則會自動顯示。)

在 API 參考文件中,最好使用 doctest 來顯示結果。

張量

當您一般談論張量時,請勿將「張量」一詞大寫。當您談論提供給運算或從運算傳回的特定物件時,則應將「張量」一詞大寫,並在其周圍加上反引號,因為您談論的是 Tensor 物件。

除非您真的在談論 Tensors 物件,否則請勿使用「張量」(複數) 一詞來描述多個 Tensor 物件。請改為說「Tensor 物件的清單 (或集合)」。

使用「形狀」一詞來詳細說明張量的軸,並以方括號和反引號顯示形狀。例如


If `input` is a three-axis `Tensor` with shape `[3, 4, 3]`, this operation
returns a three-axis `Tensor` with shape `[6, 8, 6]`.

如上所述,當談論 Tensor 形狀的元素時,最好使用「軸」或「索引」而不是「維度」。否則,很容易將「維度」與向量空間的維度混淆。「三維向量」具有長度為 3 的單一軸。