tensorflow入门 自定义模型

前面说了自定义的层,接下来自定义模型,我们以下图为例子

这个模型没啥意义,单纯是为了写代码实现这个模型

首先呢,我们看有几个部分,dense不需要我们实现了,我们就实现Res,为了实现那个*3,我们注意这个res可能需要多个res堆叠。

python 复制代码
class ResBlock(keras.layers.Layer):
    def __init__(self, n_layers, n_neurons, **kwargs):
        super().__init__(**kwargs)
        self.hidden =[keras.layers.Dense(n_neurons,activation='elu',kernel_initializer='he_normal')
                          for _ in range(n_layers)
                      ]
    def call(self, inputs):
        Z = inputs
        for layer in self.hidden:
            Z = layer(Z)
        return inputs + Z

这样我们就能实现一个可以循环的Res了,call是必须的,因为在计算的时候需要它

如果我们写得再详细一点,可能要加入built,如果需要保存和加载模型,我们需要get_congit和save_congit,总之,基本的样子就是如此。

为了防止搞错,解释以下为什么没有使用built,是为了偷懒。

下面我们构建模型的时候,会指定输入的维度,其实再通用的情况下,我们根本不知道输入的维度,built会自动推断输入维度,所有本来应该写个built的,但是睡觉时间到了。

然后我们基于上面的自定义层,实现左边的模型

python 复制代码
def ResModel(keras.Model):
    def __init__(self, out, **kwargs):
        super().__init__(*kwargs)
        self.hidden1 = keras,layers,Dense(30, activation='elu', kernel_initializer='he_normal')
        self.block1 = ResBlock(2,10)
        self.block2 = ResBlock(2,20)
        self.out = keras,layers,Dense(out)
    
    def call(self, inputs):
        Z = self.hidden1(inputs)
        for _ in range(4):
            Z = self.block1(Z)
        Z = self.block2(Z)
        return self.out(Z)

我觉得在此以及无需多言了。睡觉睡觉。

相关推荐
人工智能培训5 分钟前
大模型驱动下传统大数据架构的变革方向
大数据·人工智能·重构·架构·agent·agi
一次旅行10 分钟前
AI 前沿日报 | 2026年7月6日
人工智能
AI科技星10 分钟前
全域谱分析:无穷维超复数信息场分形统一场论——自然、量子、金融多重分形第一性原理完整体系(中英双语终稿)
人工智能·python·算法·金融·乖乖数学·全域数学
lzx1864884370215 分钟前
【AH8966】可替代 KP3211 非隔离 AC110220V转12V 0.5A 降压转换芯片
人工智能·单片机·嵌入式硬件·集成测试·硬件工程·ic
王者鳜錸18 分钟前
解决方案十八-企业级客服通话录音/销售录音对话分析
人工智能·客户录音分析·房产销售录音分析·试驾录音分析·销售录音分析
用户03321266636731 分钟前
使用 Python 在 Word 文档中添加批注
python
蜡笔削薪33 分钟前
财联万业(杭州)数字科技有限公司能否给代理划定独家经营区域?
大数据·人工智能·python·科技
Lion0936 分钟前
【04】50 行代码实现最小 Agent:不依赖任何框架
人工智能·github
百度Geek说40 分钟前
AI 写代码越来越快,质量谁来守?网盘主端 FE 的 AICR 准入实践
人工智能
俊哥V42 分钟前
每日 AI 研究简报 · 2026-07-06
人工智能·ai