本人也小白一个,记录下也方便日后查找哈哈。说实话win7我这是没办法,公司的性质决定的,我更愿意用win10的WSL功能(window自带的子linux系统,还不错用的挺开心,尽管有很多痛点,有兴趣的话网上也有教程,这里不多说了)。ubantu16.04,这个很适合新手学习,生态丰富,有问题网上一搜就有,对我辈小白很是友好哈哈。keras嘛,是一种深度学习框架,和TensorFlow类似,用的TensorFlow等很多相似框架的后台(可以任意切换的哦),算是TensorFlow的上层框架吧哈哈。下面是本文的目录:
virtualbox是免费开源的,与其对应的vmware是收费的(在中国收费是不可能的,这辈子是不可能的,程序员又没钱,一年收费又这么高,只能搞搞破解版维持的了生活这样子),所以选了virtualbox,百度搜一下官网下载即可,然后下载的exe点击安装就可以了。安装有几个点需要注意一下(安装教程网上海量,不赘述了):
设置硬盘空间大小想好了再设,改不了!!!
硬盘空间有两种模式:
(再此之前,我希望你能更改下目标路径)
第一个是动态分配:不要想当然的认为动态分配就是硬盘空间快满的时候可以随意增加其大小了,并没有这么智能;它的意思是说如果你硬盘空间不够了,你可以再次划分windows其中一个磁盘中的一个部分来以“挂载”的形式增加其硬盘空间。挂载这个概念我举个例子,window系统上实际上的根目录为“/”(即“/计算机”),那么我们熟知的c、d、e、f盘或者插入的u盘g、h盘都可以叫做“挂载“”到根目录上,所以我们点开此电脑,就是c、d、e、f盘。那么这种情况下想要增大ubantu虚拟机的硬盘空间,除了在windows划一部分给ubantu之外,还要设置一下划出来的这部分到底挂载到ubantu的哪一个目录(也就是做一个映射)。增大动态分配硬盘空间的教程也有很多,这里也不在赘述。
第二个是固定大小:这个就是很直接,固定大小写死了的,我一下分配了200个g,当然对应的是得创建个一个多小时,不过简单省心就是他了。
在此之前,你需要安装在之前配置好的虚拟磁盘下安装ubantu 16.04系统。其iso映像文件在清华镜像可以下载(强烈推荐),百度清华镜像就可以了,教程网上一大堆。
打开共享文件夹的设置界面:
选择固定分配,添加你要共享的文件夹路径,设置共享文件夹名称,这个名称在之后的配置中会用到,只勾选固定分配,两个ok就好。
这一步主要是告诉virtualbox,我要共享的文件夹对应windows系统的哪个文件夹。
接下来设置共享文件夹对应ubantu虚拟机的哪个目录。这个设置需要在ubantu系统内的命令行设置,所以你这时候的ubantu系统必须已经安装好了。
安装virtualbox增强功能,那么意思就是要给你的ubantu系统安装点增强功能,其中就包括共享文件夹这个功能。点击设备>安装增强功能,virtualbox增强功能的安装包将会以类似u盘的方式插在ubantu系统上并自动运行,然后run。
输入sudo的密码,然后稍等一小会,如下图所涉就可以回车关闭命令行表示安装完成了。好了,你的ubantu终于可以拥有这个共享文件夹的功能啦。
接下来就是配置了,打开ubantu命令行,在桌面处按 Ctrl + ALT + T
就会出现命令行啦。按照如下命令即可:
核心命令即为:
sudo mount -t vboxsf share ./share
//第一个 share 就是之前设置windows共享文件夹的名称
//第二个 ./share 是设置映射到ubantu的共享文件夹的文件夹路径
那么到此共享文件夹的功能就配置好了,创建一个文件看看是不是两个系统都存在吧!
点击设备>网络>网络…
点击高级>端口转发
首先我们来梳理一下原理,默认为NAT,这也是最合理的一种方式,在这种方式下,ubantu系统的网络即为windows系统网络的子网。正常来说,当windows网络畅通的情况下,他的子网ubantu的网络也是畅通的。
但是,此时ubantu本身想不到自己竟然是虚拟机下的一个系统,它的网关其实应该是virtualbox创建的一个虚拟网卡并不是实际的网关,而ubantu自己也不知道有这么一个虚拟网卡只能拥有自己的本地网卡,为了不让ubantu这个傻儿子只局限于自己的网连不到外网,我们只能勉为其难的告诉ubantu“你的网关其实是virtualbox的虚拟网关”,那么告诉的方式就是端口转发了。
在win7系统下, Windows + R
输入 cmd 并按回车进入命令行。
在命令行输入 ipconfig,找到虚拟网卡的ip地址。
在ubantu系统下,Ctrl + ALT + T
进入命令行。
在命令行输入 ifconfig,找到ubantu本地连接的ip地址。
名称任意,主机ip填虚拟网卡的ip,端口号默认都是22,子系统ip为ubantu本地连接的ip地址,端口号仍为22,两个ok就好。这样做了一个端口映射以告知ubantu虚拟机,想要访问外网,那么上一跳地址就得是virtualbox的虚拟网卡,再由虚拟网卡访问外网,其中虚拟网卡与windows的本地连接是同级的。
这样网络配置就已经大功告成了,看看ubantu这时候已经可以上网了哦!
还有一种比较常用的NAT以外的方式就是桥接网卡,NAT说:ubantu,你来当我的儿子吧,ubantu的网络就是windows的子网;桥接说:ubantu,你以后就是我的兄弟了,那么ubantu的网络与windows的网络是同级的,都是192.168.xxx.xxx了。如果你用校园网等上网还得登录的话,这两者的区别就显而易见了。子网NAT情况下,两个系统只需有一个登录即可;同级桥接情况下,两个系统都必须登录,相当于两台电脑同时登录,讲到这里大家应该明白了。桥接具体的配置这里不说了,大家的智慧一定可以搞定。
xshell就是一个命令行工具,xftp就是本地与远程可以互相传文件的工具。
下载的安装包在官网上只要注册个账号就可以免费下载,点击exe默认安装就行(最好改一下安装路径)。
由于我的是win7这么可恶的系统,所以在安装的时候会出一点小问题。安装完毕后,点击运行时会出现 Xshell 缺少 mfc110.dll的错误。嗯只要是出现这样的错误,安装个vcredist_x86插件就完了,由于xshell是32位的,所以你要下载32位的插件(尽管你是64位的win7,这里不要混淆)。xftp也一样。
vcredist_x86下载地址:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=30679
然后单击此处手动下载,你就找到你想要的插件了,安装之后就不会有这样的问题了。
ubantu等正常的系统,都可以访问所在网络环境的任意ip地址(但人家这个ip让不让你访问就不一定了),但是默认不会让你的系统轻易地让别人访问,甚至连这样的功能都不会一开始在系统上存在。那么要想实现被连接访问这一功能需要ubantu安装的工具就是openssh,安装成功之后,你的ubantu可以看做成“服务器”(事实上,如果你的ubantu跑了服务代码,它就是个服务器)。下面是用 apt-get 安装openssh的过程:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bat
//copy文件备份一下
sudo ls /etc/apt/sources.list*
//验证copy成功
sudo apt-get install vim
//下载命令行工具vim,y确定,此时能看出下载速度奇慢无比。
sudo vim /etc/apt/sources.list
//编辑文件
此时进入vim编辑器,输入命令 :%d 回车以清空文件所有内容,输入命令 i 回车以进入vim的编辑模式。将以下内容复制到此文件中:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
按 ESC
以退出vim的编辑模式,输入命令 :wq 回车以保存并退出vim编辑器。
此时输入如下命令更新apt-get的下载源:
sudo apt-get update
等待完成更新即可,再用apt-get下载就会快很多啦。
sudo apt-get install -y openssh-server
//安装openssh-server,加个-y省的一会儿还要输入y
sudo service ssh start
//下载安装完之后,开启这个服务
ps -e|grep ssh && service ssh status
//验证openssh是否被正常开启哦
从图中可以看出,我的openssh服务是随机开启在783端口上的。
到此,ubantu就变成了一个嗷嗷待连接的小服务器啦!
配置ip和端口号,名称随意,ip是虚拟网卡的ip,xshell通过虚拟网卡ip就能连接到虚拟机(virtualbox NAT 端口转发的功劳),端口号22。
再配置登入的用户名密码。
依次确定>连接>接受并保存就可以。如图,xshell已经远程连接到ubantu虚拟机了。
至此,ubantu虚拟机启动时可以选择无界面启动,用xshell连接ubantu就可以了。提升了开发体验,很棒吧。
下载就到清华镜像那里下载就可以了,然后将安装包以共享文件夹或者xftp的方式传到ubantu虚拟机上。
之后 cd 到你下载的 .sh 文件的目录下运行如下命令:
sudo sh ./Anaconda3-5.2.0-Linux-x86_64.sh
/home/pyxsqbs/Documents/qbs/software/anaconda3
- 是否添加到环境变量里,我们填 yes,添加环境变量的目的是让你使用的命令可以在任意目录下使用;
- 下载vscode我们选no;
这样我们就算安装完成了。
source ~/.bashrc
如果没有上述命令,你也可以重新启动ubantu虚拟机。
python
同理,这步是为了下载包的时候更加快速,只需在命令行输入如下命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
没什么输出就算是配置好了,使用的是清华镜像。
首先我们先讲一下为什么要用虚拟环境呢,我们在开发不同的应用场景也许会遇到如下情况:
在同一个系统下需要不同版本的开发环境,避免版本之间的冲突
希望更合理的管理自己的开发环境和所需各种依赖包和第三方库
那么我们就需要anaconda的虚拟环境功能了,需要使用conda命令来安装。
虚拟环境与之对应的就是本地环境,本地环境一般叫做 local 或是 base,虚拟环境自然叫做virtual。本地环境只有一个,当然只能配置一个开发环境,虚拟环境可以建立很多个就可以配置多个开发环境了,而且他们之间相互不重合也不干扰完全分离。
建立虚拟环境的命令如下:
conda create -n [输入你想建立的虚拟环境名称] python=[2.7 or 3.6] [你想顺便下载的包的名称]
所以输入如下命令:
conda create -n tensorflow python=3.6 anaconda
等待安装完成后,进入你建立的虚拟环境:
source activate tensorflow
这样我们就进入了刚刚建立了一个名为 tensorflow 的 虚拟环境,并且下载 anaconda 工具集。
输入如下命令:
cd ~
sudo mkdir .pip && cd $_
sudo vim pip.conf
进入vim编辑器,i 键进入编辑(insert)模式:将如下内容复制粘贴到vim中:
[global]
index-url = http://pypi.douban.com/simple
[install]
trusted-host=pypi.douban.com
粘贴完成后,按 Esc
键后输入 :wq 保存退出。至此pip安装的包就可以从豆瓣的镜像源下载了,提升下载速度。
进入名为tensorflow的虚拟环境后,命令如下:
pip install tensorflow
下载成功后输入以下命令验证是否安装成功:
python
在python命令行中输入如下代码:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
a = tf.constant(10)
b = tf.constant(32)
print(sess.run(a+b))
但是,由于虚拟机中的ubantu 16.04的版本问题,会出现如下报错:
Illegal instruction (core dumped)
不要慌(我当时慌了),版本不对而已,我从tensorflow现在的最新版本一直一个个回退到1.5.0版本才算没有问题。
运行如下命令解决:
pip uninstall tensorflow
pip install tensorflow==1.5.0
最后再在如上文验证,则可成功。
Ctrl + Z
退出python命令行。
输入如下命令:
pip install keras
等待安装完成进入python命令行
python
验证keras安装是否成功,我们最好用github官方的例子
我们先安装github的git工具用于下载keras的源码工程文件:
sudo apt-get install git
安装完成后在git中配置github的账户信息以关联两者:、
git config --global user.name "pyxsqbs"
git config --global user.email "[email protected]"
之后我们下载keras的源码工程文件:
#先进入你想下载的目录
cd ~/Documents/qbs/documents
git clone https://github.com/fchollet/keras.git
最后我们 cd 到 examples 目录下,运行keras测试代码:
cd ./keras/examples/
python mnist_mlp.py
说实话,花了很多功夫都在安装前置的工具集,但不要尴尬。我的理念是用最高效的工具集,开发最优秀的代码,前面的时间不怕浪费,后面有我们好果子吃的,哈哈。其他的坑在网上基本一搜就有,这里也是给我自己和其他人提供些许方便,做了些微末的工作,有错误不当的地方大家尽快指正,交流使人进步,谢谢大家。