机器学习近来火得可谓人尽皆知。其实楼主现在的研究方向是椭圆曲线密码的硬件实现。so,我一直以为这跟Python,神经网络啥的确是八竿子打不着,然而,这个世界上就是不缺那种能开先河能摆证据撂服众生的大神。举个栗子这篇文章learing the enigma with recurrent Neural Networks。是 2017年发表于AAAI 的一篇文章,AAAI 2017是指第31届人工智能大会AAAI-17,是人工智能领域的最重磅会议之一。所以楼主也是很好奇,这里的RNN究竟是对我们一个世纪之前的简单的多表代换密码enigma做了什么,会如此的有价值呢。说起enigma,我也强烈推一波卷福气质图灵大神版的电影《模仿游戏》,主要是关于二战时期,以希特勒为首的纳粹国依靠enigma密码设备加密通讯,战事顺风顺水。所谓魔高一尺道高一丈,盟国就出现了以图灵为首的科研团队,各种剧情起承转合可能有失真实,但是结局很surprise,图灵成功破解该密码机。额,,言归正传,这篇论文呢,我仔细看了,并将其翻译为中文用RNN学习Enigma(如果显示文件正在转码,直接下载即可)。然后根据该论文中所讲,我就去github上下载了相关代码All Code
作为一个python完全的小白,接下来便是急不可耐的想试试下这些代码真的如文中所述如此机智。

Python开发环境搭建

今天主要讲下环境配置的问题。真真是让我头疼的地方。试了好多方案均已失败告终。
至于环境其实在文中作者也都详细告知,要想成功的跑通别人的代码,还是老实的按照人家的环境进行配置。但是对于我们平常使用Python环境学习的话,以下这些方案都可以使用。具体使用哪一种,依自己的需要决定。

方案一:简单粗暴的直接下载Python3.6

官网直接下载Python3.6Python官网。具体过程安装如下图:
1、下载,以windows系统为例。

2、最好将软件安装包有条理的放在系统盘之外的其他盘,电脑上安装的每个软件都单独创建文件夹,命名最好是英文,特别是技术类软件,避免以后不必要的麻烦。清晰分类,也利于以后的清除。紧接着双击下载完后的Python36应用,进入如下界面:(推荐自定义安装,软件为自己安装,并且如果不想之后手动添加环境变量,这里的Add Python 3.6 to PATH一定要勾选哦)

3、选中自定义安装,以下就一路next.

4、选择自己安装的程序所在的文件夹,最好安装路径自己建个install文件夹,就可以把所有安装时附带的配置文件全都放在一个文件夹下面。

5、稍等便可安装完成。

6、安装完成后,关掉页面。快捷键WIN+R,输入cmd打开命令窗,输入python,可以看到如下python版本信息,安装成功。

7、如果输入python回车后,出现如下窗口。就是步骤2中木有勾选自动添加路径,需要自己添加路径。

8、添加路径的方法网上很多,我简单描述下就不放图了。桌面-->右键 计算机-->属性-->高级系统设置-->高级-->环境变量-->用户变量-->path(这里添加在用户变量的path里就可以,之前我安装其他软件的时候,出现问题看到有说将路径添加在系统变量路径,其实计算机在搜索软件的时候优先搜索系统环境变量,如果没有找到再搜索用户变量,所以直接将路径填写在用户变量路径即可)-->编辑。此时,回到PYTHON安装路径进入scipts找到python.exe将其路径拷贝。粘贴到path路径放到最前面注意分号与后一个盘符隔开。
9、至此,我们可以从开始-->所有程序-->python-->python idle,打开进入python shell,简单的起步语句就可以开始了。这是python自带的IDE,它简单快捷,学习python测试或者编写小型软件很方便,占用资源小。至于各种package,可以根据自己项目的需求逐一安装。那在对于包的管理方面,anaconda确实好用,以下会重点讲述。

方案二:Eclipse+PyDev 进行Python项目开发

