问题1:CUDA_ERROR_OUT_OF_MEMORY: How to activate multiple GPUs from Keras in Tensorflow

import keras.backend as Kconfig = K.tf.ConfigProto()
config.gpu_options.allow_growth = True
session = K.tf.Session(config=config)

讀作者的code就能了解數據的格式了。
在process_data.py檔案裡。

稍微解釋一下。

###原始數據###
老 B-PER
王 I-PER
很 O
喜 O
歡 O
中 B-LOC
國 I-LOC
妹 O
子 O

###要丟進LSTM的數據###
X_train應該是長這樣[0, 1, 15, 24, 65, 102, 103, 54, 63]之類的,這裡代表每個字的index。
y_train應該是長這樣 [1, 2, 0, 0, 0, 3, 4, 0, 0]之類的,代表對應到的字的NE。
最後再把每個句子做個padding就能丟進LSTM了。

至於怎麼轉換成數據序列的,就請您自行研究研究process_data.py唄!

 配置显存https://www.jianshu.com/p/99fca5b7fd8a

==================================使用预训练词向量=================================

Keras 模型中使用预训练的词向量

Word2vec,为一群用来产生词嵌入的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。该向量为神经网络之隐藏层。
https://zh.wikipedia.org/wiki/Word2vec

在这篇 在Keras模型中使用预训练的词向量 讲述了如何利用预先训练好的 GloVe 模型,本文基本大同小异。只写一些不同的地方,更想的可以看这篇文章。

总体思路就是给 Embedding 层提供一个 [ word_token : word_vector] 的词典来初始化向量,并且标记为不可训练。

解析 word2vec 模型,其中:

  • word2idx 保存词语和 token 的对应关系,语料库 tokenize 时候需要。
  • embeddings_matrix 存储所有 word2vec 中所有向量的数组,用于初始化模型 Embedding 层
12345678910111213141516
import numpy as npfrom gensim.models import Word2Vecmodel = Word2Vec.load(model_path)word2idx = {"_PAD": 0} # 初始化 `[word : token]` 字典,后期 tokenize 语料库就是用该词典。vocab_list = [(k, model.wv[k]) for k, v in model.wv.vocab.items()]# 存储所有 word2vec 中所有向量的数组,留意其中多一位,词向量全为 0, 用于 paddingembeddings_matrix = np.zeros((len(model.wv.vocab.items()) + 1, model.vector_size))for i in range(len(vocab_list)):word = vocab_list[i][0]word2idx[word] = i + 1embeddings_matrix[i + 1] = vocab_list[i][1]

使用方法:

12345678
from keras.layers import EmbeddingEMBEDDING_DIM = 100 #词向量维度embedding_layer = Embedding(len(embeddings_matrix),EMBEDDING_DIM,weights=[embeddings_matrix]trainable=False)
 

转载于:https://www.cnblogs.com/yjybupt/p/10333831.html

BI-LSTM and CRF using Keras相关推荐

  1. LSTM模型(基于Keras框架)预测特定城市或者区域的太阳光照量实战

    LSTM模型(基于Keras框架)预测特定城市或者区域的太阳光照量实战 LSTM在解决序列预测的问题时非常强大,因为它们能够存储之前的信息. LSTM是一种时间递归神经网络,它出现的原因是为了解决RN ...

  2. TensorFlow (RNN)深度学习 双向LSTM(BiLSTM)+CRF 实现 sequence labeling 序列标注问题 源码下载...

    http://blog.csdn.net/scotfield_msn/article/details/60339415 在TensorFlow (RNN)深度学习下 双向LSTM(BiLSTM)+CR ...

  3. bagging和时间序列预测_时间序列的LSTM模型预测——基于Keras

    一.问题背景     现实生活中,在一系列时间点上观测数据是司空见惯的活动,在农业.商业.气象军事和医疗等研究领域都包含大量的时间序列数据.时间序列的预测指的是基于序列的历史数据,以及可能对结果产生影 ...

  4. End to End Sequence Labeling via Bi-directional LSTM CNNs CRF

    来看看今日头条首席科学家的论文: End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF 使用LSTM方法进行序列标注,完成大规模标 ...

  5. bilstm+crf中文分词_基于LSTM的中文分词模型

    中文分词任务是一个预测序列的经典问题,已知的方法有基于HMM[1]的分词方法.基于CRF[2]的方法和基于LSTM的分词方法. 本文介绍Xinchi Chen等人[3]提出的基于LSTM的分词方法.根 ...

  6. 【keras】rnn中的LSTM

    keras rnn中常见的rnn layer 1. LSTM LSTM内部结构如下, 公式为 inputgate:it=σ(Wixt+Uih(t−1))forgetgate:ft=σ(Wfxt+Ufh ...

  7. 如何理解LSTM后接CRF?

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自 | 知乎 地址 | https://www.zhihu.com/question ...

  8. 【Python】keras使用LSTM拟合曲线

    keras生成的网络结构如下图: 代码如下: from sklearn.preprocessing import MinMaxScaler from keras.models import Seque ...

  9. Keras【Deep Learning With Python】更优模型探索Keras实现LSTM

    文章目录 1.LSTM 网络 2.之前也提到过RNNs取得了不错的成绩,这些成绩很多是基于LSTMs来做的,说明LSTMs适用于大部分的序列场景应用. 3.代码实现 1.LSTM 网络 可以理解为RN ...

最新文章

  1. Linux文件查找Find命令使用解析
  2. [Elasticsearch] 邻近匹配 (二) - 多值字段,邻近程度与相关度
  3. leetcode 725. Split Linked List in Parts | 725. 分隔链表(Java)
  4. 三维重建19:锯齿排序
  5. puppeteer api_使用Node.js和puppeteer API从URL创建PDF文件
  6. Downloading SRA data using command line utilities
  7. MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制
  8. 思维导图形式带你读完《大型网站技术架构》中
  9. 在Python27中运行pip install dlib装载库dlib所引起的问题解决
  10. php批量检测网站状态_PHP实现批量检测网站是否能够正常打开的方法
  11. javascript 倒计时插件
  12. 软件测试面试过程中常见的问题
  13. 创建AWS VPC Peering
  14. 交换机和路由器的基本命令
  15. 【资损】系统迭代过程中的兼容性设计
  16. android免费离线讯飞语音合成
  17. 如何在Mac上解决蓝牙问题
  18. cacheable更新_@Cacheable不会拦截该方法,缓存始终为空
  19. 数据结构(C)必会知识点+易错点:数组和广义表(n维数组地址计算公式,特殊矩阵对称矩阵的存储,广义表的表示方法)
  20. Swift 可选(Optionals)类型讲解

热门文章

  1. 每天一道LeetCode-----寻找地增序列中第一个大于等于目标元素的位置
  2. Qt学习笔记-----QListWidget,QTableWidget和QTreeWidget
  3. 数据结构-----最大堆的实现
  4. MFC改变static text颜色
  5. javaweb的struts2的分页查询操作
  6. 优先级反转和解决方法
  7. Codeforces Round #547 (Div. 3)
  8. 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)
  9. VSCode的连Linux远程开发碰到的坑解决
  10. 选择排序(C++版)