增量学习是啥东西?基于TensorFlow的简单增量学习实现

9 篇文章 0 订阅
4 篇文章 0 订阅

需求

  1. 流式数据:如果数据不是收集好的一整块,而是流式(非批量数据),我又确实需要一点点学习,而不是数据准备齐全了再学
  2. 优化模型:不想耗时的重头训练,或只想针对别的模型做的差的再挑出来学习一遍(典型的基于SVM的增量学习,先挑出SVM学不好的边界点,再次学习提升)
  3. 现实需求:用户增加、用户删减,不适合数百、数万的用户都重来一遍。运营中修正
  4. 模拟人类:人是渐进式学习的,一天天课堂、业余式时间。模式是一个个知识点,效果未必比学个大纲,整本吃下要差

做法

典型的方式:

Created with Raphaël 2.2.0 开始 取得既有的模型 (结构、参数表等等) 构建新模型, 训练,测试,存储 达到要求 或截止门槛? 结束 yes no

实例

借花献佛:有个可以跑通的一个例子,分三个; 代码可跑
note: line29,config.read(trainning_task_file, encoding = ‘UTF-8’)
原文的未指定编码,用gbk出错,强制为utf-8可借;

 1 模型配置:
link:配置表
 2 模型首次跑动
link:TF首次跑起来
 3 模型再次取得网络结构、权重值,再次训练
link:再次取得神经网络和参数表ckpt并再次训练

核心操作就一个:
line:85-88,原本加图后,init改为 保存点加载模型和参数表后 restore恢复TF-NN神经网络

sess = tf.Session(graph=graph)
sess.run(init)          # Very important

Changed to:

sess = tf.Session(graph=graph)
check_point_path = 'saved_model/' # 保存好模型的文件路径
ckpt = tf.train.get_checkpoint_state(checkpoint_dir=check_point_path)
saver.restore(sess,ckpt.model_checkpoint_path)

说白了,这里所谓“增量学习”还是很粗浅的,就是将一次完整训练打断,中间saver保存现场,下次有了新数据再重新启动训练。
这里并没有涉及到,新小量数据的灌入、训练不好的地方的查漏补缺的“人的智能”的实现的。机器还是比较傻的,需要我辈更努力去改进。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值