谈及Eclipse,大家比较熟知的是Java项目开发,Eclipse是JAVA的IDE,功能强大,而且Eclipse写Python或者JAVA都可以,支持跨平台在Mac、Linux、Windows上都能运行。eclipse的正常运行必须先有java jdk的环境才可以。所以我们按以下步骤进行配置。
1、安装jdk,选择与自己电脑匹配的版本下载,安装比较简单,可以参考相关的说明。环境变量的添加方法同上。版本可根据自己的电脑系统选择,如何你的是Windows 64位,那么可以下载64位或者32位。但是接下来的eclipse也要安装相对应的版本即64或者32。如果电脑是32位的,就安装32位的jdk和eclipse。jdk安装完成后,环境变量配置完成后,快捷键wina+r,cmd打开命令窗,输入java,如下图,即可安装成功。

然后可以输入 java -version查看所安jdk的版本,下图是我的电脑显示:
2、官网下载适合自己电脑系统的以及与你的jdk一致的Eclipse版本。稍等变会出现如下提示。

2、下载成功后,点击解压即可双击eclipse.exe直接使用eclipse,它无需安装且免费使用。
3、安装Python,这个完全同方案一中的python安装方法。
3、然后便是插件pydev的下载安装。 启动Eclipse,点击Help->Install New Software... 在弹出的对话框中,点击Add按钮。Name填写Pydev,location中填写:http://pydev.org/updates,
-->OK,在弹出的对话框勾选pydev.-->next.耐心等待即可。
4、配置python解释器。安装完Pydev后,需要配置Python解释器。打开eclipse,windows-->Preferences-->
PyDev->Interpreter->Python Interpreter

然后点击右边的New按钮,弹出如图对话框,添加解释器,name可根据自己的喜好自由选择。

点击OK,Pydev会自己加载该python解释器所带有的lib文件。点击OK--->apply配置生效。
至此,就可以开始简单的python程序的开发了。

方案三:Anaconda+Pycharm进行Python项目开发

Anaconda是包管理器和环境管理器。Anaconda的英文本意是“蟒蛇”,所以我们看到Anaconda 的logo就像一只首尾合抱的蟒蛇。

我们看到对于Anaconda的logo下面,The Most Popular Python Data Science Platform,OK,为什么说Anaconda是最流行的Python数据科学平台?因为Anaconda附带了一大批常用数据科学包及其依赖项。因此我们可以用它来很方便高效的处理数据。比如管理packages,Anaconda是在conda(一个包管理器和环境管理器)上发展出来的。在我们进行项目开发的时候,会需要用到很多第三方pkg,conda就可以很方便的在计算机上安装和管理这些pkg。还有管理环境,由于Python2与Python3语法仍有差异,不同的项目可能需要不同的Python版本,同时安装2个可能造成混乱,conda可以为不同的项目建立不同的运行环境。所以我推荐使用Anaconda。 Anaconda可以跨平台使用(Windows、mac、Linux)。

Anaconda的安装

1、官网下载Anaconda.注意根据自己电脑的系统选择对应的版本,比如我的电脑是Windows 64位:

2、如果你的计算机上已经安装了Python,Anaconda的安装不会造成影响,实际上脚本和程序的使用默认Python是Anaconda附带的Python.如果是windows 10系统,安装软件时注意右键以管理员身份运行。下面开始安装,双击打开.exe文件,

3、同意条款:

4、just for me 一路next

5、选择自己喜欢的单一文件夹,next

6、这里注意勾选,就不用安装之后再手动添加Python的路径啦。

7、然后就是休息等待ing,时间可能会稍长些。



8、安装完成后,点击开始-->所有程序-->Anaconda-->Anaconda Prompt终端。

9、输入conda list,可以查看刚刚安装的内容。

10、注意,为了避免之后莫名其妙的报错。这里可以输入conda upgrade --all更新所有的软件。中间有提示是否更新是输入 y.,因为初始安装的文件版本一般比较老旧,因此提前更新可以避免不必要的麻烦。

conda管理packages

1、比如我们安装pandas,打开Anaconda Prompt,语法格式为:conda install package_name,所以输入conda install pandas,
若要选用特定的版本,如例子,可以输入conda install package_name=1.1,conda还会自动安装所需包的依赖项,这对于初学者来说真是perfect。

