说不上取代,但是在MATLAB中做深度学习会越来越舒服是真的。
因为MATLAB自己工具链很庞大,在科学计算和工业界应用非常广泛,所生成的巨量数据也是非常有机器学习的需求。2019b版本在深度学习方面有比较大的更新。比如模型导入工具:
net = importKerasNetwork(modelfile)
可以直接导入在TensorFlow-Keras训练好的网络。
以及原生支持GPU训练的工具:
net = trainNetwork(imds,layers,options)
对于简单的模型和训练任务不大的任务,可以直接在MATLAB里搞一个,实现模型所需的代码量比TensorFlow少很多,用于前期的idea时期会比较方便。下面就是官方给出的用于训练手写识别的CNN模型
layers = [ ...
imageInputLayer([28 28 1])
convolution2dLayer(5,20)
reluLayer
maxPooling2dLayer(2,'Stride',2)
fullyConnectedLayer(10)
softmaxLayer
classificationLayer];
如果深度学习任务非常复杂而且又是整个项目中不可或缺的一个重要环节的时候,就可以用TensorFlow做深度学习相关的部分,然后用模型导入功能把训练好的模型导入来用。
题外话:
我个人还是很喜欢PyTorch的,但是MATLAB到目前(2019b)为止还不支持PyTorch的parset文件模型导入。好在那个项目本身数据处理部分的工作移植起来并不困难,就整个放Python里了。
等有朝一日,MATLAB可以导入PyTorch的模型文件的时候,那就真的舒服了。
题外^2话:
MATLAB深度学习的社区发展起来是迟早的事情,因为已经有很多出版物来教学MATLAB深度学习,好让大部分深度依赖用户可以尝试一下深度学习: