检查语言模型的困惑度

2024-06-24

我使用 Keras LSTM 创建了一个语言模型,现在我想评估它是否良好,因此我想计算困惑度。

在 Python 中计算模型的困惑度的最佳方法是什么?


我已经提出了两个版本并附上了相应的来源,请随时查看链接。

def perplexity_raw(y_true, y_pred):
    """
    The perplexity metric. Why isn't this part of Keras yet?!
    https://stackoverflow.com/questions/41881308/how-to-calculate-perplexity-of-rnn-in-tensorflow
    https://github.com/keras-team/keras/issues/8267
    """
#     cross_entropy = K.sparse_categorical_crossentropy(y_true, y_pred)
    cross_entropy = K.cast(K.equal(K.max(y_true, axis=-1),
                          K.cast(K.argmax(y_pred, axis=-1), K.floatx())),
                  K.floatx())
    perplexity = K.exp(cross_entropy)
    return perplexity

def perplexity(y_true, y_pred):
    """
    The perplexity metric. Why isn't this part of Keras yet?!
    https://stackoverflow.com/questions/41881308/how-to-calculate-perplexity-of-rnn-in-tensorflow
    https://github.com/keras-team/keras/issues/8267
    """
    cross_entropy = K.sparse_categorical_crossentropy(y_true, y_pred)
    perplexity = K.exp(cross_entropy)
    return perplexity
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查语言模型的困惑度 的相关文章

  • 如何使用WordNet或与wordnet相关的类别来实现基于类别的文本标记?

    如何使用wordnet按单词类别标记文本 java作为接口 Example 考虑以下句子 1 计算机需要键盘 显示器 CPU才能工作 2 汽车使用齿轮和离合器 现在我的目标是 例句必须标记为 第 1 句话 电脑 电子键盘 电子中央处理器 电
  • 使用 NLTK 生成字典以将推文分类为预定义类别

    我有一个 Twitter 用户 screen names 列表 我需要根据他们的兴趣领域将他们分为 7 个预定义类别 教育 艺术 体育 商业 政治 汽车 技术 我用 Python 提取了用户的最后 100 条推文 并在清理推文后为每个用户创
  • 如何使用 Keras 中的 Conv2D 在 5D 张量的最后三个维度上应用卷积?

    通常的输入张量Conv2DKeras 中是一个 4D 张量 其维度为batch size n n channel size 现在我有一个 5D 张量 其尺寸为batch size N n n channel size我想对中的每个 i 应用
  • Keras:加载多个模型并在不同线程中进行预测

    我正在使用带有张量流核心的 Keras 我想在构造函数中加载 2 个不同的模型 然后在不同的线程中进行预测 根据请求 我尝试在张量流图上下文中加载这些模型 但它不起作用 我的代码 from keras models import load
  • 为什么 scikit learn 的平均精度分数返回 nan?

    我的 Keras 模型旨在接收两个输入时间序列 将它们连接起来 通过 LSTM 提供它们 并在下一个时间步骤中进行多标签预测 有 50 个训练样本 每个样本有 24 个时间步 每个样本有 5625 个标签 有 12 个验证样本 每个样本有
  • Tensorboard 和 Dropout 层

    我有一个非常基本的查询 我制作了 4 个几乎相同 差异在于输入形状 的 CNN 并在连接到全连接层的前馈网络时合并了它们 几乎相同的 CNN 的代码 model3 Sequential model3 add Convolution2D 32
  • 有人可以简单解释一下自然语言处理的要素吗?

    我是自然语言处理的新手 对所使用的术语感到困惑 什么是代币化 POS 标签 实体识别 标记化只是将文本分割成可以有意义的部分或为这些部分赋予含义 以及含义 当我确定某物是名词 动词或形容词时 它的名字是什么 如果我想分为日期 姓名 货币呢
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • Pytorch LSTM:计算交叉熵损失的目标维度

    我一直在尝试在 Pytorch 中使用 LSTM LSTM 后跟自定义模型中的线性层 但在计算损失时出现以下错误 Assertion cur target gt 0 cur target lt n classes failed 我用以下函数
  • 如何从 R keras 中的类似生成器的数据中评估()和预测()

    我有以下代码 数据集可以下载here https www dropbox com s qjt5o31oyqj10m8 data tar gz dl 0 or here https www kaggle com c dogs vs cats
  • python nltk从句子中提取关键字

    我们要做的第一件事 就是杀掉所有律师 威廉 莎士比亚 鉴于上面的引用 我想退出 kill and lawyers 作为两个突出的关键词来描述句子的整体含义 我提取了以下名词 动词 POS 标签 First NNP thing NN do V
  • 获取 Keras model.summary() 作为表

    我在 Keras 中创建了相当大的模型 我正在用 LaTeX 写一篇关于它的文章 为了很好地描述 LaTeX 中的 keras 模型 我想用它创建一个 LaTeX 表 我可以手动实现它 但我想知道是否有任何 更好 的方法来实现这一点 我四处
  • ValueError:形状(无,1)和(无,2)不兼容

    我正在训练面部表情 愤怒与快乐 模型 最后一个密集输出层以前为 1 但当我预测图像时 它的输出始终为 1 准确度为 64 所以我将其更改为 2 表示 2 个输出 但现在我收到这个错误 Epoch 1 15 ValueError Traceb
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • Python:Goslate 翻译请求返回“503:服务不可用”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size
  • 法语文本上的 NLTK word_tokenize 无法正常工作

    我正在尝试使用 NLTKword tokenize中的一段文字French通过使用 txt Le t l travail n aura pas d effet sur ma vie print word tokenize txt langu
  • Keras 均方误差损失层

    我目前正在实现一个自定义损失层 在此过程中 我偶然发现了 Objectives py 文件 1 中均方误差的实现 我知道我对这种损失计算的理解遗漏了一些东西 因为我一直认为平均值是在每个小批量 张量的轴 0 中的每个输出的样本之间单独完成的
  • 如何使用自定义数据生成器进行 keras 图像增强?

    我正在使用 Keras 自定义生成器 我想对从自定义数据生成器返回的数据应用图像增强技术 我想要这些图像增强技术 ImageDataGenerator rotation range 40 width shift range 0 2 heig
  • 安装 Visual Studio 19 时找不到 Visual Studio 17

    我使用的是 win 10 Anaconda 4 8 3 和 Python 3 7 4 在 C Program Files x86 Microsoft Visual Studio 2019 BuildTools 下我有 SDK 以下是我看到的

随机推荐