深度學習的敲門磚:手把手教你TensorFlow初級入門

2021-01-14 機器學習AI算法工程

向AI轉型的程式設計師都關注了這個號👇👇👇


        人工智慧大數據與深度學習  公眾號: weic2c


在開始使用機器學習算法之前,我們應該首先熟悉如何使用它們。 而本文就是通過對TensorFlow的一些基本特點的介紹,讓你了解它是機器學習類庫中的一個不錯的選擇。

讓我們設想一下,當我們用Python寫代碼時,沒有那些方便的類庫會是怎樣一種窘境。 這就好比你有一個新的智慧型手機,而不安裝任何應用程式。 雖然它仍然可以打電話,發簡訊,但如果有了那些更方便的應用程式,這部智慧型手機才更有價值。

 

設想一下這個場景...你作為一名業務負責人,需要負責跟蹤銷售流程。 你希望計算銷售產品的收入。 現在有100個不同的產品在你的倉庫中,你需要用一個向量表示每個產品的價格。另一個大小為100的向量表示每個產品的庫存量。 以下的Python代碼是用來計算銷售所有產品的收入。注意了, 這裡沒有調用任何類庫。

  

revenue = 0for price, amount in zip(prices, amounts):    revenue += price * amount

 

代碼列表1. 不使用任何Python類庫計算兩個向量的內積

 

這段代碼只是計算兩個向量(也稱為點積)的內積。 想像一下,對於更複雜的問題,需要多少代碼。例如求解線性方程或計算兩個向量之間的距離。

 

當你安裝TensorFlow類庫的同時,其中還包括了非常知名的NumPy類庫,對Python編程中的數學操作非常有用。用Python編程時,不使用類庫(例如NumPy和TensorFlow)就像使用沒有自動對焦的相機:你雖然獲得了更多的靈活性,但你可能很容易犯錯。在機器學習的過程中已經很容易犯錯誤了,所以就讓我們使用TensorFlow來提高化軟體開發的效率吧。

 

代碼列表2展示了如何使用NumPy簡潔地編寫相同的內積運算。

 

import numpy as nprevenue = np.dot(prices, amounts)

代碼列表2. 用NumPy類庫計算內積


Python是一種簡潔的語言,這意味著你不會看到冗長的代碼。另一方面,Python語言的簡潔意味著許多處理都在後臺進行,因此我們應該熟悉它背後的原理。

 

關於TensorFlow的Python和C ++ API的各種函數的詳細文檔,請參見https://www.tensorflow.org/api_docs/index.html

 

機器學習主要依賴於很多數學公式,本文將對使用TensorFlow進行這類數學運算做一個初步的介紹。通過示例和代碼,大家可以對TensorFlow有一個初步了解。例如如何運用TensorFlow計算大數據的統計信息。 因此本文的重點將完全是關於如何使用TensorFlow,而不是一般的機器學習算法運用。

 

機器學習算法需要大量的數學運算。 通常,某個算法可以歸結為簡單函數組合的迭代,直到它收斂為止。 當然,也可以使用任何標準程式語言來執行這些計算。但是使用像TensorFlow這樣已經非常完善了的類庫是提高代碼可控性和性能的關鍵。


確保TensorFlow工作

首先,為我們的第一段代碼創建一個名為test.py的新文件。 通過運行以下代碼導入TensorFlow:

 

import tensorflow as tf


在導入TensorFlow後,如果Python解釋器沒有報錯,那麼我們就可以開始使用TensorFlow了。

 

