为了在调节网络参数(比如训练的轮数)的同时对网络进行评估,你可以将数据划分为训练集和验证集。但由于数据点很少,验证集会非常小(比如大约100 个样本)。因此,验证分数可能会有很大波动,这取决于你所选择的验证集和训练集。也就是说,验证集的划分方式可能会造成验证分数上有很大的方差,这样就无法对模型进行可靠的评估。
    在这种情况下,最佳做法是使用 K 折交叉验证。这种方法将可用数据划分为 K个分区(K 通常取 4 或 5),实例化 K 个相同的模型,将每个模型在 K-1 个分区上训练,并在剩下的一个分区上进行评估。模型的验证分数等于 K 个验证分数的平均值。 

一个可能的程序示例:

k = 4 #划分成k块
num_validation_samples = len(data) // k
np.random.shuffle(data)
validation_scores = []
for fold in range(k):
  validation_data = data[num_validation_samples * fold : num_validation_samples * (fold + 1)]
  training_data = data[:num_validation_samples * fold] + data[num_validation_samples * (fold + 1):]
model = get_model()
model.train(training_data)
validation_score = model.evaluate(validation_data)
validation_scores.append(validation_score)
validation_score = np.average(validation_scores)
model = get_model()
model.train(data)
test_score = model.evaluate(test_data)

最新文章

  1. Python【2】-列表和元组
  2. ubuntu 14.4 中文语言包安装问题
  3. java中对象的初始化过程
  4. 记一次在Eclipse中用Axis生成webservice服务端的过程中出现的问题
  5. jquery中获取当前点击对象
  6. POJ3009 Curling 2.0(DFS)
  7. Android通过HTTP协议实现上传文件数据
  8. angularjs 选项卡tab切换(移动端用户订单状态)
  9. .Net 异步方法, await async 使用
  10. SpriteKit中的共享动作(Sharing Actions)
  11. 1.3 History of Android Plug-in Programing
  12. ELK原理与简介
  13. python 列表 元组 字典 集合
  14. 练习UML类图中的类的表示
  15. 25. Reverse Nodes in k-Group (JAVA)
  16. 根据指定条件使CheckBox 无法选中
  17. poj 2559(栈的应用)
  18. JS脚本计算从某日凌晨开始,经过了多长时间
  19. 堆排序,图解,C/C++实现
  20. IntellJ IDEA2017 springboot2.0.2中读取配置

热门文章

  1. python初识-环境搭建,变量,条件,循环语句
  2. AJAX入门介绍
  3. wdCP v3.3.8apache阿里云ssl证书实现智慧软文http转换https的详细操作教程
  4. 基于VMware Workstation下Windows server的搭建
  5. MySQL必知必会(正则表达式)
  6. [TimLinux] JavaScript 阻止父节点接收子节点事件的方法
  7. SpringBoot中JdbcTemplate
  8. 【Web技术】334- yarn、npm、cnpm 三者如何优雅的在一起使用 ?
  9. python学习-tuple
  10. 延迟队列DelayQueue take() 源码分析