精华内容
下载资源
问答
  • bert4keras Our light reimplement of bert for keras 更清晰、更轻量级的kerasbert 个人博客:https://kexue.fm/ 在线文档:http://bert4keras.spaces.ac.cn/ (还在构建中) 说明 这是笔者重新实现的keras版...
  • 安装是在虚拟环境中直接使用pip3 install bert4keras 解决措施:source ~/.bash_profile ImportError: No module named 通用解决方法 https://blog.csdn.net/jdbc/article/details/80351833 码住,需要复习...

    安装是在虚拟环境中直接使用pip3 install bert4keras

    解决措施:使用pip install bert4keras

    需要注意的是虚拟环境创建之后需要注意pip和conda安装https://www.cnblogs.com/zhangxingcomeon/p/13801554.html

    ImportError: No module named 通用解决方法 

    https://blog.csdn.net/jdbc/article/details/80351833

    码住,需要复习source, ~/.bashrc, ~/.bash_profile详解

    https://blog.csdn.net/xyqzki/article/details/41832875

    展开全文
  • keras_bert 是Cyberzhg 封装的KerasBert,...kert4keras 是苏剑林参考 keras-bert 重新编写的kerasbert,可适配 albert 快速安装:pip install git+https://www.github.com/bojone/bert4keras.git 安装稳定版

    keras_bert 是Cyberzhg 封装的Keras版Bert,可以直接调用官方发布的预训练权重。

    pip install keras_bert

    github:https://github.com/CyberZHG/keras-bert

    kert4keras 是苏剑林参考 keras-bert 重新编写的keras 版 bert,可适配 albert

    快速安装:pip install git+https://www.github.com/bojone/bert4keras.git

    安装稳定版:pip install bert4keras

    安装最新版:github:https://github.com/bojone/bert4keras

    bert4keras支持Albert

    为了获得最好的体验,建议使用Tensorflow 1.14 + Keras 2.3.1组合。

    关于环境组合
    • 支持tf+keras和tf+tf.keras,后者需要提前传入环境变量TF_KERAS=1。

    • 当使用tf+keras时,建议2.2.4 <= keras <= 2.3.1,以及 1.14 <= tf <= 2.2,不能使用tf 2.3+。

    • keras 2.4+可以用,但事实上keras 2.4.x基本上已经完全等价于tf.keras了,因此如果你要用keras 2.4+,倒不如直接用tf.keras。

    在 keras-bert 里面,使用 Tokenizer 将文本拆分成字并生成相应的id。

    需要提供字典,存放 token 和 id 的映射,字典里还有 BERT 里特别的 token。

    如果拆分的中文不存在字典中使用UNK代替,如果是英文则拆分成字母。

    参考:

    https://www.cnblogs.com/dogecheng/p/11617940.html(keras_bert, bert4keras使用)

    https://www.cnblogs.com/dogecheng/p/11824494.html(bert 情感分析)

    展开全文
  • bert4keras模型转onnx

    2021-07-20 16:05:43
    bert4keras模型转onnx https://kexue.fm/archives/8454 #! -*- coding: utf-8 -*- import os os.environ['TF_KERAS'] = '1' from bert4keras.backend import keras from bert4keras.models import build_transformer...

    bert4keras模型转onnx

    https://kexue.fm/archives/8454

    #! -*- coding: utf-8 -*-
    import os
    os.environ['TF_KERAS'] = '1'
    from bert4keras.backend import keras
    from bert4keras.models import build_transformer_model
    from bert4keras.tokenizers import Tokenizer
    
    '''
    生成saved-model的时候
    bert4keras==0.10.6
    keras==2.3.1
    tensorflow-gpu==1.15.4
    tensorflow-hub==0.12.0
    h5py==2.10.0
    '''
    '''
    生成后将saved-model转onnx,我是直接pip install tensorflow==2.5.0
    建议创建一个新环境
    bert4keras==0.10.6
    keras==2.3.1
    tensorflow==2.5.0
    h5py==3.1.0
    keras-nightly==2.5.0.dev2021032900
    tensorflow-estimator==2.5.0
    tf2onnx==1.9.1
    onnx==1.9.0
    onnxruntime==1.8.0
    然后
    # python -m tf2onnx.convert --saved-model encoder_model_tf --output encoder_simbert.onnx --opset 13
    # python -m tf2onnx.convert --saved-model generate_model_tf --output generate_simbert.onnx --opset 13
    '''
    
    os.environ["CUDA_VISIBLE_DEVICES"] = "0"
    
    # 基本信息
    maxlen = 128
    
    # 模型配置
    model_file = 'chinese_roformer-sim-char_L-12_H-768_A-12'
    config_path = '{}/bert_config.json'.format(model_file)
    # checkpoint_path = '{}/bert_model.ckpt'.format(model_file)
    checkpoint_path = None
    dict_path = '{}/vocab.txt'.format(model_file)
    
    # 建立分词器
    tokenizer = Tokenizer(dict_path, do_lower_case=True)
    
    roformer = build_transformer_model(
        config_path,
        checkpoint_path,
        model='roformer',
        application='unilm',
        with_pool='linear'
    )
    # 可以加载自己训练后的模型
    output_best_model = 'model_path/best_model.weights'
    if checkpoint_path is None:
        roformer.load_weights(output_best_model)
    
    # 向量生成模型
    # encoder = keras.models.Model(roformer.inputs, roformer.outputs[0])
    # encoder.save('model_path/encoder_model_tf', save_format='tf')
    
    # 解码器模型
    seq2seq = keras.models.Model(roformer.inputs, roformer.outputs[1])
    outputs = [
        keras.layers.Lambda(lambda x: x[:, -1])(output)
        for output in seq2seq.outputs
    ]
    generate_model = keras.models.Model(seq2seq.inputs, outputs)
    generate_model.save('model_path/generate_model_tf', save_format='tf')
    
    # import keras2onnx
    # onnx_model = keras2onnx.convert_keras(encoder)
    # keras2onnx.save_model(onnx_model, 'bert-sim.onnx')
    
    

    得到 saved_model 后再转onnx

    '''
    经过验证这个时候需要tensorflow==2.5.0  
    安装pip install tensorflow==2.5.0  
    '''
    python -m tf2onnx.convert --saved-model encoder_model_tf --output simbert.onnx --opset 13
    
    # 预测的时候还是用的tensorflow-gpu==1.15.4
    如果是在一个环境里面操作,这里装两个tensorflow后再用bert4keras可能会出现问题,
    uninstall tensorflow 后再install; h5py的版本也要注意。
    pip uninstall keras-nightly
    pip uninstall tensorflow
    pip uninstall -y tensorflow-gpu
    pip install keras==2.3.1
    pip install tensorflow-gpu==1.15.4
    pip install h5py==2.10.0
    --opset 10 也是能保存成功,但是预测的时候出错了。
    

    用Netron查看simbert.onnx模型,

    INPUTS
    name: Input-Segment
    type: float32[unk__3503,unk__3504]

    name: Input-Token
    type: float32[unk__3505,unk__3506]

    import onnxruntime
    import numpy as np
    from model_path import tokenization
    from model_path.bert_input_process import *
    
    class SimBertONNX:
        def __init__(self, weights, max_seg_len=128, vocab_file='chinese_roformer-sim-char_L-12_H-768_A-12/vocab.txt'):
            self.sess = onnxruntime.InferenceSession(weights)
            self.max_seg_len = max_seg_len
            self.tokenizer = tokenization.FullTokenizer(vocab_file=vocab_file, do_lower_case=True)
    
        def predict(self, sent):
            feature = format_ner_input(sent, max_seq_length=self.max_seg_len, tokenizer=self.tokenizer)
            token = [i for i in feature['input_ids'][0] if i != 0]
            input_dict = {'Input-Token': [token],  "Input-Segment": [[0]*len(token)]}
            # {'Input-Token': [[101, 4636, 1668, 4686, 6994, 102]], 'Input-Segment': [[0, 0, 0, 0, 0, 0]]}
            result = self.sess.run(None, input_dict)[0][0]
            return result
    
    
    pb_path = "model_path/simbert13.onnx"
    simbert = SimBertONNX(pb_path)
    print(simbert.predict('科学空间'))
    [-1.11289009e-01 -5.35200179e-01  1.08341195e-01 -1.98119685e-01
     -5.59085608e-02  4.03575003e-01  1.67680249e-01 -2.41547719e-01
      4.21358049e-01 -2.02915221e-01 -1.85670257e-01 -2.22553447e-01
    ...
    

    感谢科学空间的分享

    展开全文
  • 安装bert4keras pip install bert4keras 升级tensorflow addons版本 pip install tensorflow-addons==0.11.2 使用colaboratory时 linux文件位置 /usr/local/lib/python3.6/dist-packages/bert4keras/backend.py ...

    安装bert4keras

    pip install bert4keras

    升级tensorflow addons版本

    pip install tensorflow-addons==0.11.2

    使用colaboratory时 linux文件位置 /usr/local/lib/python3.6/dist-packages/bert4keras/backend.py 中的TF_KERAS后面的0改成1

     

    展开全文
  • bert4keras快速使用以及对抗训练

    千次阅读 2020-08-18 22:11:40
    bert4keras快速上手2.对抗训练 1. bert4keras快速上手 下面是一个调用bert base模型来编码句子的简单例子: from bert4keras.models import build_transformer_model from bert4keras.tokenizers import Tokenizer ...
  • bert4keras Our light reimplement of bert for keras 更清晰、更轻量级的kerasbert 个人博客: 在线文档: (还在构建中) 说明 这是笔者重新实现的keras版的transformer模型库,致力于用尽可能清爽的代码来实现...
  • 【NLP】bert4keras源码及矩阵计算解析 这里写目录标题【NLP】bert4keras源码及矩阵计算解析前言源码重要性Bert4keras框架Transformer类算法实现(以Bert为例) 前言 bert4keras是苏剑林通过keras封装Bert,可以更...
  • bert4keras 测试代码可用性: 提取特征

    千次阅读 2020-04-27 14:22:31
    bert4keras #! -*- coding: utf-8 -*- # 测试代码可用性: 提取特征 from bert4keras.backend import keras from bert4keras.models import build_transformer_model from bert4keras.tokenizers import Tokenizer ...
  • bert4keras 分词器 Tokenizer from bert4keras.models import build_transformer_model from bert4keras.tokenizers import Tokenizer import numpy as np config_path = '/Users/lonng/Desktop/v+/xl/chinese_L-...
  • bert4keras.zip

    2020-06-21 17:22:14
    简洁优雅的实现和调用bert方式,十行代码
  • 使用苏神的bert4keras,预训练后产生了多个文件,但是在训练加载预训练模型的时候出错Key bert/embeddings/word_embeddings not found in checkpoint (1)pretrain.py文件 # 预训练脚本 import os os.environ['TF_...
  • 本文主要介绍使用Prompt的MLM文本分类 bert4keras的代码实现,用以丰富bert4keras框架的例子 关于prompt的原理的文章网上有很多优秀的文章可以自行百度。 github地址 hgliyuhao/Prompt4Classification (github.com...
  • bert4keras.__version__ = 0.10.0 如何定位tokenizer后的实体位置? frombert4keras.tokenizersimportTokenizer dict_path= 'D:/Ai/model/electra-small/vocab.txt' tokenizer=Tokenizer(dict_path,do_lower_...
  • bert4keras中的预训练代码如下: if model == 'roberta': print('situation roberta') import jieba_fast as jieba jieba.initialize() def word_segment(text): return jieba.lcut(text) TD = ...
  • <p>kashgari和bert4keras同时安装的话一个keras要是小于2.3.1,一个又要2.4.3,有没有大佬知道怎么解决的</p>
  • 使用bert4keras 报错解决:DataLossError: Unable to open table file Data loss: not an sstable (bad magic number): 报错:tensorflow.python.framework.errors_impl.NotFoundError: Unsuccessful ...
  • 3、run_lcqmc_similarity.py 基于bert4keras实现的文本相似度计算 原文链接: 4、run_kashgari_classifier.py 基于kashgari实现的文本分类 原文链接: 5、run_ChineseDailyNerCorpus.py 基于kashgari + bert/albert...
  • BERT4KERAS简单使用

    2021-10-11 10:53:21
    bert4keras的简单使用 - 知乎
  • 1、bert4keras bert模型微调再训练保存 参考:https://github.com/bojone/oppo-text-match/issues/5 ## build_transformer_model为自定义bert模型层, keras.models.Model为创建整体keras模型 bert = build_...
  • bert4keras实现 span-level NER

    千次阅读 热门讨论 2021-01-26 14:31:22
    bert4keras实现 span-level NER 什么是span-level NER span-level NER 是一种应对嵌套实体任务的方法,基于片段排列的方式,提取所有可能的片段排列,通过SoftMax对每一个Span进行实体类型判断,将原来的序列...
  • 背景: 目标:快速上手实现一个基于BERT和CRF...1,为什么要用BERT,什么是bert4keras工具包? BERT最近几年大火,因为提供了高效的预训练方法。许多NLP任务上取得了非常好的效果。 但是现在的BERT并不是很好使用,...
  • 本文将提供bert4keras的实现 本文的代码地址https://github.com/hgliyuhao/LIC2021_EE_baseline 可以参考的其他baseline 关系抽取官方baseline:https://aistudio.baidu.com/aistudio/projectdetail/1639963 ...
  • 今年出了中文版我还是不会用,这里用的是苏总的bert4keras去跑mT5,一些对于T5的理解会慢慢加上,前面先以跑通为主。 二、环境 物理机: Ubuntu18.04、RTX2080(8G)、NVIDIA-DRIVER=440.95.01、Anaconda3 ...
  • bert语言模型+字音字形相似度 correction_basic.py 缺点: 不能解决多字,少字问题 MLM correction_mlm.py 利用bert的MLM训练机制实现纠错功能 输入: [CLS]错误句子[SEP][MASK][MASK]…[MASK][SEP] 输出: 正确句子 seq...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,726
精华内容 1,090
关键字:

bert4keras