MATLAB个人入坑
最近因各种原因使用了matlab,与python相比,我个人认为matlab的代码在数学公式方面可读性更高,明白数学公式和原理后,阅读起代码便很轻松。而python各种各样的转化运算容易让人混淆。但python的优势在于有各种各样的库文件,在做一些可视化分析等多样化、多元化的工作时,使用python的库文件便能够很简洁的完成。在完成工作而不要需要理解其原理时,python更为适合。
下面主要介绍使用matlab过程中遇到的问题。
读取与保存大数据文件
对于大数据的保存和读取,直接运行如下代码(x为变量名)
save xx.mat x
会因为x的数据量过大而可能导致保存失败。因此需要运行如下代码,
data=matfile('DCMHdataset.mat','writable',true);
data.Ytrain(1:64,1:64,1:3,1:75000)=0;
如上代码所示,matfile可以有效保存数据。对于让其数据等于0,是先对其开辟空间。随后,保存数据时需要指定data.Ytrain的维度。
调整图像大小
一般来说,对于matlab VGG预训练模型,需要的输入图像大小为224x224x3。而我们的图像有时是多通道,有时大小为128x128。
(1)调整图像通道
对于灰度图像,我选用将单通道复制三次使其变成三通道。
对于多光谱图像(多通道),使用PCA降维成三通道的图像形式。
(2)调整图像大小。一般来说使用如下函数
A=imresize(input,[M,N])
M和N分别为调整后的行数和列数。其中还可以在函数里增加调整的方法,例如内插法等。
官方文档如下:
链接: https://ww2.mathworks.cn/help/matlab/ref/imresize.html.
使用深度预训练模型
一般来说,需要vgg_net来使用。可以使用matlab的工具包直接运行vgg16,也可以下载vgg16.mat文件,来离线加载预训练模型。其中会用到matconvnet工具包。此工具包可以实现cnn的训练等操作。安装此工具包耗费了巨大精力和时间。最终发现是因为gcc的版本不对应,需要把gcc版本安装回4.9.2。使用gcc源码安装(直接下载后进行上传),解压文件后进行安装。安装步骤按照下图网址进行。
链接: https://www.jianshu.com/p/f0b28fb4661d.