出现raise NotImplementedError报错

news2024/11/23 7:39:02

在学习《动手学深度学习》时,实现下面代码时,报出raise NotImplementedError错误。



import collections
import torch
from d2l import torch as d2l
import math
from torch import nn

class Seq2SeqEncoder(d2l.Encoder):
    def __init__(self,vocab_size,embed_size,num_hiddens,num_layers,dropout=0,**kwargs):
        super(Seq2SeqEncoder,self).__init__(**kwargs)
        self.embedding = nn.Embedding(vocab_size,embed_size)
        self.rnn = nn.GRU(embed_size,num_hiddens,num_layers,dropout=dropout)
    def forward(self, X, *args):
        X = self.embedding(X)
        X = X.permute(1,0,2)
        output,state = self.rnn(X)
        return output,state

encoder = Seq2SeqEncoder(10,8,16,2)
encoder.eval()
X = torch.zeros((4,7),dtype=torch.long)
output,state = encoder(X)
print(output.shape)


class Seq2SeqDecoder(d2l.Decoder):
    def __init__(self,vocab_size,embed_size,num_hiddens,num_layers,dropout=0,**kwargs):
        super(Seq2SeqDecoder,self).__init__(**kwargs)
        self.embedding = nn.Embedding(vocab_size,embed_size)
        self.rnn = nn.GRU(embed_size+num_hiddens,num_hiddens,num_layers,dropout=dropout)
        self.dense = nn.Linear(num_hiddens,vocab_size)

    def init_state(self, enc_outputs, *args):
        return enc_outputs[1]

    def farward(self,X,state):
        X = self.embedding(X).permute(1,0,2)
        context = state[-1].repeat(X.shape[0],1,1)
        X_and_context = torch.cat((X,context),2)
        output,state = self.rnn(X_and_context,state)
        output = self.dense(output).permute(1,0,2)
        return output,state

decoder = Seq2SeqDecoder(10,8,16,2)
print(decoder.eval())
state = decoder.init_state(encoder(X))
output,state = decoder(X,state)
print(output.shape)

在这里插入图片描述
原因是类Seq2SeqDecoder在继承d2l.Decoder类时,需要重写父类的方法,而我把forward写成了farward。因此,出现了报错。

在深度学习中,子类继承父类时,需要重写父类的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/861794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

并发编程面试题2

并发编程面试题2 一、AQS高频问题: 1.1 AQS是什么? AQS就是一个抽象队列同步器,abstract queued sychronizer,本质就是一个抽象类。 AQS中有一个核心属性state,其次还有一个双向链表以及一个单项链表。 首先state…

NR sidelink(二) S-SSB

这篇看下NR sidelink S-SSB的内容,主要内容包括NR sidelink的同步原则,S-SSB的结构及相关序列,S-SSB的时频域位置,MasterInformationBlockSidelink IE解析,sidelink的同步过程,PSBCH payload及UE相关的能力IE。 NR sidelink的同步原则 参与sidelink通信之前,UE需要与覆…

VR全景智慧文旅,用科技助力旅游业振兴

引言: 近年来,科技的迅猛发展将我们带入一个全新的数字化时代,而虚拟现实(Virtual Reality,简称VR)技术则以其令人惊叹的全新方式,影响着各个领域。其中,旅游业作为人们探索世界、体…

AIGC接地项目机会网赚场景

变现场景 1、知识库 一个大公司有1000多份内部法规、合规的条文和规范,给员工普及这些知识很难,提前上课永远敌不过遇事抱佛脚。要是有一个能将1000条发文倒背如流的老司机,随时随地结合员工工作的实际场景,给出条文解释就好了。 …

多平台发布文章-项目总结

做个最近的AIGC内容创作技术要点的总结吧😼 流程图 时序图

研发工程师玩转Kubernetes——通过PV的节点亲和性影响Pod部署

在《研发工程师玩转Kubernetes——PVC通过storageClassName进行延迟绑定》一文中,我们利用Node亲和性,让Pod部署在节点ubuntud上。因为Pod使用的PVC可以部署在节点ubuntuc或者ubuntud上,而系统为了让Pod可以部署成功,则让PVC与Pod…

死锁的成因,和解决方案总结

何为死锁 死锁是多线程或并发程序中的一种情况,当多个线程因为竞争资源而相互等待,并且无法继续执行的情况。在死锁中,每个线程都在等待其他线程释放资源,从而导致所有线程都陷入无限等待状态,无法继续向前执行&#…

