比较机器学习方法在非小细胞肺癌纵隔淋巴结转移分类中的应用
微博:@MrGiovanni

电子邮件:zongweiz@asu.edu
如果您觉得这篇论文有用,请引用它。谢谢!
王华,周Z,李Y,等。 18F-FDG PET/CT图像非小细胞肺癌纵隔淋巴结转移机器学习方法比较[J]. 2017年,7。
---
论文引用——3.2 测试平台
项目代码在Windows 7上运行,主要使用Matlab R2013a和Python。 Matlab用于块分割和预处理,卷积神经网络使用Keras构建,Keras是一个基于Python和Theano的深度学习框架。 Keras 是一个基于 Theano 的深度学习框架。它的设计参考了Torch,用Python语言编写。它是一个高度模块化的神经网络库,支持GPU和CPU。它特别容易使用,适合快速开发。
开门见山,拒绝走弯路
下载 Anaconda Python 发行版:
无脑安装,继续下一步
安装完成后,所有的基础包都可用了。安装好anaconda后,相当于安装了Python、IPython、集成开发环境Spyder、一些包等。然后打开Anaconda Prompt,cd到.py文件的路径,输入“python **.py”。注意:与cmd命令相比,这里多了一个“python”。如果不添加python,会出现错误信息:Access Denied。
打开Anaconda Prompt,输入命令,即可运行py文件
在打开的Anaconda Prompt的命令行中输入“pip install keras”,稍等片刻,keras就直接安装好了,太方便了!
pip安装keras
然后输入命令“conda install mingw libpython”,稍等片刻,MinGW就安装好了。
解决g++未检测到问题
最近安装的时候感觉很慢。有时根本没有任何进展。我怀疑是被屏蔽了
于是我默默地翻过墙,然后我就进步了。
接下来开始安装theano~三步
1. 下载 theano 的 zip 文件,并将其解压到计算机上的目录.../Anaconda/Lib/site-packages/theano。注意:原来这个site-packages中有一个叫做theano的东西。删除它。 !替换为压缩包中的文件,并重命名为theano
2、添加环境变量:路径:C:/Anaconda/MinGW/bin; C:/Anaconda/MinGW/x86_64-w64-mingw32/lib;
3、新建环境变量:PYTHONPATH:C:/Anaconda/Lib/site-packages/theano;
好了,理论上theano已经安装成功了。我们来测试一下吧~在Anaconda Prompt命令行中输入“python”回车,然后输入“import theano”回车。如果你看到三个箭头“>>>>”并且没有其他乱七八糟的东西,那就意味着:你!安装!盒!变得!成就!啦!
此时,你已经可以运行keras神经网络程序了,但是有一个小缺陷:会警告你找不到cl.exe。你可以忽略它,我提供的解决方案是
进入电脑C盘目录,搜索“cl.exe”。将出现几个 cl.exe。
可靠的路径名是:C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64
当然,前提是你的电脑上安装了Visual Studio(VS)。如果没有,也没关系。只需安装它即可。提供VS各版本免费下载地址:Visual Studio各版本下载
下载完后,将搜索到的cl.exe路径添加到系统路径Path中,警告就消失了~
(可选)加速库CuDNN
从官网下载需要注册账号并申请,两三天内就会审核通过。通常可以通过网盘搜索找到最新版本。
Windows 当前为 cudnn-7.0-win-x64-v5.0-prod.zip。
下载并解压名为cuda的文件夹,其中包含bin、include和lib。将这三个文件夹复制到CUDA安装的地方覆盖对应的文件夹。默认文件夹是:
C:\Program Files\NVIDIA GPU 计算工具包\CUDA
添加环境变量:path:C:\Anaconda2;C:\Anaconda2\Scripts;
很酷,整个 64 位 python·keras 已配置完毕,这意味着您可以运行深度学习代码了:)
至于找keras的源码,这里随便选一个,一般都是用mnist_cnn.py。
如果你已经根据“干信息”成功配置了keras,那么就不要继续阅读了。如果没有,这里有更详细的步骤、遇到的错误以及相应的解决方案。供你参考:)
安装Python
我选择的版本是2.7.11版本,注意!不要安装Python 3.5.1,否则后续的深度学习配置会出现各种陷阱。从Python官方主页下载Python安装包。下载地址为:
下载2.7.11,不要追最新! !
选择64位!选择64位!选择64位!说三遍,不然数据量变大就会出现MemoryError!
正是因为这个原因,我需要重新安装python!呵呵
我运行的是 Windows 7 64 位机器
当然,我一开始没有安装64位版本是有原因的,因为运行mnist手写字体识别的神经网络时出现这个问题。当时为了简单,我就简单的安装了32位的python。唉,坑还是要填啊! ! !
64位的ImageDataGenerator会报错,但最终你不需要使用这个模块。
下载完成后,一直点击“下一步”即可。注意:安装在系统盘! !
这里只为我选择
安装完成后,我们需要手动添加环境变量:右键我的电脑->属性->点击高级系统设置->点击环境变量->点击PATH->在最后添加我们的Python安装路径->点击当然。反正就是Python27文件夹的系统目录。
我的路径是:C:\\Python27
如何查看是否安装成功?打开cmd命令行界面,输入python,返回版本号。就是这样。
我就不告诉你怎么打开cmd了~
python安装成功!
安装点子
pip 之于 Python,就像 Apple Store 之于 iPhone。这是每个包的下载中心。刚刚下载下来的python相当于一个裸机。在pip中需要下载一些深度学习所需的包~所以现在我们先下载并安装pip。
您还需要从Python的官方网站下载它。下载地址为:
会自动跳转到这里。只需下载这个即可。
下载后解压到python27文件路径
在这里解压
打开它,里面有一个setup.py,复制当前路径,cmd下cd到这里
cd C:\\Python27\\pip-8.1.1
到达C:\\Python27\\pip-8.1.1后,输入
python setup.py 安装
只需输入两行代码
这种情况就是“没有配置环境变量”! python安装也是同样的道理
--------我是分割线---------
当然最近又出现了一个新的错误,就是这个
导入错误:没有名为 setuptools 的模块
如果没有遇到最好的,就直接跳到下一条分割线。如果遇到的话,解决方法是:
直接使用浏览器访问地址:,直接打开get-pip.py的源码,可以直接复制内容,然后在本地创建get-pip.py。只需新建一个txt文档,粘贴内容,并将其重命名为get-pip.py即可。注意:文件类型更改为.py。
运行cmd,cd到get-pip.py所在目录(我是C:\\Python27),运行代码:
运行get-pip.py,安装完成:)
--------我是分割线---------
按照之前介绍的添加环境变量的方法,我们在PATH末尾添加:
C:\\Python27\\脚本;
然后检查pip是否安装成功。在cmd中输入pip,就会出现这个。
对你有好处,你成功了!
安装深度学习框架keras
以上都是基本的准备工作。如果你已经跪在前面了,那么。 。仅有的。 。祝你一切顺利:)好了,我现在开始正式讲一下如何使用keras!
注:python和keras的所有代码都是在cmd界面运行~
我们可以先看一下Python目前有哪些包,在cmd中输入:
点值列表
现在有pip、setuptools和wheel。
我们需要先安装 scipy 和 numpy 这两个包。注意:这两个包很奇怪。用 pip 安装它们会给你带来很多错误。建议使用在线scipy.exe和numpy.exe无脑安装,省事。你可能会在网上看到whl等格式的文件以及所谓的“官网”安装。我只能建议:不要落入陷阱。 。 。 :)
Numpy.exe 64位下载地址:
scipy.exe 64位下载地址:
可能scipy.exe需要注册账号,所以我给大家提供我的两个exe的百度云链接:numpy.exe、scipy.exe
下载完这两个exe后,都是无脑安装的,一直按next就可以了。然后在cmd下输入“pip list”检查是否安装完成。如果成功的话就是这个界面。
分阶段享受乐趣:)
接下来我将介绍如何使用pip appstore。这只是一句话的问题。在cmd中输入:pip install **(你要下载的包),然后回车。确保有互联网连接,下载和安装将自动开始。这非常简单。例子:
现在已经安装了 scipy 和 numpy,我可以下载并安装 keras,仅此而已
pip安装keras
这样keras就安装成功了。 。 。
调试keras
首先,你必须有一个卷积神经网络的keras示例代码。一般来说,推荐minst。我可以提供代码和数据。我认为这个网站将成为下一步学习的垫脚石,因为你需要开始稍微改一下代码。
这个网站相当于keras的详细使用文档,是学习keras过程中不可避免的参考资料。
有了代码和数据,我稍微改变了数据路径,然后开始解决一堆错误问题:
错误1:抱歉,未实现:64位模式未编译
原因:32位gcc无法编译64位程序。
解决办法:下载64位gcc并安装到E:\\MinGW\\bin下,需要修改环境变量。 (个人测试不行,哈哈)
错误 2:“g++”未被识别为内部或外部命令。
我只是使用我安装的codeblocks的g++.exe所在的路径并将其放入环境变量中。
错误 3:TypeError:max_pool_2d() 得到意外的关键字参数“mode”
这是当 Keras 内部的函数在形参中使用额外的“模式”定义时。找到这个函数,删除mode='average_exc_pad'。求函数的方法如下所示。函数在文件theano_backend.py(C:\\Python27\\Lib\\site-packages\\keras\\backend\\theano_backend.py)中,使用搜索找到pool_out = downsample.max_pool_2d的位置中,删除什么应该删除!
这就需要修改keras的内部代码了~
--------我是分割线---------
如果你真的遇到太多陷阱,那就尝试其他方法。如果正常就跳到下一条分割线了(呃)
Anaconda Python 发行版安装
下载 Anaconda Python 发行版:
无脑安装,继续下一步
安装完成后,所有的基础包都可用了。安装好anaconda后,相当于安装了Python、IPython、集成开发环境Spyder、一些包等。然后打开Anaconda Prompt,cd到py文件的路径,输入“python **.py”。注意:与cmd命令相比,这里多了一个python。如果不添加python,访问会被拒绝。
打开Anaconda Prompt,输入命令,即可运行py文件
然后在打开的Anaconda Prompt命令行中输入“pip install keras”,这样keras就直接安装好了,太方便了!
--------我是分割线---------
好吧,我们继续填坑。
错误4:未检测到g++!
前提是我已经将E:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin和lib,include添加到系统路径中。呵呵
g++ 未找到! ! ! !
解决方案:在【Anaconda2】中输入命令“conda install mingw libpython”
成功解决g++未检测到的问题
错误5:异常:编译失败(返回状态=-1073741701)
错误消息看起来像这样
-fPIC问题的解决方案:我看不懂,妈的
我的解决方案:首先不要使用codeblocks的g++.exe,使用Anacoda2自带的MinGW的g++.exe,并将此路径添加到环境变量中
地址是C:\\Users\\Administrator\\Anaconda2\\MinGW\\x86_64-w64-mingw32\\bin,然后错误信息变成这样
错误:CreateProcess:没有这样的文件或目录
对于这种错误4和错误5,我想提供一个终极的解决方案! ! ! (再也忍不了了)
Theano在64位WIN7上成功安装并运行g++和GPU
我们已经安装了 Anaconda,现在我们需要重新安装它!新的!安装!盒!西亚诺!
1.下载theano的zip文件,解压到.../Anaconda/Lib/site-packages/theano(文件中有一个theano文件夹,取出来放到E:/Anaconda/Lib/site -packages) 目录下。
2、添加环境变量:路径:E:/Anaconda/MinGW/bin;E:/Anaconda/MinGW/x86_64-w64-mingw32/lib;
(32位E:/Anaconda/MinGW/i686-w64-mingw32/lib;)
创建一个新的环境变量:PYTHONPATH: E:/Anaconda/Lib/site-packages/theano;
g++.exe,theano完美解决了这个问题!收藏起来~
至此,我的所有问题都已成功解决,你呢?你能成功训练你的神经网络吗?
时隔72小时,我终于再次看到这温馨的场景,我太高兴了!
写一个复活节彩蛋
对于64位Anaconda,如果python想要读取MATLAB数据文件.mat,似乎已经不能再使用32位代码了,因为会出现“Python.exe已停止工作”的错误。
sio.loadmat() 不起作用
解决办法就是改变阅读方式~
h5py.File()
这个功能有很多优点:
1.可以读取MATLAB 7.3版本或更高版本(保存-v7.3)变量在64位系统上可以超过2GB!此版本的 mat 文件可以存储大量数据。
2.输入矩阵是mat的内存形式。例如:mat文件中有一个A(3*2)的变量。 sio.loadmat() 读取的是一个一维(1*6)数组,然后你必须将其 reshape() 成(3*2); h5py.File() 直接读取一个(3*2)数组。
我刚刚测试了64·python·keras,花了我72个小时,可用内存真的很大! ! !
看!导入训练集14万+,测试集20万+
祝一切顺利~