遇到了錯誤? 在這裡,常見錯誤的原因是你可能安裝了GPU版本,並且類庫無法搜索CUDA驅動程序。 請記住,如果使用CUDA編譯庫,則需要使用CUDA的路徑更新環境變量。 你需要檢查TensorFlow上的CUDA指令。 (有關詳情,請參閱https://www.tensorflow.org/versions/master/get_started/os_setup.html#optional-linux-enable-gpu-support)。


使用TensorFlow中的規則

TensorFlow庫通常使用tf限定名稱來進行導入。 一般來說,使用tf限定名稱是一個不錯的方法,以便與其他開發人員和開源TensorFlow項目保持一致。 你也可以選擇不使用這個限定名稱,但這會影響你在自己的項目中重用別人的TensorFlow代碼。

表示張量

在現實世界中描述對象的一個簡便方法就是通過羅列出它的屬性或特徵。 例如,我們可以通過顏色,型號,發動機類型和裡程數描述一輛汽車。 這些特徵的有序列表被稱為特徵向量,這正是我們要在TensorFlow代碼中所表示的。

特徵向量是機器學習中最有用的方法之一,(它們就是一個數字列表)。每個數據項通常有一個特徵向量,而一個好的數據集則具有數千個特徵向量。 毫無疑問,你會經常一次處理多個向量。 矩陣簡明地表示了向量列表,其中矩陣的每列表示一個特徵向量。

 

在TensorFlow中用向量的向量表示矩陣,每個向量具有相同的長度。 圖1是一個兩行三列的矩陣的示例,例如[[1,2,3],[4,5,6]]。 注意,這是一個包含兩個元素的向量,每個元素對應一個矩陣行。

 

 

圖1.圖上半部分是計算機對矩陣的表示,下半部分是我們日常生活中對矩陣的表示。 這種形式的符號是大多數科學計算類庫中的常見範例。

 

我們通過指定其行和列索引來定位矩陣中的元素。 例如,第一行和第一列來表示左上角第一個元素。 有時,我們需要使用兩個以上的索引,這樣來表示一個元素會很方便。例如,在表示一個圖片中的像素時,我們不僅通過其行和列值來描述它,而且還使用紅,綠,藍通道來對其進行描述。 張量是通過任意數量的索引指定矩陣中元素的一般化。

 

一個張量的例子...假設一所小學為每個學生分配座位。 而你是這個學校的校長,並且你記不住這些學生的名字。 幸運的是,每個教室都有一個座位網格,可以通過學生的行和列來指定某個學生。

 

因為有多個教室,所以你不能簡單的說「早上好,4排10列!」你還需要指定教室,比如說「你好, 教室2的4排10列」。不像矩陣只需要兩個索引就能指定一個元素,這所學校的學生需要三個數字。 這三個數字都是三階張量的一部分!

 

張量是更多的嵌套向量。例如,一個2×3×2的張量為[[[1,2],[3,4],[5,6]],[[7,8],[9,10] 11,12]]],它可以被認為是兩個矩陣,每個大小為3×2。 因此,我們說這個張量的秩是3.一般來說,張量的秩是指定一個元素所需的索引的數量。 TensorFlow中的機器學習算法是作用於張量上的,理解如何使用它們是關鍵。

 

圖2.該張量可以被認為是堆疊在彼此之上的多個矩陣。 要指定其中的某個元素,必須指明行和列,以及要訪問的矩陣。 因此,該張量的秩為三。

  

你可能會對如何表示張量產生疑惑。下面三行代碼試圖表示相同的2×2矩陣。 該矩陣表示兩個維度的兩個特徵向量。 例如,它可以表示兩個人對兩部電影的評價。 每個人,由矩陣的行索引表示,分配一個數字來描述每個人的電影評價值,由列索引表示。 運行代碼以了解如何在TensorFlow中生成矩陣。

 

import tensorflow as tf# We』ll use NumPy matrices in TensorFlowimport numpy as np   # Define a 2x2 matrix in 3 different waysm1 = [[1.0, 2.0],      [3.0, 4.0]]m2 = np.array([[1.0, 2.0],               [3.0, 4.0]], dtype=np.float32)m3 = tf.constant([[1.0, 2.0],                  [3.0, 4.0]])# Print the type for each matrixprint(type(m1))print(type(m2))print(type(m3))# Create tensor objects out of the different typest1 = tf.convert_to_tensor(m1, dtype=tf.float32)t2 = tf.convert_to_tensor(m2, dtype=tf.float32)t3 = tf.convert_to_tensor(m3, dtype=tf.float32)# Notice that the types will be the same nowprint(type(t1))print(type(t2))print(type(t3))

 代碼列表3.表示張量的不同方式

 

第一個變量m1是一個列表,第二個變量m2是NumPy類庫中的一個ndarray,最後一個變量m3是TensorFlow的Tensor對象。TensorFlow中所有運算符(如neg)都設計為對張量對象進行操作。tf.convert_to_tensor(...)這個方法,我們可以用在任何地方,以確保我們處理張量而不是其他類型。TensorFlow類庫中的大多數方法都已經調用了它。使用tf.convert_to_tensor(...)並不是必須的,在這裡使用它,是因為它有助於我們理解隱式類型的跨類庫處理。

 

