【问题标题】:How to get the labels from tensorflow dataset如何从张量流数据集中获取标签
【发布时间】:2020-12-28 06:05:10
【问题描述】:
ds_test = tf.data.experimental.make_csv_dataset(
    file_pattern = "./dfj_test/part-*.csv.gz",
    batch_size=batch_size, num_epochs=1, 
    #column_names=use_cols, 
    label_name='label_id',
    #select_columns= select_cols,
    num_parallel_reads=30, compression_type='GZIP',
    shuffle_buffer_size=12800)

这是我在训练期间的测试集。完成模型后,我想压缩 df_test 的预测和标签列。

preds = model.predict(df_test)

获取预测非常简单,它是 numpy 数组格式。但是,我不知道如何从 df_test 中获取相应的标签。 我想压缩(preds,labels)以进行进一步分析。 有什么提示吗?谢谢。

(tf 版本 2.3.1)

【问题讨论】:

    标签: tensorflow tensorflow2.0


    【解决方案1】:

    您可以映射每个示例以返回您想要的字段

    # load some exemplary data
    TRAIN_DATA_URL = "https://storage.googleapis.com/tf-datasets/titanic/train.csv"
    train_file_path = tf.keras.utils.get_file("train.csv", TRAIN_DATA_URL)
    dataset = tf.data.experimental.make_csv_dataset(train_file_path, batch_size=100, num_epochs=1) 
    
    # get field by unbatching 
    labels_iterator= dataset.unbatch().map(lambda x: x['survived']).as_numpy_iterator()
    labels = np.array(list(labels_iterator))
    
    # get field by concatenating batches
    labels_iterator= dataset.map(lambda x: x['survived']).as_numpy_iterator()
    labels = np.concatenate(list(labels_iterator))
    

    【讨论】:

    • unbatch() 选项有效。谢谢。顺便问一下,你知道有什么方法可以有效地计算数据集的所有样本吗?
    • for num, _ in enumerate(ds_train): pass.
    猜你喜欢
    • 1970-01-01
    • 2018-09-29
    • 2021-12-10
    • 2022-08-27
    • 1970-01-01
    • 2017-11-02
    • 2019-03-28
    • 2020-05-10
    • 1970-01-01
    相关资源
    最近更新 更多