Python 深度学习,你的 Keras 准备好了吗?

简介: Python 深度学习,你的 Keras 准备好了吗?

前天我在公众号推荐了《Python Deep Learning》这本书。该书是由 Keras 作者写的,所以全书基本围绕着 Keras 讲深度学习的各种实现,从 CNN,RNN 到 GAN 等,偏入门,但理论和实战部分都讲的还不错,承载着很多作者对深度学习整体性的思考。目前该书的中英文版包括源码见下面的链接:


链接:

https://pan.baidu.com/s/1kTTGpzQo-p5ZfeSI6HlbEA 


提取码:mnz9


我花了几天时间快速过了这本书,当然少不了跑跑书上的代码。代码的完整性很高,难易程度作者都分层次介绍得比较清楚。总之,Keras 非常适合大家快速上手深度学习项目。


好了,今天从基础开始,教大家在 win10 系统中,使用 Anaconda + TensorFlow + Keras,快速搭建一个 Keras 的开发环境(CPU 版本),非常容易。


1. 安装 Anaconda


打开 Anaconda 的官方下载地址:


https://www.anaconda.com/download/


就能看到最新的下载版本:


image.png

选择 Python 3.7 version 下载。下载完成后直接运行 Anaconda 的安装文件,按照提示一步一步安装就可以了。


安装完成后,会在 win10 的开始菜单发现 Anaconda 这些组件:


image.png

因为我是较早安装的,所以是 Anaconda3,不必在意。可直接安装最新版本。另外,其中的 Jupyter Notebook(tensorflow) 是我后面安装得到的。你们暂时看不到正常。


2. 创建 tensorflow 的虚拟环境


Python 为不同的项目需求创建不同的虚拟环境非常常见。因为在实际项目开发中,我们通常会根据自己的需求去下载各种相应的框架库,但是可能每个项目使用的框架库并不一样,或使用框架的版本不一样,这样需要我们根据需求不断的更新或卸载相应的库,管理起来相当麻烦。所以通过创建虚拟环境,相当于为不同的项目创建一块独立的空间,在这个空间里,你安装任何库和框架都是独立的,不会影响到外部环境。


为了创建我们 keras 的开发环境,首先打开 Anaconda 组件 Anaconda Prompt,这是一个类似 cmd 的界面,便于我们对 Python 库的安装和管理。界面如下:


image.png

然后,创建虚拟环境并安装 Python。在 Anaconda Prompt 界面中输入:


conda create --name tensorflow python=3.5.2


这里,虚拟变量的名称我们取 tensorflow,当然你可以换个名字。Python 版本这里选择 3.5。


最后,激活并进入到虚拟环境 tensorflow 中:


activate tensorflow

进入后,提示符前会显示 (tensorflow):


image.png


3. 安装 TensorFlow


可能有的同学会问我们不是安装 Keras 吗?怎么安装起 TensorFlow 了?这里解释一下。Keras 是一个模型级(model-level)的库,为开发深度学习模型提供了高层次的构建模块。 它不处理张量操作、求微分等低层次的运算。相反,它依赖于一个专门的、高度优化的张量库来完成这些运算,这个张量库就是 Keras 的后端引擎(backend engine),例如 TensorFlow、Theano、CNTK等都可以无缝嵌入到 Keras 中。如下图所示:


image.png

所以先要安装 Keras 的后端引擎 TensorFlow,首先需要升级一下你的 pip。同样是在 Anaconda Prompt 中输入以下命令:


python -m pip install -U pip

然后直接使用 pip 安装即可:


pip install tensorflow

如果没有报错,表示安装没有问题。进一步验证安装是否成功,输入 Python,在 Python 命令行中输入:import tensorflow as tf。若没有任何提示,则表明 TensorFlow 安装成功,如下图所示:


image.png

4. 安装 Keras


同样,打开 Anaconda Prompt,进入 tensorflow 虚拟环境,使用 pip 安装 Keras:


pip install keras

如果没有报错,表示安装没有问题。

5. 安装 MinGW


最后你还可以安装 MinGW,同样是在虚拟环境 tensorflow 中,输入以下命令:


conda install mingw libpython

进一步验证整个 Keras 安装是否成功,输入 Python,在 Python 命令行中输入:import keras。若出现下面提示,则表明 Keras安装成功:


image.png


6. 启动 Keras


