我确实知道可以在将数据加载到网络之前按其标签分离数据。假设有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)
[这是一个虚函数] ,因此我可以根据它们的标签将数据集分为三部分?
答案 0 :(得分:0)
所以最后我选择了用csvs分隔文件,即生成csvs,每个csvs只包含一个类的数据。当类太多时,这可能不是一个完美的解决方案,但就我而言,只有5个类,所以没关系。