2、卸载不用的package。同样是Anaconda Prompt中输入conda remove package_name
3、更新包,上面提到更新全部的文件是conda upgrade --all,如果你只想更新特定的文件,
conda update package_name
4、查看已经安装完成的packages,conda list。这个也可以从自己的Anaconda安装路径处,shift+右键-->在此处打开命令窗,也可以打开并输入conda list进入:

5、对于本论文中的环境,我们这里需要安装的是tensorflow1.1,numpy,打开Anaconda Prompt,输入conda install tensorflow=1.1,安装见下图:

可以看到conda会自动安装tensorflow所需的依赖项。

6、至此,Anaconda就安装完毕了。它本身集成安装了Python3,conda我们又安装了所需要的packages,所以,接下来便是开发平台Pycharm的安装与配置。

Pycharm的安装与配置

1、官网下载Pycharm,选择与自己电脑系统对于的版本。下图中可以看出Pycharm有2个版本,professional功能齐全,但需要付费,but免费试用。

2、双击安装,


3、install安装,finish。

4、打开Pycharm-->accept-->OK

试用30天,破解的话大家可以自行可以去搜索方法,我现在用的是试用。


OK,Pycharm可以正常试用了。
5、下面是一些Pycharm的配置问题。因为刚初始的Pycharm版本字体特别小,很多地方可能会让我们觉得看着很不舒服。所以适当调整为更符合我们习惯的样式也有助于我们的学习。在不打开或者新建工程的情况下就可以进行相关的配置:

A.主题设置
进入Settings-->Appearance & Behavior-->Appearance

Darcula黑灰色背景 ,护眼。
B、字体设置
直接在搜索框输入font即可快速搜索,然后根据自己的相关设置相关参数。

Settings中还可以设置多种样式,方法就是这样,其余的大家都可以根据自己的喜好随心设置啦。

项目调试

对于本论文中的项目开发所需要的环境方案三已经设置完成了。那么接下来我们来简单的跑一下这个程序。
1、从githu上下载下来代码后,将.py全都文件放在一个工程文件夹中,文件夹的名称可任意(除中文外)。打开Pycharm,启动后,直接点击OPEN,找到你下载的工程文件打开。

2、我是之前已经跑过一遍的工程页面。如果你是初次打开,别忙着运行主程序,首先要去设置解释器。仍然从Settings出发,按下图所示。

3、添加解释器:点击方框出设置按钮--->add然后选择Anaconda安装文件夹的Python36,这是Pycharm会自动加载其所含的packages,如我们刚刚安装的tensorflow1.1版本,最后一项是最新版本,可选择升级与否。python解释器选好之后,OK确定即可。

4、返回主页面,图中方框处上面的倒三角点开编辑配置,否则后面的绿色的运行符号是灰色,不可用状态。

5、点击方框中的绿色+,选Python,其余的按图中所示即可。

6、返回主页面之后,直接点击红色方框内的运行符号,如图程序正在运行。

程序运行遇到问题:Python中的编解码问题,正在查找资料,以后会继续更新。大家有好的意见和解决办法,欢迎留言共同学习。

注意:1、大家在遇到莫名其妙的报错时,不防在Anaconda Prompt中conda upgrade --all更新下所有的库文件,真的可以解决很多不必要的麻烦。
2、Python2.7只有在mac和Linux下支持tensorflow。Windows系统中,Python3支持。Python核心团队计划在2020年停止支持Python 2。NumPy项目自2010年以来一直支持Python 2和Python 3,并且发现支持Python 2对我们有限的资源增加了负担;因此,计划将停止支持Python 2。现在,Python核心团队已经进入了社区支持的Python 2的最后几年,NumPy 项目公布了它逐步淘汰 Python 2 支持的时间表,计划在此期间帮助下游生态系统制定计划并完成过渡。到2018年12月31日为止,所有的NumPy版本都将完全支持Python2和Python3。从2019年1月1日开始,任何新的功能版本都只支持Python3。所以,对于现在的Python初学者来说,不用纠结与两者的语法差异,package支持之类的问题,直接以3位标准学习肯定没有问题的。
备注:作者同样是初学者,文中不免有很多疏漏之处,欢迎大家提出改进,互相交流学习。