You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AttributeError:'myNetwork'对象无'conv3'属性问题求助

问题解决:AttributeError: 'myNetwork' object has no attribute 'conv3'

错误根源是构造函数拼写错误:你把Python类的构造函数__init__写成了__int__。

Python中,类实例化时会自动调用双下划线包裹的__init__方法初始化属性,而__int__是用于对象转整数的特殊方法,不会在实例化阶段执行。这直接导致你定义的self.conv3、self.dense等属性根本没被创建,调用网络时自然找不到conv3。

修正后的代码

from tensorflow.keras import Model
from tensorflow.keras.layers import Conv3D, Dense, Flatten
import tensorflow as tf  # 补充导入tf,原代码用了@tf.function但未导入

class myNetwork(Model):
    def __init__(self, dim1: int, dim2, dim3):  # 把__int__修正为__init__
        super(myNetwork, self).__init__()  # 同步修正super的调用方法
        # Conv3D的input_shape可省略,Keras会通过输入张量自动推断形状
        self.conv3 = Conv3D(filters=128, kernel_size=[dim3, 5, 5], strides=1, padding='same')
        self.dense = Dense(dim1, activation="linear")
        self.flatten = Flatten()

    @tf.function
    def call(self, x):
        h1 = self.conv3(x)
        h2 = self.flatten(h1)
        out = self.dense(h2)
        return out

额外注意点

  1. 原代码使用@tf.function但未导入tensorflow,需补充import tensorflow as tf
  2. 子类化Model时,Conv3D的input_shape无需显式指定,Keras会根据输入自动推断形状,避免因dim2格式错误引发新问题
  3. Python3中super调用可简化为super().__init__(),无需显式传入类名和self

内容的提问来源于stack exchange,提问作者Lucifer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 10:32:38