【MATLAB】matlab训练神经网络GPU和CPU训练修改切换

修改matlab使用CPU或者GPU训练神经网络

在使用matlab训练神经网络时,有的时候要用CPU跑,有的时候需要GPU,那么怎么切换使用这两者呢,我之前遇到这个问题时找了一圈没有解答,最后自己找到了解决方案,现在分享给大家。

使用的三个函数

matlab里有两个函数:
(1)trainingOptions:这个是对神经网络的各个参数进行设置的函数,如我的设置如下所示:

options = trainingOptions('sgdm',...%rmsprop
    'InitialLearnRate',initialLearningRate, ...
    'L2Regularization',l2reg,...
    'MaxEpochs',maxEpochs,...
    'MiniBatchSize',minibatchSize,...
    'LearnRateSchedule','piecewise',...
    'Shuffle','every-epoch',...
    'ValidationData',valDataSet,...     % 验证数据集
    'ValidationFrequency',50,...        % 验证精度评估频率
    'GradientThresholdMethod','l2norm',...
    'GradientThreshold',0.05, ...
    'Plots','training-progress', ...
    'ExecutionEnvironment','cpu',...
    'VerboseFrequency',20);    

(2)trainNetwork:这个函数时在设置完参数后可以生成网络,默认使用GPU进行训练,如果电脑没有GPU则自动使用CPU训练,如果有GPU则直接使用GPU训练;
(3)predict:利用这个函数可以导入数据生成神经网络的结果,这个函数也是默认使用GPU,如果没有GPU则自动使用CPU,如果有GPU则不打招呼地使用GPU。

GPU修改为CPU

在使用过程中,我们可能不想用GPU训练,但是程序自动使用了GPU,这就需要我们将GPU修改为CPU,需要进行以下操作:
(1)在options = trainingOptions()函数中添加这样一行代码:

 'ExecutionEnvironment','cpu',...

(2)在predict中添加这样的语句:

out1 = predict(net,pic1,'executionEnvironment','cpu');

至此,我们的程序就可以完全在CPU上训练啦。

CPU修改为GPU

一般来说不需要修改直接就在GPU上运行了,如果需要修改的话,把上面代码中的cpu都改为gpu就可以了。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值