TensorFlow 2.0中文开源书项目:日赞700,登上GitHub热榜

作者: 一鸣 2019-11-18 09:44:51

TensorFlow2.0 正式版已发布一段时间,但目前系统性的相关教程还不够多。这个登上 GitHub 趋势榜的项目今日已获得 700 多赞,内容简单易懂,适合初学者和迁移到 tf2.0 的开发者使用。

深度学习中绕不开的便是对算法框架的实际使用了。如果没有娴熟的工程实践能力,很多优秀的算法设计就无法真正使用。TensorFlow2.0 正式版已发布了一段时间,然而过去使用 TensorFlow1.x 版本的开发者担心两个版本之间的差距过大以至于无法迁移已有的经验,刚入门深度学习的人则因为 TensorFlow 那不友好的 API 和设计逻辑而望而却步。

近日,GitHub 日趋势榜上出现了这样一个中文开源项目。它基于 TensorFlow2.0 框架,有配套学习的书、代码和视频课程,非常适合希望了解 tf2.0 的开发者学习参考。

目前该项目已获得了 1000 多的点赞量,登上了 GitHub 热榜,仅在今天项目就获得 700 多赞。

TensorFlow 2.0中文开源书项目:日赞700,登上GitHub热榜

项目地址:https://github.com/dragen1860/Deep-Learning-with-TensorFlow-book

该项目作者为 Jackie Loong(龙良曲),曾为新加坡国立大学助理研究员,有 8 年的人工智能算法经验,在 AAAI 会议上发表过多篇论文。从他的 GitHub 主页上来看,这位开发者参与了很多深度学习相关的教程项目的工作。

TensorFlow 2.0中文开源书项目:日赞700,登上GitHub热榜

本项目提供了电子版的《TensorFlow 2.0 深度学习开源书》,同时按照章节在每个文件夹中提供了源代码。你只需要下载书籍,并根据内容和源代码进行学习即可。

从章节划分上来看,本书一共分为 15 个章节。首先本书会介绍人工智能的发展历史,然后从第二章开始介绍回归,随后还有分类、TensorFlow 基础和进阶操作、神经网络等知识。在第 10 章以后,书还会介绍包括 CNN、RNN/LSTM、自编码器、GAN 及其变体等多个架构,内容很丰富。

以下为章节目录:

TensorFlow 2.0中文开源书项目:日赞700,登上GitHub热榜

TensorFlow 2.0中文开源书项目:日赞700,登上GitHub热榜

TensorFlow 2.0中文开源书项目:日赞700,登上GitHub热榜

代码部分,目前作者已整理出了除第 4 章以外的大部分代码,目前整理工作还在进行中。

以自编码器的代码为例,作者在 py 文件中详细写出了网络的架构:

  1. class AE(keras.Model):  
  2.   
  3.     def __init__(self):  
  4.         super(AE, self).__init__()  
  5.   
  6.         # Encoders  
  7.         self.encoder = Sequential([  
  8.             layers.Dense(256, activation=tf.nn.relu),  
  9.             layers.Dense(128, activation=tf.nn.relu),  
  10.             layers.Dense(h_dim)  
  11.         ])  
  12.   
  13.         # Decoders  
  14.         self.decoder = Sequential([  
  15.             layers.Dense(128, activation=tf.nn.relu),  
  16.             layers.Dense(256, activation=tf.nn.relu),  
  17.             layers.Dense(784)  
  18.         ])  
  19.   
  20.   
  21.     def call(self, inputs, training=None):  
  22.         # [b, 784] => [b, 10]  
  23.         h = self.encoder(inputs)  
  24.         # [b, 10] => [b, 784]  
  25.         x_hat = self.decoder(h)  
  26.   
  27.         return x_hat  

