fitclinear with tall array that contains images
2 次查看(过去 30 天)
显示 更早的评论
Not sure if anyone has ever tried this since I found 0 trace of this error message on Google.
I am using MATLAB 2018a, trying to train a binary SVM using fitclinear(). My data are RGB images, which I load into a imageDatastore. Then I wrote a custom ReadFn to downsample them and converted from uint8 to float using imresize and im2double, respectively.
Then I created a tall array from the imageDatastore (I also put the labels into a tall array with the same numebr of rows). I reshaped the images from 3-D array to 1-by-154587 vector, which I assume is needed for fitclinear(). So now I have a tall array of n-by-1, n being the number of training images, and each cell is a vector of datatype double. And I also have another tall array of n-by-1 containing the corresponding labels for each training example.
Then I simply called SVMmodel=fitclinear(tallarry1,talllabel);
But I got the following error:
Error using tall/fitclinear (line 305)
Argument 1 to FITCLINEAR must be one of the following data types: float.
Any thought will be appreciated.
HY
0 个评论
回答(1 个)
Divya Gaddipati
2020-10-18
I understand that your input data is a tall array of cells of size n-by-1. Whereas, the input to fitclinear should be specified as an n-by-p full or sparse matrix.
Converting your input data tallarry1 and talllabel to a matrix format would resolve your issue.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Tall Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!