海知智能实习总结

本文是作者在上海海知智能实习期间的总结,主要涉及机器学习、深度学习、NLP的实战应用。实习期间学习了tensor2tensor框架,包括CNN、RNN等模型,以及TensorFlow模型的存储和加载。还探讨了Python并发、Linux及Vim命令,以及代码规范。
摘要由CSDN通过智能技术生成

暑期在上海海知智能公司实习两个月,算法岗位,主要工作内容机器学习、深度学习、自然语言处理(NLP)。工程项目和科学研究很不相同,主要是算法的落地之前项目经验较少,本次实习收获颇丰,学习过程中也是参考多个博客和网上资料,写个总结记录一下。



算法

涉及到的除了数据预处理和特征提取,主要算法有:

  • nlp相关算法
    • 命名实体识别:lstm+crf并结合中文分析,seq2seq等;
    • 文本分类: tf-idf,word2vec, fasttext等方法
  • 机器学习相关
    svm, 决策树,xgboost等方法。

tensor2tensor框架学习

tensor2tensor 包含现有的深度学习模型CNN、RNN、LSTM等,NLP的相关模型seq2seq、seq2class(eg. semantic analysis)、 Language Modeling等,以及image和语音识别相关的模型。

tensor2tensor对问题进行了分解主要包含三部分

  • Problem: 问题定义了数据集和task在训练过程中的超参数。可以使用框架定义好的问题,也可以自定义问题,自定义问题必须注册才能使用@registry.register_problem
  • Dataset: 数据会用tensorflow.Example标准化为统一的TFRecord文件。所有的数据集都必须register ,并且通过data generator生成数据。
  • Model:模型定义了tensor-to-tensor的转换,这个过程是与输入输出是独立的。同样的模型也必须注册@registry.register_model,定义自己的模型一般继承自T2Tmodel,定义在t2t_model.py

添加自己的数据集,须重新定义Problem。Walkthrough


tensorflow 笔记

1. 模型存储和加载

模型存储和加载主要是saver

saver = tf.train.Saver()
#save
saver.save(session_to_save, save_path)
# restore
saver.restore(session_restored_to, path_restored_from)

模型保存四个文件:参考

  • checkpoint 文本文件,纪录最新的checkpoint文件以及其它checkpoint文件列表。
  • 二进制文件,保存模型中的变量参数(权重)信息:weights, biases, gradients等变量。
    • model.ckpt.index 当前参数名
    • model.ckpt.data-00000-of-00001 当前参数值
  • model.ckpt.meta 二进制文件,保存模型的计算图结构信息(模型的网络结构:变量,operation,集合等)
只加载参数,不加载图结构

参数保存的是Variable变量的值,其它参数(例如batch_size等),在restore时可能希望修改,但是图结构在train时一般就已经确定了。所以,我们可以使用 tf.Graph().as_default()新建一个默认图,从而利用这个新图修改和变量无关的参数值大小。

with tf.Session() as sess:
    saver = tf.train.Saver()
    # check point
    ckpt = tf.train.get_checkpoint_sate('./model')
    if ckpt and ckpt.model_checkpoint_path:
        saver.restore(sess, './model/model.ckpt-0')

2. 同时加载多个模型

tf.Session()可以通过graph参数指定session运行在哪个graph上。通过tensorflow.Graph().as_default()指定session所用的图。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值