Python(七十六)字符串的驻留机制

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

C++:类与对象补充 - 初始化列表、static成员、友元、匿名对象

目录 引言 一、 初始化列表 1.1 构造函数内部赋值 1.2 使用初始化列表 1.3 注意事项 1.4 explicit关键字 二、 static成员 2.1 概念 2.2 情景 2.3 特性 三、 友元 3.1 概念 3.2 语法 3.2.1 友元函数 3.2.2 友元类 3.3 特性 四、匿名对象 4.1 概念 4.2 语法 …

Soundpad解决自动键失效的问题

这里给出解决方法,具体原因我也不太懂,因为我也是做实验得出某些操作可能会导致自动键不起作用。 首先打开首选项,配置如下图所示,这里只改了特殊热键的五个键位和自动键 我之前犯的错误,我相信大部分跟我一样&#…

74、75、76——tomcat项目实战

tomcat项目实战 tomcat 依赖 java运行环境,必须要有jre , 选择 jdk1.8 JvmPertest 千万不能用 kyj易捷支付 项目机器 选择 一台机器 ,安装jdk1.8的机器下载tomcat的包 上传到机器,解压tomcattomcat文件 bin文件夹: 启动文件 堆栈配置文件 catalina.sh JAVA_OPTS="-Xm…

vue3+ts使用antv/x6

使用 2.x 版本 x6.antv 新官网: 安装 npm install antv/x6 //"antv/x6": "^2.1.6",项目结构 1、初始化画布 index.vue <template><div id"container"></div> </template><script setup langts> import { onM…

DTW(Dynamic Time Warping)动态时间规整

转载于知乎DTW(Dynamic Time Warping)动态时间规整 - 知乎 DTW可以计算两个时间序列的相似度&#xff0c;尤其适用于不同长度、不同节奏的时间序列&#xff08;比如不同的人读同一个词的音频序列&#xff09;。DTW将自动warping扭曲 时间序列&#xff08;即在时间轴上进行局部的…

关于大功率H桥电机驱动模块

关于大功率H桥电机驱动模块 简介接线说明模块接线说明PWM调速控制说明 材料准备实际接线图测试视频总结 简介 大功率H桥电机驱动模块是由两个半桥驱动IC外加4个外部NMOS管组成&#xff0c;发热量小&#xff0c;刹车效果好。 两路PWM输入&#xff0c;占空比可在0-99%内调节。工…

2023/08/10

文章目录 一、计算属性传参二、小程序、h5跳转其他平台授权三、封装popup弹窗四、实现保存海报五、下载图片和复制分享链接 一、计算属性传参 计算属性的值往往通过一个回调函数返回&#xff0c;但是这个回调函数是无法传递参数的&#xff0c;要想实现计算属性传参可以通过闭包…

Python爬虫(十)_正则表达式

什么是正则表达式 正则表达式&#xff0c;又称规则表达式&#xff0c;通常被用来检索、替换那些符合某个模式&#xff08;规则&#xff09;的文本。 正则表达式是对字符串操作的一种逻辑公式&#xff0c;就是用事先定义好的一些特定字符、及这些特定字符的组合&#xff0c;组成…

Prometheus技术文档-基本使用-配置文件全解!!!!!

简介&#xff1a; Prometheus是一个开源的系统监控和告警系统&#xff0c;由Google的BorgMon监控系统发展而来。它主要用于监控和度量各种时间序列数据&#xff0c;比如系统性能、网络延迟、应用程序错误等。Prometheus通过采集监控数据并存储在时间序列数据库中&#xff0c;…

eNSP:双向重定向和路由策略练习

实验要求&#xff1a; 拓扑图&#xff1a; IP、路由器 r1: <Huawei>sys [Huawei]sys r1 [r1]int g 0/0/0 [r1-GigabitEthernet0/0/0]ip add 12.1.1.1 24 [r1-GigabitEthernet0/0/0]int g 0/0/1 [r1-GigabitEthernet0/0/1]ip add 14.1.1.1 24 [r1-GigabitEthernet0/0/1]…

Linux下安装nginx (tar解压版安装)

Linux下安装nginx (tar安装) 1、下载nginx 官方下载地址https://nginx.org/en/download.html 在这里插入图片描述 2.解压 解压‘nginx-1.16.1.tar.gz’到指定目录&#xff08;/usr/local/myWorkSpace&#xff09;并且重命名 命令&#xff1a; tar -xvf nginx-1.16.1.tar.gz …