Search This Blog

深度学习初步

平台

常见的深度学习平台包括 TensorflowCaffeKeras等。其中Tensorflow由Google Brain团队开发,是自由度较高的深度学习平台,而Keras由个人开发,基于Tensorflow平台(或Theano),对基本的操作封装较好,容易上手。Caffe由Berkeley Vision and Learning Center开发。以上三个平台的接口语言均支持Python,其中Keras仅支持Python,Caffe还支持Matlab,Tensorflow支持的语言更为广泛,包括:C/C++、Java以及Go语言。更为详细的深度学习平台对比可以参见wiki

经过两天的折腾,深感对于深度学习零基础的人而言Tensorflow不太好入门,官网教程不容易follow,尤其是涉及了Tensorboard可视化的工具,该工具的目的在于便于理解和调试神经网络,但是由于教程较为晦涩难懂,前期一直在上面栽跟头,迟迟调试不出来Tutorial中提及的简单结构图(Graph)(可能与windows版本有关),导致对Tensorflow迟迟摸不着头脑,转而使用Keras。主要参考了李宏毅博士的ppt。其中简单介绍了深度学习的基本概念,同时也介绍了Keras平台的时使用示例,浅显易懂。最终确定以该平台为基础进行后续的学习和研究。在未来,如果有更底层的需求,可以考虑转向Tensorflow。

这些深度学习的平台普遍是跨平台的(Linux、Windows、OS X),但是实际变现中对各个平台的兼容性还是有所不同的。起初,在windows平台下安装了Tensorflow,可以跑通基本的“Hello World”,但是设计到Tensorboard进行可视化的测试时遇到障碍,无法载入Graph。原因未知,可能与操作系统相关。此外,在Windows下安装Keras失败;遂转而采用Linux。Windows下的安装参见后文。

编译器

由于以上介绍的深度学习平台均采用Python作为接口语言,因此采用Python编译器。而Python的编译器种类繁多,例如:Pycharm、Ipython、VS Code等。起初在Windows上尝试采用VS Code作为Python编译器,但是由于环境配置后,Pylint的编辑纠错功能实在是不胜其烦,转而使用Pycharm。作为一款Python的专用IDE,还是比较方便。该软件分为收费版和社区版,使用社区版即可。

环境搭建

综上,在确定了平台和操作系统以及编译器之后,具体的深度学习环境搭建步骤如下:
1. 安装Tensorflow
pip install tensorflow
2. 安装Keras
pip install keras
3. 安装Pycharm
wget https://download.jetbrains.com/python/pycharm-community-2017.1.3.tar.gz
tar -xvzf pycharm-community-2017.1.3.tar.gz
4. 运行Pycharm
cd bin
./pycharm.sh

第一个深度学习程序

"""
     first_deep_learning.py
"""

from __future__ import print_function

from keras.models import Sequential
from keras.layers import Dense, Activation, Flatten
from keras.datasets import mnist
import keras

(x_train, y_train), (x_test, y_test) = mnist.load_data()

y_train = keras.utils.to_categorical(y_train, num_classes=10)
y_test = keras.utils.to_categorical(y_test, num_classes=10)

model = Sequential()
# layer 1
model.add(Dense(units=500, input_shape=(28, 28)))
model.add(Activation('relu'))
# layer 2
model.add(Dense(units=500, activation='sigmoid'))
# layer 3
model.add(Flatten())
# layer 4
model.add(Dense(units=10))
model.add(Activation('softmax'))

model.compile(loss='categorical_crossentropy',
              optimizer='sgd',
              metrics=['accuracy'])

model.fit(x_train, y_train, batch_size=100, epochs=2)

Windows下安装 Tensorflow + Keras

起初在Windows下安装Tensorflow+Keras环境未成功,原因在于Keras安装过程中出现问题。原因在于安装Keras的过程中会自动安装依赖项 scipy 而提示了如下的错误
Building wheels for collected packages: scipy
  Running setup.py bdist_wheel for scipy ... error
  ... # 省略
    File "scipy\linalg\setup.py", line 20, in configuration
      raise NotFoundError('no lapack/blas resources found')
  numpy.distutils.system_info.NotFoundError: no lapack/blas resources found
查阅资料后发现问题出现在 scipy 无法通过类似Linux下 pip install scipy 的方式直接安装,解决的方法就是下载预先编译好的 scipy 的包文件(根据Windows系统以及Python版本选择对应的包下载即可),然后通过以下命令安装
pip install SomePackage-1.0-py2.py3-none-any.whl
在解决 scipy 的安装问题后,重新安装Keras即可成功。完整的安装流程如下

依赖项

安装流程

1. 安装tensorflow
pip3 install tensorflow
2. 安装scipy
pip3 install SomePackage-1.0-py2.py3-none-any.whl
3. 安装Keras
pip3 install keras
注意,此处安装命令均采用了 pip3 原因在于如果系统下同时安装了Python 2.x 以及 3.x 可以保证调用 Python 3.x 从而在Python 3.x 环境下完成安装
4. 安装Pycharm
下载Pycharm Windows版本安装即可

遇到的问题

1. pip 安装tensorflow时提示:
Could not find a version that satisfies the requirement tensorflow
原因:pip版本太低 解决:升级pip
pip install --upgrade --user pip
注意其中的--user表示为当前用户执行pip命令

参考

No comments:

Post a Comment