Tensorflow-是否可以通过标签分隔tf.data.Dataset?

时间:2018-09-12 10:02:48

标签: python tensorflow tensorflow-datasets

我确实知道可以在将数据加载到网络之前按其标签分离数据。假设有3个类别,标签分别为0,1,2。我可以这样:

public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        var holderType = bindingContext.ModelMetadata.ContainerType;
        if (bindingContext.ModelMetadata.PropertyName != null)
        {
            var property = holderType.GetProperty(bindingContext.ModelMetadata.PropertyName);
            var displayFormat = string.Empty;
            displayFormat = "dd/MM/yyyy";

            var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);

            if (!string.IsNullOrEmpty(displayFormat) && value != null)
            {
                DateTime date;
                displayFormat = displayFormat.Replace("{0:", string.Empty).Replace("}", string.Empty);
                // use the format specified in the DisplayFormat attribute to parse the date
                if (DateTime.TryParseExact(value.AttemptedValue, displayFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
                {
                    return date;
                }
                else
                {
                    bindingContext.ModelState.AddModelError(
                        bindingContext.ModelName,
                        string.Format("{0} is an invalid date format", value.AttemptedValue)
                    );
                }
            }
        }


        return base.BindModel(controllerContext, bindingContext);
    }

我只是对以下几点感到好奇:

假设我们有数据集:

dataset1 = tf.data.TextLineDataset(train_csv_file1).map(_parse_csv_train)
dataset2 = tf.data.TextLineDataset(train_csv_file2).map(_parse_csv_train)
dataset3 = tf.data.TextLineDataset(train_csv_file3).map(_parse_csv_train)

包含来自3个类别的所有数据,

有没有办法调用某些函数,例如 dataset = tf.data.TextLineDataset(train_csv_file).map(_parse_csv_train) [这是一个虚函数] ,因此我可以根据它们的标签将数据集分为三部分?

1 个答案:

答案 0 :(得分:0)

所以最后我选择了用csvs分隔文件,即生成csvs,每个csvs只包含一个类的数据。当类太多时,这可能不是一个完美的解决方案,但就我而言,只有5个类,所以没关系。