tf.one_hot()
принимает аргумент, depth
, в качестве его секунды, который определяет, как долго должен быть вектор с одной горячей точкой. Если вы запустите свою операцию так:
b = tf.one_hot( a, 47 )
это должно дать вам последнее измерение 47.
Трудно сказать без кода, но некоторые люди не кодируют размер one_hot жестко, а пытаются получить его из тензора метки, например,
max_class = tf.reduce_max( a )
b = tf.one_hot( a, max_class )
Если это так в вашем коде, то, возможно, партия пошла только до класса 20.
В противном случае необходимо увидеть ваш код, чтобы что-то сказать.
Если TensorFlow не хватает памяти, он остановится с ошибкой, а не просто тихо откусит половину ваших данных. :)