как разобрать tfrecord с помощью. numpy () - PullRequest
0 голосов
/ 13 марта 2020

У меня есть набор данных 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? И есть ли какой-нибудь метод в тензорном потоке, который может легко реализовать бинаризацию.

Большое спасибо.

...