前言1、环境准备环境介绍软件下载VMware下安装UbuntuUbuntu下Anaconda的安装2、Xshell远程链接Ubuntu系统3、Jupyter notebook服务器的配置及远程访问4、远程环境的测试Tensorflow软件库的安装简单爬虫数据可视化基于神经网络实现fashion_mnist图片的识别总结css
现在,人工智能、深度学习等高深知识逐渐融入你们的视野,小大验证码的识别,大到无人驾驶技术等都离不开深度学习。迎合时代的脚步,跟上技术的潮流,开始学习深度学习首先须要搭建深度学习环境。搭建环境的方式也有很多,本文主要是介绍,基于Ubuntu+Python+Tensorflow+Jupyter ntebook来搭建环境,以便开始深度学习之旅。该文主要从如下几个部分的内容来进行介绍:html
OK,话很少说,开始进入正轨吧。(#`O′)python
这里给你们两种方式进行下载,一个是官网下载,若是官方下载比较慢的能够在下方网盘进行下载,你们根据本身的方便下载便可。linux
官网:nginx
网盘:web
注意:如下内容都是在服务端计算机中进行配置sql
在VMware虚拟机下安装Ubuntu系统虽然有点步骤,也须要点时间,可是并不复杂。在综合考虑到时间成本与其给你们带来的价值的关系下,博主就用文字描述了,暂时不贴图了。可是你没必要担忧,关键步骤仍是会贴图说明的,你们根据下方的流程搭建安装便可 ( ﹁ ﹁ ) ~→。shell
FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA
CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD
ZY5H0-D3Y8K-M89EZ-AYPEG-MYUA8
ZC5XK-A6E0M-080XQ-04ZZG-YF08D
ZY5H0-D3Y8K-M89EZ-AYPEG-MYUA8
以上即是VMware下安装Ubuntu的全流程,若是在安装过程当中有什么问题欢迎联系做者或在下方留言。ubuntu
在VMware下安装好Ubuntu后,虽然Ubuntu内自带了Python,可是其版本通常是2.7的,并且许多经常使用的工具包并没用集成,因此咱们还须要安装Anaconda(一招解千愁),若是熟悉Java的话,Anaconda就相似Maven同样的存在。咱们根据以上介绍的Anaconda的下载方式在Ubuntu下载好Anaconda以后,进入到其目录之下(或者cd操做),而后打开终端,执行以下命令来进行安装:vim
bash Anaconda3-5.3.1-Linux-x86_64.sh # 不要盲目的复制粘贴,根据本身所下载的Anaconda版本执行
执行以后会有一些列诸如赞成协议之类的问题,咱们直接默认默认选项便可(直接Enter,或者yes),直到出现Anaconda环境变量配置的显示(不要无脑yes过头了),咱们须要选择将其加入到环境变量中去。一系列操做以后,咱们关闭终端而后在从新打开终端,而后在终端分别执行conda list、python命令,若是你的终端界面出现相似如下输出,则恭喜你说明你已经完成了anaconda的安装。
这里再说明一点:而若是你的终端输错报错(未找到conda命令之类的)或者Python版本为2.7,那就说明你以上操做中未将Anaconda加入到环境变量(yes过头),因此你须要手动配置Anaconda的环境变量,操做以下:
打开环境变量的配置文件,从这里咱们就能够看出Linux和Windows下的操做的区别了(windows通常是经过界面的形式进行设置,而Linux下则大多数经过终端并使用vim进行配置)
# 打开环境变量的配置文件,从这里咱们就能够看出Linux和Windows下的操做的区别了
# windows通常是经过界面的形式进行设置,而Linux下则大多数经过终端并使用vim进行配置
sudo vim gedit /root/.bashrc
打开文件以后咱们须要在文件末尾添加以下内容(须要熟悉vim操做),其中XXX为你的Anaconda的bin目录,例如个人是/home/lxj/anaconda3/bin
export PATH="XXX:$PATH" # XXX为你的Anaconda的bin目录,例如个人是/home/lxj/anaconda3/bin
而后保存(Esc -> shift+: -> wq -> 回车),在终端输入source ~/.bashrc进行更新便可完成Anaconda环境变量的配置,不出意外的话再次分别执行Python、conda list命令以后你会看见conda包的列表以及Python3.7的输出了。
补充:这里额外说明一下,以上的操做是使用Vim进行文件编辑的,他不一样于windows下的记事本等,而是经过特定的操做来对文件进行编辑。对于熟悉Vim操做的应该会理解以上Anaconda环境变量的配置,然而若是是对Vim比较陌生的朋友可能会卡壳,因此在这里简单介绍一些vim的操做:
在终端使用vim命令以后将会进入到vim的界面,此时的界面是不容许modify任何内容的,只容许read only。此时咱们输入i将会进入到vim的编辑模式,如今就能对该文件进行修改了。文件内容修改完成以后,咱们须要退出该vim编辑模式,vim 的退出经常使用的有如下几种(首先输入Esc键):
对于以上Anaconda环境变量的配置,vim的熟悉至此就足够了,顺便介绍一下其余经常使用的命令供你们参考
注意:以上内容都是在服务端计算机中进行配置
至此,咱们已经完成了环境的搭建,接下来咱们介绍一下如何使用Xshell远程链接Ubuntu操做
注意:如下内容都是在客户端计算机中进行配置
安装好Anaconda以后,咱们须要经过Xshell使用Xshell来远程链接咱们的Ubuntu系统,此时咱们的目标须要转移至客户端了。
首先在以上软件下载中根据连接下载Xshell,以后Windows傻瓜式安装好Xshell(顺便把Xftp安装下,与Xshell配套使用的,虽然在本文中使用不到)。以后的操做会有几个坑,可是没必要担忧,下面会详细带你一个一个的填掉 o(*≧▽≦)ツ┏━┓。
坑一:链接失败
咱们双击打开Xshell,并点击文件并新建,而后根据以下图进行操做:
补充,上方中的主机属性是填Ubuntu的ip地址,该地址可在Ubuntu的终端执行ifconfig(windows是ipconfig)命令获得。
以上信息填写完以后在出现的界面输入本身Ubuntu下的用户登陆密码便可。
执行以后你会发现链接失败,此时咱们须要检查一下Ubuntu是否与客户端处于同一网段下,能够将Ubuntu设置成桥接模式(右键Ubuntu虚拟机而后进行设置,通常用于有线链接状况)或者使用Nat模式(用于无线),以后再次检查一下客户端(Windows10)是否可以ping通服务端(Ubuntu),在客户端的cmd中执行以下:
ping XXX.XXX.XXX.XXX # XXX.XXX.XXX.XXX为服务端的ip
在以上操做以后,通常就能ping通了,若是失败了则在Ubuntu终端下执行sudo wfw disable命令关闭防火墙。
坑二:链接失败 (ノへ ̄、)
在如上操做以后,咱们再次尝试从新链接。咱们能够发现依然链接失败,显示拒绝链接之类的信息。这是由于Xshell是经过ssh协议来链接Ubuntu的,可是Ubuntu默认是没有开启ssh服务的,因此咱们须要在其终端执行以下命令来开启ssh服务:
sudo service ssh restart
以后咱们再次尝试链接。
坑三:链接失败 (ノへ ̄、) (ノへ ̄、)
通常来说,这个时候依然是链接失败,由于在默认状况下Ubuntu未安装ssh服务,此时咱们须要在Ubuntu下安装ssh服务,执行如下命令进行安装:
sudo apt-get install openssh-server
待其安装好后,咱们再再再次链接Ubunut。若是没法安装,则须要执行apt-get update进行更新,更新以前若是出现没法得到锁相关的报错信息,则执行以下命令断开apt进程后再次更新:
# 查看apt相关进程
ps aux |grep apt
# 而后把apt进程杀掉
kill -9 进程号
# 从新更新apt-get
apt-get update
以上坑踩过以后也该链接成功了吧。的确此时你将成功链接到Ubuntu了,以后Xshell将打开一个终端,这个终端就是Ubuntu下的终端了,也就是说咱们可使用该终端控制Ubuntu了,并对其进行Shell操做。ヽ(✿゚▽゚)ノ
因为咱们在以前已经安装过了Anaconda,因此此时的Ubuntu就已经集成了ipython 以及jupyter-notebook(Anaconda就是这么的强大)。对此,咱们将经过Xshell远程链接Ubuntu来搭建Jupyter notebook的服务器,并对其进行远程访问。
from IPython.lib import passwd
passwd()
上述命令执行以后将会在终端显示设置密码,方便起见,在这咱们将密码设置成:123,以后enter并确认便可完成密码的设置。
注意:这里的密码是暗文的形式,输入以后不会显示的,还有此时你输入的密码须要记住,由于咱们待会远程访问Jupyter notebook服务器的时候须要用到该密码进行登陆
密码输入以后,咱们将会看到有一个较长字符串,该字符串是上述密码的一个加密形式,咱们须要将其复制下来,在以后的ipython_notebook_config.py文件的设置中须要使用,操做结果以下图所示:
ipython profile create XXX
在上述服务器名建立完成以后,将在终端输出两个py文件(ipython_config.py、ipython_kernel_config.py)路径,以后使用以下cd命令咱们进入到.ipython路径cd ./.ipython。具体操做图示以下:
cd .ipython/profile_txj
vim ipython_notebook_config.py
进入到vim环境以后咱们在ipython_notebook_config.py文件中编辑以下内容,主要是配置notebook的登陆密码(加密后的形式)以及服务的开放端口:
c = get_config()
c.IPKernelApp.pyalb = "inline"
c.NotebookApp.ip = "*"
c.NotebookApp.open_browser = False
c.NotebookApp.allow_root = True
c.NotebookApp.password = u"加密后的密码" # 这里咱们须要使用上述加密后的密码,在另外一个终端可见
c.NotebookApp.port = 8888 # 在这里,咱们须要设置一个jupyter-notebook的端口,尽可能设置的少见点,以避免形成端口冲突
编辑好后,wq命令保存并退出。
jupyter notebook --config=【你的ipython_notebook_config.py文件路径】
# 例如/home/lxj/.ipython/profile_XXX/ipython_notebook_config.py
在上述命令执行以后,若是出现以下图片所示内容,则说明咱们的服务端已经正常启动
以上就是Jupyter notebook服务器的配置及远程访问的内容了,可是可否正常使用呢,咱们下面将经过几个简单的例子来对其进行测试。
TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操做,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你能够在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可普遍用于其余计算领域。
上述操做完成以后,咱们须要在Anaconda下安装Tensorflow包,这里咱们能够采用Anaconda虚拟环境中安装:
# Anaconda下经过`create`命令并指令Python版本建立一个虚拟环境,命名tensorflow2
conda create --name tensorflow2 python=3.六、
# `conda env list`能够看见当前所拥有的环境
conda env list
# `activate`命令激活所须要的虚拟环境
conda activate tensorflow2
# 成功进入后后咱们便可直接经过pip进行安装`tensorflow2`
pip install -U tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=1000
# GPU版本安装:conda create -n tf2 tensorflow-gpu,执行以后会自动安装 CUDA,cuDNN,TensorFlow GPU 等
在虚拟环境安装好Tensorflow2以后,要想在Jupyter notebook下使用该虚拟环境,咱们还须要在该环境下安装ipkernel:
conda install ipykernel
python -m ipykernel install --name tensorflow2 --display-name tensorflow2
成功安装以后,在tensorflow2虚拟环境下使用jupyter notebook命令便可启动,登陆以后在服务页面中便可指定tensorflow2 kernel环境来编写代码。经过上述的操做,咱们已经完成了全部的工做。下面咱们对其进行验证,看看Anaconda下的第三方包可否正常使用。为此,咱们经过如下几个小的案例来进行验证:
import requests
from bs4 import BeautifulSoup
def get_page(url, headers=None):
return requests.get(url).text
if __name__ == "__main__":
baidu_url = "https://www.baidu.com"
baidu_soup = BeautifulSoup(get_page(baidu_url), "html.parser")
son_links = [biaoqian_a.attrs["href"] for biaoqian_a in baidu_soup.find_all("a")]
for index, son_link in enumerate(son_links):
print("正在请求第{}个页面".format(str(index)))
print(get_page(son_link))
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
% matplotlib inline
for module in np, pd, mpl:
print(module.__name__, module.__version__)
if __name__ == "__main__":
ax =pd.DataFrame(np.random.randn(1000, 6), columns=list('ABCDEF')).cumsum().plot(secondary_y=["D", "E", "F"])
ax.set_ylabel('ABC plot')
ax.right_ax.set_ylabel('DEF scale')
ax.legend(loc='upper left')
ax.right_ax.legend(loc='upper right')
plt.show()
import tensorflow as tf
import numpy as np
from matplotlib import pyplot as plt
import matplotlib as mpl
%matplotlib inline
for module in tf, np, mpl:
print(module.__name__, module.__version__)
if __name__ == "__main":
(x_train_all, y_train_all), (x_test, y_test) = tf.keras.datasets.fashion_mnist.load_data()
x_valid, x_train = x_train_all[:50000], x_train_all[50000:]
y_valid, y_train = y_train_all[:50000], y_train_all[50000:]
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten(input_shape = [28, 28])) # 定义输入层
model.add(tf.keras.layers.Dense(300, activation="relu")) # 定义全链接层(最普通的神经网络),中间定义两个隐藏层
model.add(tf.keras.layers.Dense(100, activation="relu")) # 再定义一个全链接层
model.add(tf.keras.layers.Dense(10, activation="softmax")) # 定义输出层
model.compile(loss = "sparse_categorical_crossentropy",
optimizer = "adam",
metrics = ["accuracy"])
history = model.fit(x_train, y_train, epochs=10,
validation_data=(x_valid, y_valid))
pd.DataFrame(history.history).plot(figsize=(8, 5))
plt.grid(True)
plt.gca().set_ylim(0, 1)
plt.show()
经过上述的演示,已经完成了windows10下使用xshell远程链接linux系统以及远程访问jupyter-notebook服务,并经过几个小例子来对其进行验证说明能够正常使用linux下的anaconda。这样的话便可实现两台PC级之间的协调工做,一台用做服务端提供环境,另一台做为客户端来远程进行访问并编写代码,并且其中的优点也是显而易见的,既能在必定程度上减少计算机的压力,又能方便管理且易于操做。另外,以上的环境搭建只做为一个案例,并不惟一,好比你可使用Linux Centos、aliyun云服务器等。若是以上内容帮助到了你,请点个赞吧.゚ヽ(。◕‿◕。)ノ゚.:。+゚