python-pytorch官方示例Generating Names with a Character-Level RNN的部分理解0.5.03

pytorch官方示例Generating Names with a Character-Level RNN的部分理解

模型结构

在这里插入图片描述

功能

输入一个类别名和一个英文字符,就可以自动生成这个类别,且以英文字符开始的姓名

关键技术

  1. 将字符进行one-hot编码
  2. 名字最大长度20,就是使用模型预测20次,下一个字符根据上一个字符循环预测,最后将字符串连接在一起输出一个名字
  3. 如果是分类任务,输入的名字是字符串表示的,因此在循环这个名字长度,每个字符输入模型中,得到的hidden作为下一次字符预测模型的参数,如官方的分类示例:https://pytorch.org/tutorials/intermediate/char_rnn_classification_tutorial.html。 因此最后一个名字字符的预测output将作为softmax的参数进行预测

模型输入

1x128是hidden层,1x18是某一类别的one-hot编码,1x59是某一个英文字符的ont-hot编码,如下面就可以实现某一个字符的one-hot

tensor = torch.zeros(1, n_categories)
tensor[0][li] = 1

模型输出

输出是1x59,就是预测的一个字符。

预测实现

  1. 名字是由多个字符串组合的,根据给的英文字符预测下一个字符,再根据这字符预测下一个字符,一直反复到EOS时停止
for i in range(max_length):
    output, hidden = rnn(category_tensor, input[0], hidden)
    topv, topi = output.topk(1)
    topi = topi[0][0]
    if topi == n_letters - 1:
        break
    else:
        letter = all_letters[topi]
        output_name += letter
    input = inputTensor(letter)

相关推荐

  1. 深入理解Python闭包:概念、应用与示例

    2024-04-28 00:32:01       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-28 00:32:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-28 00:32:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-28 00:32:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-28 00:32:01       20 阅读

热门阅读

  1. 【MySQL】数据库概述

    2024-04-28 00:32:01       11 阅读
  2. 【MySQL】基础知识

    2024-04-28 00:32:01       12 阅读
  3. k8s部署grafana

    2024-04-28 00:32:01       11 阅读
  4. Swift 中的条件语句:if 和 else

    2024-04-28 00:32:01       13 阅读
  5. 优雅实现uniapp返回上一页传参

    2024-04-28 00:32:01       11 阅读
  6. 通过idea插件一键将jar包发布到阿里云服务器部署

    2024-04-28 00:32:01       11 阅读
  7. 要搭建基于Python、Django和Oracle的框架怎么搭

    2024-04-28 00:32:01       10 阅读
  8. springboot校园在线拍卖系统

    2024-04-28 00:32:01       16 阅读
  9. NEFU算法设计与分析实验4

    2024-04-28 00:32:01       10 阅读
  10. 语气确定词库再nlp领域怎么应用?

    2024-04-28 00:32:01       12 阅读
  11. txt大文件拆分(批量版)

    2024-04-28 00:32:01       11 阅读