同时,每个 py 文件不仅仅只有示例代码。从代码来看,这些 py 文件实际上都是可以直接运行的,以下便是自编码器文件中执行模型训练的代码:

  1. model = AE() 
  2. model.build(input_shape=(None, 784)) 
  3. model.summary() 
  4.  
  5. optimizer = tf.optimizers.Adam(lr=lr) 
  6.  
  7. for epoch in range(100): 
  8.  
  9.     for step, x in enumerate(train_db): 
  10.  
  11.         #[b, 2828] => [b, 784
  12.         x = tf.reshape(x, [-1784]) 
  13.  
  14.         with tf.GradientTape() as tape: 
  15.             x_rec_logits = model(x) 
  16.  
  17.             rec_loss = tf.losses.binary_crossentropy(x, x_rec_logits, from_logits=True) 
  18.             rec_loss = tf.reduce_mean(rec_loss) 
  19.  
  20.         grads = tape.gradient(rec_loss, model.trainable_variables) 
  21.         optimizer.apply_gradients(zip(grads, model.trainable_variables)) 
  22.  
  23.  
  24.         if step % 100 ==0
  25.             print(epoch, step, float(rec_loss)) 

这样一来,即使没有编程经验的初学者也可以先跑通代码,理解原理后再尝试自行编程。

除了这些资源外,作者还贴出了一个 tf2.0 实战案例的项目库,开发者可配合使用。

项目地址:https://github.com/dragen1860/TensorFlow-2.x-Tutorials

GitHub 代码 开发者
上一篇:这个中国科学家的救命AI,登上了国外热门榜 下一篇:图像转换3D模型只需5行代码,英伟达推出3D深度学习工具Kaolin
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

成熟的AI应该自己写代码,IBM发布5亿行代码数据集,包含55种语言

1400万个编程项目,5亿行代码,超过55种的不同编码语言。研究人员希望这一数据集能为编码自动化领域(比如大型项目代码的调试、维护和迁移)带来便利。

关注前沿科技 ·  2021-05-21 10:46:55
IBM开源了5亿行代码数据集,里面最多的编程语言却不是Python

近日,IBM 研究院发布了一个名为 CodeNet 的数据集,该数据集包含 1400 万个代码样本,用于训练面向编程任务的机器学习模型。

佚名 ·  2021-05-19 09:26:03
AI时代的GitHub,这个陆奇看好的方向,终于有人做了

面向AI时代生存发展,什么最重要?数据、数据,还是数据。特别是中小企业、转型中的广大传统企业,数据、优质数据,寻找并管理数据,更是刚需中的刚需——就像互联网开发时代里对代码共享和管理的需求那样。

允中 ·  2021-01-11 10:34:59
写代码效率不高?放过Ctrl C 和 V,让AI来帮你写代码吧

做为程序员,不知道你有没有想像过,如果某天,不再需要面向Google、Stackoverflow编程,不再需要Ctrl + C 和 Ctrl + V,你在IDE里敲出某个编程语言的关键词时,像导航一样,下一步的代码就已经展现出来;

侯树成 ·  2020-12-04 07:49:54
用于代码生成的基于树的Transformer结构

在本节中,我们介绍如何将代码生成建模为一系列语法规则的分类问题。程序可以被分解为几个与上下文无关的语法规则,并解析为 AST。例如,图 1 显示了代码“length=10”的 PythonAST,其中虚线框是终止符,而实心框是非终止符。

慕测科技 ·  2020-11-12 18:53:34
用于代码生成的基于语法的结构 CNN 解码器

在本文中,我们提出了一种基于语法的结构 CNN 用于代码生成。我们的模型利用了抽象程序的语法树(AST),并通过规定语法规则。我们解决了基于 RNN 的传统方法可能不适合于克生成,可能是由于大量的程序中的 kens/nodes。

慕测科技 ·  2020-11-11 14:32:11
机器学习论文复现,这五大问题你需要注意

论文复现一直是机器学习领域的难题,虽然最近多个学术会议提倡大家提交代码,但解决论文复现问题仍然任重而道远。在试图复现机器学习论文时,我们经常遇到哪些问题呢?新加坡机器学习工程师 Derek Chia 对此进行了总结。

机器之心 ·  2020-11-03 10:09:46
分离硬件和代码、稳定 API,PyTorch Lightning 1.0.0 版本正式发布

今日,PyTorch Lightning 在推特宣布,1.0.0 版本现在可用了,并发布新的博客文章详细描述了 PyTorch Lightning 的运行原理和新的 API。

机器之心 ·  2020-10-23 07:39:39
Copyright©2005-2021 51CTO.COM 版权所有 未经许可 请勿转载