CNTK преобразует индексы меток в представление вектора с одним горячим вызовом

Каков способ CNTK для преобразования вектора, содержащего метки в качестве индексов (просто обычный вектор, а не разреженное представление), в одно горячее представление? Вот пример для 5 классов:

Вход

[2, 0, 1, 1]

Желаемый результат:

[[0,0,1,0,0],
[1,0,0,0,0],
[0,1,0,0,0],
[0,1,0,0,0]]

Есть ли способ без использования Python/numpy?


person pkranen    schedule 20.03.2017    source источник
comment
Что вы думаете о способе CNTK...? Вы имеете в виду: какая внутренняя функция CNTK выполняет преобразование, потому что вы не хотите делать Python?   -  person Anton Schwaighofer    schedule 20.03.2017


Ответы (1)


Вот как это сделать с one_hot (при условии, что у вас есть партия из 4 этикеток):

>>> x0 = np.array([2, 0, 1, 1]).reshape(4,1)
>>> x = C.input_variable(1)
>>> y = C.one_hot(x, 5, sparse_output=False)
>>> y(x0)
array([[[ 0.,  0.,  1.,  0.,  0.]],

       [[ 1.,  0.,  0.,  0.,  0.]],

       [[ 0.,  1.,  0.,  0.,  0.]],

       [[ 0.,  1.,  0.,  0.,  0.]]], dtype=float32)
person Nikos Karampatziakis    schedule 14.09.2017