整个 Keras 安装成功了。那么实际应用中我们如何启动 Keras 呢?因为我习惯了使用 Anaconda 自带的 Jupyter Nootbook,那么接下来我就教大家使用 Jupyter Notebook 调用 Keras 实例。


因为现在 Anaconda 自带的 Jupyter Notebook 还是整个外部 Python 环境下的,我们之前创建的虚拟环境 tensorflow 并没有 Jupyter Notebook。怎们办?安装一个就好了。


同样在 Anaconda Prompt 中,激活 tensorflow 环境,使用 conda 命令安装,如下所示:


conda install jupyter

非常简单,安装成功之后,就可以在 Anaconda 的工具项里看到 Jupyter Notebook(tensorflow) 了。


image.png

这样,点击 Jupyter Notebook(tensorflow),就可以直接打开 Jupyter Notebook,可以直接在 cell 中导入 Keras 了。


image.png

这样就不用每次使用 activate 激活 tensorflow 虚拟环境了。


好了,现在 Keras CPU 版本已经安装成功,可以开始你的深度学习 Keras 实战之旅了。


7. Keras 实例


下面,使用 Keras 运行这本书上的一个简单例子,用来对 IMDB 的正负电影评论进行分类。


import keras
from keras import models
from keras import layers
from keras.datasets import imdb
import numpy as np
(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)
def vectorize_sequences(sequences, dimension=10000):
   # Create an all-zero matrix of shape (len(sequences), dimension)
   results = np.zeros((len(sequences), dimension))
   for i, sequence in enumerate(sequences):
       results[i, sequence] = 1.  # set specific indices of results[i] to 1s
   return results
# Our vectorized training data
x_train = vectorize_sequences(train_data)
# Our vectorized test data
x_test = vectorize_sequences(test_data)
# Our vectorized labels
y_train = np.asarray(train_labels).astype('float32')
y_test = np.asarray(test_labels).astype('float32')
model = models.Sequential()
model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop',
            loss='binary_crossentropy',
            metrics=['acc'])
model.fit(x_train, y_train, epochs=4, batch_size=512)
result = model.evaluate(x_test, y_test)
print(result)

最后结果,测试集的分类准确率达到了 88.3%。


8. 结语


本文介绍的 Keras 的 CPU 版本的安装,本书的作者推荐大家尽可能使用 GPU 版本,提高运算速度。我跑完本书的代码发现,CPU 版本下某些模型的训练时间还是比较长的。例如使用 VGG 预训练模型,对 Kaggle 猫狗分类问题进行训练,并微调 VGG 顶层参数,整个训练时间达到了 5 个小时左右。


如果安装 GPU 版本,需要额外安装 CUDA Toolkit + cuDNN。需要特别注意的是 CUDA+cuDNN 的版本。因为每个人的 GPU 显卡型号和安装版本不尽相同,所以本文不再赘述,需要的话,我们下次再专门介绍以下 GPU 版本的安装。


没有 GPU,本书的代码基本也能跑得通,就是大型模型的训练速度比较慢。


如果有小伙伴对 GPU 版本的 Keras 安装有好的方法,欢迎留言!

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
打赏
0
0
0
0
94
分享
相关文章
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
238 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
1月前
|
【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
170 82
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
54 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
108 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
【02】整体试验思路,在这之前我们发现sec_uid,sec_uid是什么和uid的关系又是什么?相互如何转换?python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
【02】整体试验思路,在这之前我们发现sec_uid,sec_uid是什么和uid的关系又是什么?相互如何转换?python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
72 6
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
1月前
|
python pandas学习(一)
该代码段展示了四个主要操作:1) 删除指定列名,如商品id;2) 使用正则表达式模糊匹配并删除列,例如匹配订单商品名称1的列;3) 将毫秒级时间戳转换为带有时区调整的日期时间格式,并增加8小时以适应本地时区;4) 将列表转换为DataFrame后保存为Excel文件,文件路径和名称根据变量拼接而成。
26 3
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
深度学习工具和框架详细指南:PyTorch、TensorFlow、Keras
在深度学习的世界中,PyTorch、TensorFlow和Keras是最受欢迎的工具和框架,它们为研究者和开发者提供了强大且易于使用的接口。在本文中,我们将深入探索这三个框架,涵盖如何用它们实现经典深度学习模型,并通过代码实例详细讲解这些工具的使用方法。