如何在 Tensorflow 2 中使用 CRF 层(使用 tfa.text)?

     2023-02-16     54

关键词:

【中文标题】如何在 Tensorflow 2 中使用 CRF 层(使用 tfa.text)?【英文标题】:How to use a CRF layer in Tensorflow 2 (using tfa.text)? 【发布时间】:2020-04-03 00:31:54 【问题描述】:
model= Sequential()
model.add(keras.layers.Embedding(vocab_size,output_dim=100,input_length=input_len,weights=[embedding_matrix],trainable=False))
model.add(keras.layers.Bidirectional(keras.layers.LSTM(512, return_sequences=True,recurrent_dropout=0.2, dropout=0.2)))
model.add(keras.layers.Bidirectional(keras.layers.LSTM(512, return_sequences=True,recurrent_dropout=0.2, dropout=0.2)))

model.add(keras.layers.Dense(128, activation="relu"))

model.add(keras.layers.TimeDistributed(keras.layers.Dense(vocab_size_label, activation="softmax")))
model.compile(optimizer=optim,loss='sparse_categorical_crossentropy',metrics=["accuracy"])
model.summary()

我已经为 NER 标记构建了一个 Bi-lstm 模型,现在我想在其中引入 CRF 层。我很困惑如何使用 Tensorflow 插入 CRF 层

tfa.text.crf_log_likelihood(
    inputs,
    tag_indices,
    sequence_lengths,
    transition_params=None
)

我在 tfa.txt 中找到了这个,并且有 3 个关于这个函数的查询: 1. 我如何传递这些论点? 2. 我是否必须在编译器中使用此输出作为损失(log_likelihood 的负数)。 有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

我也在找这个解决方案,我猜你应该创建一个自定义类来包装tfa.text.crf_log_likelihood方法,然后将它集成到keras.Sequence中。

也许像https://github.com/tensorflow/addons/issues/723#issuecomment-559636561

或者更多pytorch风格,比如https://github.com/saiwaiyanyu/bi-lstm-crf-ner-tf2.0/blob/master/model.py

【讨论】:

如何在张量流 keras 中使用 CRF?