<class 『tensorflow.python.framework.ops.Tensor』>


讓我們再來看看如何中定義張量。 導入TensorFlow類庫之後,我們可以使用常量運算符,如代碼列表4所示。

 

import tensorflow as tf# Define a 2x1 matrixmatrix1 = tf.constant([[1., 2.]])# Define a 1x2 matrixmatrix2 = tf.constant([[1],                       [2]])# Define a rank 3 tensormyTensor = tf.constant([ [[1,2],                          [3,4],                          [5,6]],                         [[7,8],                          [9,10],                          [11,12]] ])# Try printing the tensors print(matrix1)print(matrix2)print(myTensor)

 代碼列表4。 創建張量

 

代碼4的運行結果:

 

Tensor( 「Const:0」,        shape=TensorShape([Dimension(1),                           Dimension(2)]),        dtype=float32 )Tensor( 「Const_1:0」,        shape=TensorShape([Dimension(2),                           Dimension(1)]),        dtype=int32 )Tensor( 「Const_2:0」,         shape=TensorShape([Dimension(2),                            Dimension(3),                            Dimension(2)]),         dtype=int32 )


從運行結果中可以看出,每個張量都由已命名的Tensor對象表示。每個Tensor對象都有一個唯一的標籤(名稱),一個用於定義其結構的維度(shape),以及用於指定我們要操作的數據類型(dtype)。因為我們並沒有顯示指定名稱,所以他們被自動命名為:「Const:0」,「Const_1:0」和「Const_2:0」。

 

 

張量類型

 

需要注意的是matrix1的每個元素以小數點結束,這是為了告訴Python該元素的數據類型不是整數,而是浮點數。 我們可以傳遞顯式dtype值。 和NumPy數組一樣,張量可以接受我們指定的類型。

 

TensorFlow也提供了一些構造函數用於一些簡單的張量。例如,tf.zeros(shape)創建了一個包涵所有值都被初始化為零的特定形態的張量。 類似地,tf.ones(shape)創建了一個所有元素值為1的張量。 shape參數是描述張量的維度的一維張量,它的類型是int32。

 

創建運算符 

我們已經有了幾個初始的張量,現在我們可以用運算符對他們進行操作,比如加減乘除。 假設現在有一個矩陣,它的行表示貨幣交易,收款金額(正值)和收款金額(負值)。 矩陣取反是表示某個人的貨幣流歷史記錄的一種方式。 我們現在對代碼列表4中的matrix1進行取反操作neg(negation的縮寫)。矩陣取反將正數轉換為絕對值相同的負數,反之亦然。

取反操作是最簡單的操作之一。 如代碼列表5所示,取反只需將一個張量作為輸入,得出另一個張量,每個元素取反。現在,嘗試自己運行代碼。 如果你已經掌握了如何使用取反,那就可以推廣到所有其他TensorFlow的操作。

 

這裡需要指出,定義操作(如取反操作)和運行它是不一樣的。

 

import tensorflow as tf# Define an arbitrary tensorx = tf.constant([[1, 2]])# Negate the tensorneg_x = tf.neg(x)# Print the objectprint(neg_x)

代碼列表5. 取反運算符的使用

 

代碼列表5的輸出:

Tensor(「Neg:0」, shape=(1, 2), dtype=int32)

 

更多TensorFlow的運算符

 

官方文檔詳細地列出了所有可用的數學操作:

https://www.tensorflow.org/api_docs/Python/math_ops.html。

 

常用操作符的示例包括:

 

tf.add(x, y) Add two tensors of the same type, x + ytf.sub(x, y) Subtract tensors of the same type, x — ytf.mul(x, y) Multiply two tensors element-wisetf.pow(x, y) Take the element-wise power of x to ytf.exp(x) Equivalent to pow(e, x), where e is Euler’s number (2.718…)tf.sqrt(x) Equivalent to pow(x, 0.5)tf.div(x, y) Take the element-wise division of x and ytf.truediv(x, y) Same as tf.div, except casts the arguments as a floattf.floordiv(x, y) Same as truediv, except rounds down the final answer into an integertf.mod(x, y) Takes the element-wise remainder from division

