在为神经网络训练准备训练集时,我找到了两种可能的方法。
public List<Car> SearchCar(DateTime pickdate, DateTime dropdate)
{
using (var db = new CarRentalDBEntities())
{
return db.Cars.Where(item => item.Orders.All(e =>
// where order pickup date is less Pick or greater than drop
(e.PickUpDateTime < pickdate || e.PickUpDateTime > dropdate) &&
// where order Drop date is less Pick or greater than drop
(e.DropDataTime < pickdate || e.DropDataTime > dropdate)))
.ToList();
}
}
,可以对单个图像进行规范化。我想知道哪种方式更合适?
答案 0 :(得分:1)
这两种方式都是可能的,选择主要取决于您阅读数据的方式。
当您可以将整个数据集一次加载到numpy数组中时,整个训练集规范化很方便。例如,MNIST dataset通常完全加载到内存中。这种方式在收敛方面也是优选的,当单个图像变化很大时:两个训练图像,一个主要是白色而另一个大多是黑色,将有非常不同的手段。
每个图像标准化在逐个或小批量加载图像时很方便,例如从TFRecord加载。当数据集太大而太适合内存时,它也是唯一可行的选项。在这种情况下,组织input pipeline in tensorflow并转换图像张量更好,就像图中的其他张量一样。我已经看到CIFAR-10中这种标准化的准确性非常好,所以尽管有前面提到的问题,但这是一种可行的方法。另请注意,您可以通过batch normalization减少负面影响。