TensorFlow 2.0中文開源書項(xiàng)目:日贊700,登上GitHub熱榜
TensorFlow2.0 正式版已發(fā)布一段時(shí)間,但目前系統(tǒng)性的相關(guān)教程還不夠多。這個(gè)登上 GitHub 趨勢(shì)榜的項(xiàng)目今日已獲得 700 多贊,內(nèi)容簡單易懂,適合初學(xué)者和遷移到 tf2.0 的開發(fā)者使用。
深度學(xué)習(xí)中繞不開的便是對(duì)算法框架的實(shí)際使用了。如果沒有嫻熟的工程實(shí)踐能力,很多優(yōu)秀的算法設(shè)計(jì)就無法真正使用。TensorFlow2.0 正式版已發(fā)布了一段時(shí)間,然而過去使用 TensorFlow1.x 版本的開發(fā)者擔(dān)心兩個(gè)版本之間的差距過大以至于無法遷移已有的經(jīng)驗(yàn),剛?cè)腴T深度學(xué)習(xí)的人則因?yàn)?TensorFlow 那不友好的 API 和設(shè)計(jì)邏輯而望而卻步。
近日,GitHub 日趨勢(shì)榜上出現(xiàn)了這樣一個(gè)中文開源項(xiàng)目。它基于 TensorFlow2.0 框架,有配套學(xué)習(xí)的書、代碼和視頻課程,非常適合希望了解 tf2.0 的開發(fā)者學(xué)習(xí)參考。
目前該項(xiàng)目已獲得了 1000 多的點(diǎn)贊量,登上了 GitHub 熱榜,僅在今天項(xiàng)目就獲得 700 多贊。

項(xiàng)目地址:https://github.com/dragen1860/Deep-Learning-with-TensorFlow-book
該項(xiàng)目作者為 Jackie Loong(龍良曲),曾為新加坡國立大學(xué)助理研究員,有 8 年的人工智能算法經(jīng)驗(yàn),在 AAAI 會(huì)議上發(fā)表過多篇論文。從他的 GitHub 主頁上來看,這位開發(fā)者參與了很多深度學(xué)習(xí)相關(guān)的教程項(xiàng)目的工作。

本項(xiàng)目提供了電子版的《TensorFlow 2.0 深度學(xué)習(xí)開源書》,同時(shí)按照章節(jié)在每個(gè)文件夾中提供了源代碼。你只需要下載書籍,并根據(jù)內(nèi)容和源代碼進(jìn)行學(xué)習(xí)即可。
從章節(jié)劃分上來看,本書一共分為 15 個(gè)章節(jié)。首先本書會(huì)介紹人工智能的發(fā)展歷史,然后從第二章開始介紹回歸,隨后還有分類、TensorFlow 基礎(chǔ)和進(jìn)階操作、神經(jīng)網(wǎng)絡(luò)等知識(shí)。在第 10 章以后,書還會(huì)介紹包括 CNN、RNN/LSTM、自編碼器、GAN 及其變體等多個(gè)架構(gòu),內(nèi)容很豐富。
以下為章節(jié)目錄:



代碼部分,目前作者已整理出了除第 4 章以外的大部分代碼,目前整理工作還在進(jìn)行中。
以自編碼器的代碼為例,作者在 py 文件中詳細(xì)寫出了網(wǎng)絡(luò)的架構(gòu):
- class AE(keras.Model):
 - def __init__(self):
 - super(AE, self).__init__()
 - # Encoders
 - self.encoder = Sequential([
 - layers.Dense(256, activation=tf.nn.relu),
 - layers.Dense(128, activation=tf.nn.relu),
 - layers.Dense(h_dim)
 - ])
 - # Decoders
 - self.decoder = Sequential([
 - layers.Dense(128, activation=tf.nn.relu),
 - layers.Dense(256, activation=tf.nn.relu),
 - layers.Dense(784)
 - ])
 - def call(self, inputs, training=None):
 - # [b, 784] => [b, 10]
 - h = self.encoder(inputs)
 - # [b, 10] => [b, 784]
 - x_hat = self.decoder(h)
 - return x_hat
 
同時(shí),每個(gè) py 文件不僅僅只有示例代碼。從代碼來看,這些 py 文件實(shí)際上都是可以直接運(yùn)行的,以下便是自編碼器文件中執(zhí)行模型訓(xùn)練的代碼:
- model = AE()
 - model.build(input_shape=(None, 784))
 - model.summary()
 - optimizer = tf.optimizers.Adam(lr=lr)
 - for epoch in range(100):
 - for step, x in enumerate(train_db):
 - #[b, 28, 28] => [b, 784]
 - x = tf.reshape(x, [-1, 784])
 - with tf.GradientTape() as tape:
 - x_rec_logits = model(x)
 - rec_loss = tf.losses.binary_crossentropy(x, x_rec_logits, from_logits=True)
 - rec_loss = tf.reduce_mean(rec_loss)
 - grads = tape.gradient(rec_loss, model.trainable_variables)
 - optimizer.apply_gradients(zip(grads, model.trainable_variables))
 - if step % 100 ==0:
 - print(epoch, step, float(rec_loss))
 
這樣一來,即使沒有編程經(jīng)驗(yàn)的初學(xué)者也可以先跑通代碼,理解原理后再嘗試自行編程。
除了這些資源外,作者還貼出了一個(gè) tf2.0 實(shí)戰(zhàn)案例的項(xiàng)目庫,開發(fā)者可配合使用。
項(xiàng)目地址:https://github.com/dragen1860/TensorFlow-2.x-Tutorials















 
 
 











 
 
 
 