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

import keras.backend as K

config = 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 层
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import numpy as np
from gensim.models import Word2Vec model = 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, 用于 padding
embeddings_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 + 1
embeddings_matrix[i + 1] = vocab_list[i][1]

使用方法:

1
2
3
4
5
6
7
8
from keras.layers import Embedding

EMBEDDING_DIM = 100 #词向量维度

embedding_layer = Embedding(len(embeddings_matrix),
EMBEDDING_DIM,
weights=[embeddings_matrix]
trainable=False)
 

BI-LSTM and CRF using Keras的更多相关文章

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

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

  2. NER(BiLSTM+CRF,Keras)

    数据集为玻森命名实体数据. 目前代码流程跑通了,后续再进行优化. 项目地址:https://github.com/cyandn/practice/tree/master/NER 步骤: 数据预处理: ...

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

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

  4. 长短时记忆网络LSTM和条件随机场crf

    LSTM 原理 CRF 原理 给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型.假设输出随机变量构成马尔科夫随机场(概率无向图模型)在标注问题应用中,简化成线性链条件随机场,对数线性判别 ...

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

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

  6. keras实例学习-双向LSTM进行imdb情感分类

    源码:https://github.com/keras-team/keras/blob/master/examples/imdb_bidirectional_lstm.py 及keras中文文档 1. ...

  7. 用Keras搭建神经网络 简单模版(五)——RNN LSTM Regressor 循环神经网络

    # -*- coding: utf-8 -*- import numpy as np np.random.seed(1337) import matplotlib.pyplot as plt from ...

  8. keras 自定义 custom 函数

    转自: https://kexue.fm/archives/4493/,感谢分享! Keras是一个搭积木式的深度学习框架,用它可以很方便且直观地搭建一些常见的深度学习模型.在tensorflow出来 ...

  9. Keras 学习之旅(一)

    软件环境(Windows): Visual Studio Anaconda CUDA MinGW-w64 conda install -c anaconda mingw libpython CNTK ...

随机推荐

  1. E - TOYS

    来源 poj 2318 Calculate the number of toys that land in each bin of a partitioned toy box. Mom and dad ...

  2. 新版谷歌浏览器怎么查找和改变编码格式 IT开发人员谷歌的编码格式

    解决方法在最下面,还有可下载的安装包 今天,无意中在解决一个乱码问题,后台是有过判断解决兼容性问题,但是有个别电脑还是有乱码问题,就去想改变下前台的编码格式,突然发现一向好用的谷歌,居然找不到编码格式 ...

  3. base标签浏览器兼容问题

    <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" ...

  4. MSSQL SQL Server代理 作业 设置(调用存储过程)

    1.新建作业名 “生成分区文件及文件组“ 2.新建  步骤  名 “CreatePartTable” 步骤名:CreatePartTable 类型:Transact-SQL 脚本(T-SQL) 数据库 ...

  5. java虚拟机学习

    //20181129 ·Java虚拟机的内存分为三个部分:栈stack.堆heap.方法区method area----包含在“堆”里面,因为作用特殊所以单独列出来 ·栈的特点:     栈描述的是方 ...

  6. WPF 依赖属性和附加属性

    依赖属性: 依赖属性就是自己没有值,通过Binding从数据源获得值,就是依赖在别人身上,拥有依赖属性的对象称为依赖对象. 依赖属性的值存在哪里? 在WPF运行时,维护了一个全局的Hashtable存 ...

  7. SQL server 清除缓存

    在进行性能分析的时候有时候需要清除缓存以便进行下一次分析. SQL Server提供了一些工具来清除缓存的性能数据.使用下面的语句来完成这些任务. 清除全局缓存使用下面的语句: DBCC DROPCL ...

  8. iOS中UITableView的一些问题思考

    UITableview的数据源为什么是代理,而不是引用? 我的理解,一般情况下控制器会引用tableView, 数据源和代理方法都是tableView的一个若引用,出了“tableView.datas ...

  9. Chap1:基本概念[《区块链中文词典》维京&甲子]

  10. 20165225《Java程序设计》第九周学习总结

    20165225<Java程序设计>第九周学习总结 1.视频与课本中的学习: 第十三章学习总结 URL类 URL对象包含三部分信息:协议.地址和资源 创建URL对象两种方法: public ...