У меня есть набор данных TFrecord. И прочитайте его на tenorflow2.
def _parse_function(example_proto):
# Parse the input `tf.Example` proto using the dictionary above.
feats = tf.io.parse_single_example(example_proto, feature_description)
X = tf.reshape(tf.io.decode_raw(feats['X'], tf.float64),shape=(29,19))
X = tf.cast(X,dtype=tf.float32)
y = feats['label'] # a scalar
label = tf.one_hot(y,8,dtype=tf.float32)
return X,{'health':label,'faulty':XXXXX}#XXXXX is a value referring to y.numpy()
при разборе я хочу преобразовать y, показанный выше, в однокадровое кодирование и двоичную обработку. Я использую tf.one_hot для реализации onehot encoding. Но для бинаризации мне нужно получить значение y, но возникает ошибка: «AttributeError: у объекта Tensor нет атрибута numpy». После просмотра некоторых документов, Я считаю, что атрибут 'numpy' реализован в 'EagerTensor'. Кроме того, в приведенном выше коде тип y имеет тип Tensor, а не EagerTensor. Так что у y нет атрибута 'numpy'.
Есть ли способ заставить его возвращать EagerTensor при синтаксическом анализе tfrecord на tenzorflow2? И есть ли какой-нибудь метод в тензорном потоке, который может легко реализовать бинаризацию.
Большое спасибо.