我們可以這些TensorFlow運算符來產生高斯分布(也稱為正態分布)。 參見圖3提示。 你可以參考wiki,找到正態分布的概率密度:https://en.wikipedia.org/wiki/Normal_distribution。

 

為了簡潔起見,諸如「*」,「 - 」,「+」等大多數數學表達式是其TensorFlow運算符的快捷方式。高斯函數包括許多運算,如下所示:

 

from math import pimean = 1.0sigma = 0.0(tf.exp(tf.neg(tf.pow(x — mean, 2.0) /               (2.0 * tf.pow(sigma, 2.0) ))) *(1.0 / (sigma * tf.sqrt(2.0 * pi) )))


 

圖3.該圖表示產生高斯分布所需的操作。 節點之間的連結表示數據如何從一個操作進入下一個操作。 操作本身很簡單,但是它們如何相互作用是相對複雜的。

 

TensorFlow算法很容易可視化。 它們可以用流程圖來進行描述。 流程圖就是一種圖表。 流程圖中的每個箭頭都稱為圖形的邊。 而它的每個狀態被稱為節點。

 

在會話中執行運算符

會話(session)是描述代碼應該如何運行的軟體系統環境。在TensorFlow中,會話設置了硬體設備(如CPU和GPU)如何相互通信。這樣,你只要關心如何設計機器學習算法,而不必擔心底層硬體設備的運行。當然,你也可以配置會話以更改其底層硬體設備交互行為,而不更改上層代碼。

 

要在TensorFlow中運行程序計算數值是需要一個會話的。 只有在已創建的會話才可以對Tensor對象進行賦值。 為此,我們必須使用tf.Session()創建一個會話類,並由它來運行一個運算符(代碼列表6)。

 

import tensorflow as tf# Define an arbitrary matrixmatrix = tf.constant([[1., 2.]])# Run the negation operator on itneg_matrix = tf.neg(matrix)# Start a session to be able to run operationswith tf.Session() as sess:    # Tell the session to evaluate negMatrix    result = sess.run(neg_matrix)# Print the resulting matrixprint(result)

 

代碼列表6.使用會話

 

恭喜! 你剛剛寫了第一個完整的TensorFlow代碼。 儘管它所做的是只是對一個矩陣進行取反,但它已經能充分體現TensorFlow中的核心概念與框架了。

 

 

會話配置

在創建tf.Session類時,我們可以向構造函數傳遞一些參數。 例如,TensorFlow會根據可用的內容自動確定為指定GPU或CPU設備的最佳方式。 在創建會話時,我們可以設置log_device_placements = True,如代碼列表7所示。

 

import tensorflow as tf# Define a matrix and negate itmatrix = tf.constant([[1., 2.]])negMatrix = tf.neg(matrix)# Start the session with a special config passed into the constructor to enable loggingwith tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:    # Evaluate negMatrix    result = sess.run(negMatrix)# Print the resulting valueprint(result)

代碼列表7 登錄一個會話

 

這將輸出有關每個操作的會話中使用哪些CPU / GPU設備的信息。 例如,執行代碼列表6中的程序會有以下輸出,它顯示了用於運行取反操作的設備:

 

Neg: /job:localhost/replica:0/task:0/cpu:0


 

會話在TensorFlow中是必不可少的。 我們需要調用一個會話來執行數學操作。 圖4描述了TensorFlow上的不同組件如何與機器學習管道的交互。 會話不僅執行圖像操作,而且還可以使用佔位符,變量和常量作為輸入。 到目前為止,我們已經使用了常量,但在後面的部分,我們將開始使用變量和佔位符。 以下是這三種類型值的簡要概述。

 

•佔位符:未分配的值,但將由運行的會話初始化。

•變量:可以更改的值,例如機器學習模型的參數。

 

•常數:不更改的值,例如超參數或設置。

 

 

圖4.會話指示如何使用硬體來最有效地處理圖形。 當會話開始時,它將CPU和GPU設備分配給每個節點。 在處理之後,會話用可用格式(例如NumPy數組)輸出數據。 會話可以接受佔位符,變量和常量。

我希望你通過本文已經熟悉了一些TensorFlow編程的基本方法。 


搜索公眾號添加: weic2c   

人工智慧大數據與深度學習


長按圖片,識別二維碼,點關注