】如何在张量流keras中使用CRF?【英文标题】:howtouseCRFintensorflowkeras?【发布时间】:2020-02-1805:45:54【问题描述】:代码是这样的:importtensorflowastffromkeras_contrib.layersimportCRFfromtensorflowimportkerasdefcreate_model(max_seq_len,adapter_size=64):""" 查看详情

tensorflow学习(十四):条件随机场crf(代码片段)

参考:Module:tf.contrib.crf还有一些其他的函数可以到官方文档里面查看和使用.Ⅰtf.contrib.crf.crf_log_likelihoodcrf_log_likelihood(inputs,tag_indices,sequence_lengths,transition_params=None)在一个条件随机场里面计算标签序列的log-likelihood参数:in 查看详情

如何让 Tensorflow Profiler 在 Tensorflow 2.5 中使用“tensorflow-macos”和“tensorflow-metal”工作

】如何让TensorflowProfiler在Tensorflow2.5中使用“tensorflow-macos”和“tensorflow-metal”工作【英文标题】:HowdoIgettheTensorflowProfilerworkinginTensorflow2.5with\'tensorflow-macos\'and\'tensorflow-metal\'【发布时间】:2021-10-0213:47:38【问题描述】:我正在运 查看详情

如何在 tensorflow 2.5 中运行 tensorflow 分析

】如何在tensorflow2.5中运行tensorflow分析【英文标题】:HowdoIruntensorflowprofilingintensorflow2.5【发布时间】:2021-10-0620:43:08【问题描述】:我在BigSur11.5上使用Anaconda运行python3.85%condalisttensor#packagesinenvironmentat/Users/davidlaxer/anaconda3/env 查看详情

如何在 TensorFlow 2.0 中使用 Dataset.window() 方法创建的窗口?

】如何在TensorFlow2.0中使用Dataset.window()方法创建的窗口?【英文标题】:HowtousewindowscreatedbytheDataset.window()methodinTensorFlow2.0?【发布时间】:2019-08-2102:17:54【问题描述】:我正在尝试使用TensorFlow2.0创建一个数据集,该数据集将返回... 查看详情

如何在 tensorflow 2.0.0 中使用 Lazy Adam 优化器

】如何在tensorflow2.0.0中使用LazyAdam优化器【英文标题】:HowtouseLazyAdamoptimizerintensorflow2.0.0【发布时间】:2020-04-3010:59:09【问题描述】:此代码不起作用:tf.contrib有问题model.compile(optimizer=TFOptimizer(tf.contrib.opt.LazyAdamOptimizer()),loss=\'ca... 查看详情

如何在 Tensorflow 2.x Keras 自定义层中使用多个输入?

】如何在Tensorflow2.xKeras自定义层中使用多个输入?【英文标题】:HowtousemultipleinputsinTensorflow2.xKerasCustomLayer?【发布时间】:2020-09-0512:37:11【问题描述】:我正在尝试在Tensorflow-Keras的自定义层中使用多个输入。用法可以是任何东... 查看详情

nlp作业三:用bilstm+crf实现中文命名实体识别(tensorflow入门)代码+报告(代码片段)

...pycharm中如何配置perl?🖤已经安装了pytorch后如何安装TensorFlow?🧡tensorflow中的sess.run💛tensorflow中的Logits💙tensorflow中的Placeholders🧡Dropout的作用1.程序与实验说明实验要求  使用任意一种深度学习框架࿰... 查看详情

如何在 Tensorflow 2.0 中使用 K.get_session 或如何迁移它?

】如何在Tensorflow2.0中使用K.get_session或如何迁移它?【英文标题】:HowtouseK.get_sessioninTensorflow2.0orhowtomigrateit?【发布时间】:2020-02-0322:31:35【问题描述】:def__init__(self,**kwargs):self.__dict__.update(self._defaults)#setupdefaultvaluesself._ 查看详情

在 Keras 中使用 CRF 的 LSTM

...【发布时间】:2018-01-1506:54:59【问题描述】:我不太明白如何结合sklearn_crfsuite和Keras。我必须制作一个经典的LSTM,而不是最后一个Activation,我使用的是sklearn_crfsuite?有人有例子吗?谢谢,【问题讨论】:【参考方案1】:您可... 查看详情

如何在 Tensorflow 2.0 + Keras 中进行并行 GPU 推理?

】如何在Tensorflow2.0+Keras中进行并行GPU推理?【英文标题】:HowtodoparallelGPUinferencinginTensorflow2.0+Keras?【发布时间】:2020-03-1523:49:56【问题描述】:让我们从我刚开始接触TensorFlow和一般深度学习的前提开始。我有使用tf.Model.train()、... 查看详情

在 biLSTM 之上使用 tfa.layers.crf

...布时间】:2021-09-0701:10:50【问题描述】:我正在尝试使用tensorflow-addons库实现基于CRF的NER模型。该模型以单词到索引和字符级格式获取单词序列,并将它们连接起来并将它们提供给BiLSTM层。下面是实现代码:importtensorflowastffromtens... 查看详情

如何在 Tensorflow-2.0 中绘制 tf.keras 模型?

】如何在Tensorflow-2.0中绘制tf.keras模型?【英文标题】:Howtographtf.kerasmodelinTensorflow-2.0?【发布时间】:2019-11-0312:24:22【问题描述】:我升级到Tensorflow2.0,没有tf.summary.FileWriter("tf_graphs",sess.graph)。我正在查看有关此问题的... 查看详情

使用crf++

在example文件夹下存在4个使用crf的实例1.在命令行执行进入路径:./example/seg执行:shexec.sh2.在python中执行进入路径:./python执行:(1)pythonsetup.pybuild    (2)pythonsetup.pyinstall进入python解释器,importCRFPP测试是否安装成功若... 查看详情

如何在 tfds.load() 之后在 TensorFlow 2.0 中应用数据增强

】如何在tfds.load()之后在TensorFlow2.0中应用数据增强【英文标题】:HowtoapplydataaugmentationinTensorFlow2.0aftertfds.load()【发布时间】:2019-08-0401:58:15【问题描述】:我正在关注thisguide。它展示了如何使用tfds.load()方法从新的TensorFlow数据集... 查看详情

如何在 tensorflow 2.0 w/keras 中保存/恢复大型模型?

】如何在tensorflow2.0w/keras中保存/恢复大型模型?【英文标题】:Howtosave/restorelargemodelintensorflow2.0w/keras?【发布时间】:2019-09-1823:12:09【问题描述】:我有一个使用新的tensorflow2.0和混合keras和tensorflow制作的大型自定义模型。我想保... 查看详情

如何在 Google Colab 中使用 TensorFlow 2.0 将 tf.Keras 模型转换为 TPU?

】如何在GoogleColab中使用TensorFlow2.0将tf.Keras模型转换为TPU?【英文标题】:Howtoconverttf.KerasmodeltoTPUusingTensorFlow2.0inGoogleColab?【发布时间】:2019-08-2717:46:41【问题描述】:由于TF2.0没有tf.contrib层,我如何转换我的模型以在TPU上运行... 查看详情

如何在 Google colab 中更改 Keras/tensorflow 版本?

】如何在Googlecolab中更改Keras/tensorflow版本?【英文标题】:HowtochangeKeras/tensorflowversioninGooglecolab?【发布时间】:2019-01-2913:19:52【问题描述】:我在googlecolaboratory上使用keras/tensorflow,我需要回到以前的版本。问题是当我运行!pipinst... 查看详情