该存储库包含35个python笔记本,展示了大部分关键 Keras中的机器学习技术。 笔记本随书 Deep Learning Cookbook 但只看书就很好了, 不需要GPU就可以运行这些笔记本, 但是仅使用CPU会花费相当长的时间。
首先,设置虚拟环境,安装环境要求,然后启动笔记本服务器:
git clone https://github.com/DOsinga/deep_learning_cookbook.git
cd deep_learning_cookbook
python3 -m venv venv3
source venv3/bin/activate
pip install -r requirements.txt
jupyter notebook
在本笔记本中,我们使用预训练的单词嵌入模型(Word2Vec)来使用单词嵌入来探索单词之间的相似性以及单词之间的关系。 例如,找到一个国家的首都或公司的主要产品。 我们会使用t-SNE在2D图形上绘制高维空间,说明内部原理。
在前面的的基cookbook的基础上,我们会用单词之间的距离进行特定领域的排名。 具体来说,我们将研究国家。 首先,我们基于小样本创建小分类器,然后在单词集中找到所有国家。 然后,我们用类似的方法,展示对各国单词的相关性。 例如,由于板球比德国更接近印度,板球可能是更相关。 我们可以在世界地图画出各个国家的相关性。
本笔记本展示了如何把维基百科的数据下载导出文件,并使用类别和模板信息解析、提取、结构化数据。 我们用数据创建一组包含评级数据的电影信息。
基于上一本笔记本中提取的结构化数据,我们会训练一个神经网络,该网络根据相应的维基百科页面的链接预测电影的评级。我们会为电影创建嵌入。 反过来,我们可以根据其他电影来推荐电影的嵌入空间中相似的电影。
我们会训练一个循环神经网络(LSTM)来撰写类似莎士比亚文本。 然后,我们会用Python标准库上的代码训练类似的LSTM来生成Python代码。 可视化网络,探索神经网络在生产或读取Python代码时在注意些什么。
在本笔记本中,我们训练了一个网络来学习如何匹配来自stackoverflow的问题和答案。 这种索引使我们能够找到给定的问题,数据库中最可能的答案是什么。 我们尝试了多种方法来改善最初并非十分出色的结果。
该笔记本显示了八种不同的机器学习方法,可将文本分为各种情感。 前三个是古典学习者,其次是许多深度学习模型,基于字符或单词的学习以及lstm vs cnn。 最好的方法是将所有方法组合到一个模型中。
我们首先收集大量推文,然后保留仅包含一个表情符号的推文(您可以跳过此步骤,其中包括一个训练集)。 然后,我们训练许多深度模型,以使用推特减去表情符号来预测缺失的表情符号。 我们最终以一个可以为给定文本找到最佳表情符号的模型作为最终结果。
一些实验性代码(书中未包含)可在语义上对推文进行索引,以使相似的推文彼此相邻显示; 有效地执行Word2Vec针对单词所做的操作,但现在针对推文执行。
演示如何从Gutenberg项目下载书籍的小笔记本。 在准备下一个笔记本中的子词标记化时,对一组书籍进行标记化。
快速笔记本演示了如何加载预训练的网络并将其应用到其他图像上? 一只猫。 显示如何规范化图像并解码预测。
在此笔记本中,我们使用Flickr API来获取搜索项cat的搜索结果供稿。 通过经过预训练的网络运行每个结果,我们得到将图像投影在“空间”中的向量。 该空间的中心以某种方式代表了最多的猫图像。 通过对到该中心的距离重新排序,我们可以剔除不太像猫的图像。 有效地,我们可以在不知道内容的情况下改善Flickr的搜索结果!
利用imag分类网络为每个较大的方形子图像提取特征的事实,以检测同一图像中的多只猫狗,或者至少知道在图像中的什么位置可以找到猫或狗。 她的方法比最新技术要简单得多,但也容易遵循,因此是入门的好方法。
简单的序列到序列映射演示。 笔记本显示了如何教网络如何形成复数。