categorical conversion to integer

2 Ansichten (letzte 30 Tage)
tren
tren am 27 Apr. 2023
Kommentiert: Walter Roberson am 28 Apr. 2023
I have trained a neural network with two classes (0 and 1)
When i input an image of size 256x256 as:
y=classify(net,input)
the output y is categorica (either 0 or 1)l.
When I type cast it int 8
y=cast(y,'int'8)
I ger wrong values. I need values as it is classified by classifier in categorical form (0 as 0, 1 as 1).
Any suggestion?
Thanks

Antworten (3)

Star Strider
Star Strider am 27 Apr. 2023
Perhaps something like this —
y = categorical([0 1])
y = 1×2 categorical array
0 1
y = cellfun(@str2double,categories(y))
y = 2×1
0 1
y = int8(y)
y = 2×1
0 1
.

Walter Roberson
Walter Roberson am 27 Apr. 2023
Bearbeitet: Walter Roberson am 28 Apr. 2023
create an ordinal categorical with valueset 0 and 1. Afterwards you can int8() the labels
  1 Kommentar
Walter Roberson
Walter Roberson am 28 Apr. 2023
uint8() gives back the class number. If you ordered them then you can work on them mathematically.
y = categorical(randi([0 1], 10, 1), [0 1], ["0", "1"])
y = 10×1 categorical array
1 0 1 0 0 1 1 0 0 0
uint8(y) - 1
ans = 10×1
1 0 1 0 0 1 1 0 0 0

Melden Sie sich an, um zu kommentieren.


Stephen23
Stephen23 am 27 Apr. 2023
M = categorical([0,1;1,0])
M = 2×2 categorical array
0 1 1 0
X = double(M);
Y = int8(str2double(categories(M)));
Z = Y(X)
Z = 2×2
0 1 1 0

Kategorien

Mehr zu Deep Learning Toolbox finden Sie in Help Center und File Exchange

Produkte


Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by