相關焦點

  • 最熱門的深度學習框架TensorFlow入門必備書籍
    但進入機器學習和人工智慧領域並不是一件簡單的事情,目前市場上有許多大量的學習資源,許多開發者和想要進入的愛好者往往很難找到適合自己的發展路徑。其實,早在 2015 年底,谷歌就開源了內部使用的深度學習框架 TensorFlow 。眾多研究表明,Tensorflow 是研究深度學習的首選平臺。
  • Tensorflow 全網最全學習資料匯總之Tensorflow 的入門與安裝【2】
    《TensorFlow學習筆記1:入門》連結:http://www.jeyzhang.com/tensorflow-learning-notes.html本文與上一篇的行文思路基本一致,首先概括了TensorFlow的特性,然後介紹了graph、session、variable 等基本概念的含義,以具體代碼的形式針對每個概念給出了進一步的解釋
  • TensorFlow極速入門
    作者孟曉龍,2016年加入Qunar,目前在去哪兒網機票事業部擔任算法工程師。熱衷於深度學習技術的探索,對新事物有著強烈的好奇心。一、前言目前,深度學習已經廣泛應用於各個領域,比如圖像識別,圖形定位與檢測,語音識別,機器翻譯等等,對於這個神奇的領域,很多童鞋想要一探究竟,這裡拋磚引玉的簡單介紹下最火的深度學習開源框架 tensorflow。
  • 深度學習筆記8:利用Tensorflow搭建神經網絡
    作者:魯偉 一個數據科學踐行者的學習日記。
  • tensorflow初級必學算子
    在之前的文章中介紹過,tensorflow框架的核心是將各式各樣的神經網絡抽象為一個有向無環圖,圖是由tensor以及tensor變換構成;雖然現在有很多高階API可以讓開發者忽略這層抽象,但對於靈活度要求比較高的算法仍然需要開發者自定義網絡圖,所以建議開發者儘量先學習tf1.x
  • TensorFlow 中文資源全集,學習路徑推薦
    入門教程,簡單的模型學習和運行。實戰項目,根據自己的需求進行開發。/GitHub:https://github.com/tensorflow安裝教程中文安裝教程Mac安裝:http://www.cnblogs.com/tensorflownews/p/7298646.htmlubuntu 16.04 安裝 tensorflow-gpu:http://www.tensorflownews.com/2017/09/02/tensorflow-gpu-install-ubuntu
  • python應用之基於tensorflow的數據擬合:深度學習之預測入門篇
    實驗目的:1、了解python在深度學習領域的應用2、學習安裝python第三方依賴庫實驗環境:已正確安裝python3.5以及依賴庫tensorflow、matplotlib預測過程展示:1、應用領域python是一種高級面向對象的動態類型語言,具有開發高效,學習簡單的特點,主要應用於大數據、深度學習、
  • 基於TensorFlow2.0的中文深度學習開源書來了!GitHub趨勢日榜第一
    十三 發自 凹非寺 量子位 報導 | 公眾號 QbitAITensorFlow 2.0 發布已有一個半月之久,你會用了嗎?近日,一個叫做深度學習開源書的項目在火了。CPU安裝pip install tensorflow -UGPU安裝先自己安裝CUDA 10.0和cudnn,然後設置LD_LIBRARY_PATH。
  • 教程| 如何用TensorFlow在安卓設備上實現深度學習推斷
    對於個人和公司來說,存在許多狀況是更希望在本地設備上做深度學習推斷的:想像一下當你在旅行途中沒有可靠的網際網路連結時,或是要處理傳輸數據到雲服務的隱私問題和延遲問題時。邊緣計算(Edge computing)是一種在物理上靠近數據生成的位置從而對數據進行處理和分析的方法,為解決這些問題提供了方案。
  • 深度解讀TensorFlow,了解它的最新發展!
    在前段時間的TensorFlow峰會上,TensorFlow 發布了面向 JavaScript 開發者的全新機器學習框架 TensorFlow.js。  TensorFlow.js 是一個開源的用於開發機器學習項目的 WebGL-accelerated JavaScript 庫。
  • 最簡單的深度學習TensorFlow應用舉例!
    小編我的電腦很一般,沒有32G內存,也沒有1080,就windows上直接裝了23333windows+python 3.6+pycharm+tensorflow cpu話不多說,直接線性回歸,上圖。代碼截圖#接下來貼代碼#辰星樹洞import numpy as np #這是Python的一種開源的數值計算擴展,非常強大import tensorflow
  • TensorFlow與PyTorch之爭,哪個框架最適合深度學習
    選自builtin作者:Vihar Kurama機器之心編譯參與:吳攀、杜偉谷歌的 Tensorflow 與 Facebook 的 PyTorch 一直是頗受社區歡迎的兩種深度學習框架。那麼究竟哪種框架最適宜自己手邊的深度學習項目呢?本文作者從這兩種框架各自的功能效果、優缺點以及安裝、版本更新等諸多方面給出了自己的建議。如果你在讀這篇文章,那麼你可能已經開始了自己的深度學習之旅。如果你對這一領域還不是很熟悉,那麼簡單來說,深度學習使用了「人工神經網絡」,這是一種類似大腦的特殊架構,這個領域的發展目標是開發出能解決真實世界問題的類人計算機。
  • TensorFlow 資源大全中文版
    (點擊上方藍字,快速關注我們)譯文:伯樂在線專欄作者 - Yalye英文:jtoy如有好文章投稿
  • 程式設計師1小時完成深度學習Resnet,谷歌tensorflow多次圖像大賽冠軍
    plain而言精度更高在以往的學習之中,我們知道深度網絡隨著層數的增加,很容易造成「退化」和「梯度消失」的問題,訓練數據的過擬合。好,以上就是簡單的理論入門,接下來我們開始著手用TensorFlow對理論進行代碼實現二、代碼實現(ResNet-34)參數設定(DATA_set.py)NUM_LABELS = 10 #對比標籤數量(模型輸出通道)#卷積參數CONV_SIZE = 3CONV_DEEP = 64#學習優化參數BATCH_SIZE = 100LEARNING_RATE_BASE
  • TensorFlow 2入門指南,初學者必備!
    英語原文:Getting Started with TensorFlow 2翻譯:雷鋒字幕組(贇瑾和鳴、大表哥)什麼是Tensorflow?TensorFlow是谷歌推出的深度學習框架,於2019年發布了第二版。 它是世界上最著名的深度學習框架之一,被行業專家和研究人員廣泛使用。
  • TensorFlow 攜手 NVIDIA,使用 TensorRT 優化 TensorFlow Serving...
    TensorFlow Serving 是應用於機器學習模型的靈活的高性能服務系統,而 NVIDIA TensorRT 則是一個用以實現高性能深度學習推理的平臺,將二者相結合後,用戶可以輕鬆地實現最佳性能的 GPU 推理。
  • 從框架優缺點說起,這是一份TensorFlow入門極簡教程
    谷歌今日上線基於 TensorFlow 的機器學習速成課程(中文版)機器之心 GitHub 項目:從零開始用 TensorFlow 搭建卷積神經網絡教程 | 從零開始:TensorFlow 機器學習模型快速部署指南分布式 TensorFlow 入坑指南:從實例到代碼帶你玩轉多機器深度學習三天速成!
  • 玩轉TensorFlow?你需要知道這30功能
    如果你關心如何使模型保持最新並監控它們,那麼你可以了解一下這個產品、看看它的論文。地址是:tensorflow.org/tfx/?,它可以讓深度學習變得更容易上手,促進機器學習的研究。18)Probability 庫深度學習是很好的,但是,作為一個數據科學家,你可能想告訴你的模型一些特定領域的知識:蒙特卡洛,變分推理,貝葉斯技術,矢量量化自動編碼器等等
  • 圖像分類入門,輕鬆拿下90%準確率|教你用Keras搞Fashion-MNIST
    這個數據集致力於成為手寫數字數據集MNIST的替代品,可用作機器學習算法的基準測試,也同樣適合新手入門。進入正題,教你用tf.keras完成Fashion-MNIST數據集的圖像分類~運行環境無需設置,只要使用Colab直接打開這個Jupyter Notebook連結,就能找到所有代碼。
  • 【強化學習實戰】基於gym和tensorflow的強化學習算法實現
    1新智元推薦【新智元導讀】知乎專欄強化學習大講堂作者郭憲博士開講《強化學習從入門到進階》,我們為您節選了其中的第二節《基於gym和tensorflow的強化學習算法實現》,希望對您有所幫助。同時,由郭憲博士等擔任授課教師的深度強化學習國慶集訓營也將於 10 月 2 日— 6 日在北京舉辦。