categorical conversion to integer

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

1 Stimme

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

1 Stimme

create an ordinal categorical with valueset 0 and 1. Afterwards you can int8() the labels

1 Kommentar

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

1 Stimme

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 Hilfe-Center und File Exchange

Produkte

Version

R2017b

Gefragt:

am 27 Apr. 2023

Kommentiert:

am 28 Apr. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by