Is there a way to use weights without using gpuArray

I found this code online and was wondering if there is another way to use it without the gpuArray function. I keep recieving this error when I use it and I am not familiar with gpu:
Error using gpuArray
Failed to load graphics driver. Unable to load library 'nvcuda.dll'. The error was:
The specified module could not be found.
Update or reinstall your graphics driver. For more information on GPU support, see GPU Support by Release.
varSize = 21;
conv1 = convolution2dLayer(5,varSize,'Padding',2,'BiasLearnRateFactor',2);
conv1.Weights = gpuArray(single(randn([5 5 3 varSize])*0.0001));
fc1 = fullyConnectedLayer(64,'BiasLearnRateFactor',2);
fc1.Weights = gpuArray(single(randn([64 576])*0.1));
fc2 = fullyConnectedLayer(4,'BiasLearnRateFactor',2);
fc2.Weights = gpuArray(single(randn([4 64])*0.1));
i want to be able to use convulation neural network and be able to use the weights because I know they help the progrma run faster. so my question is: Is there a way to use weights without using gpuArray?
Thank you

4 Comments

What happens if at the beginning of that section of code, you assign
gpuArray = @(x) x;
which makes gpuArray effectively do nothing, as if the call were not there ? That would tell you whether weights can still be used without gpuArray (you might also have to change an option or two to turn off GPU)
yup, that worked, thank you so much for your help!
One more question, I am not sure if you can answer it but do you know how I can correct this error. They are talking about "fc1 = fullyConnectedLayer(576,'BiasLearnRateFactor',2);":
Expected input to be of size 576xM, but it is of size 64x576.
varSize = 21;
gpuArray = @(x) x;
conv1 = convolution2dLayer(5,varSize,'Padding',2,'BiasLearnRateFactor',2);
conv1.Weights = gpuArray(single(randn([5 5 3 varSize])*0.0001));
fc1 = fullyConnectedLayer(576,'BiasLearnRateFactor',2);
fc1.Weights = gpuArray(single(randn([64 576])*0.1));
fc2 = fullyConnectedLayer(4,'BiasLearnRateFactor',2);
fc2.Weights = gpuArray(single(randn([4 64])*0.1));
varSize = 21;
gpuArray = @(x) x;
conv1 = convolution2dLayer(5,varSize,'Padding',2,'BiasLearnRateFactor',2);
conv1.Weights = gpuArray(single(randn([5 5 3 varSize])*0.0001));
fc1 = fullyConnectedLayer(576,'BiasLearnRateFactor',2);
fc1.Weights = gpuArray(single(randn([576, 64])*0.1));
fc2 = fullyConnectedLayer(4,'BiasLearnRateFactor',2);
fc2.Weights = gpuArray(single(randn([4 64])*0.1))
fc2 =
FullyConnectedLayer with properties: Name: '' Hyperparameters InputSize: 64 OutputSize: 4 Learnable Parameters Weights: [4×64 single] Bias: [] Show all properties
fc1
fc1 =
FullyConnectedLayer with properties: Name: '' Hyperparameters InputSize: 64 OutputSize: 576 Learnable Parameters Weights: [576×64 single] Bias: [] Show all properties
fc2
fc2 =
FullyConnectedLayer with properties: Name: '' Hyperparameters InputSize: 64 OutputSize: 4 Learnable Parameters Weights: [4×64 single] Bias: [] Show all properties
It worked! Thank you so much for all your help!

Sign in to comment.

Answers (0)

Tags

Asked:

on 25 Jul 2021

Commented:

on 27 Jul 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!