深度学习6-自定义层详解

文章目录1.如何自定义层2.三种方法自定义层方法一方法二方法三添加不可训练参数3.自定义层的注意事项注意一注意二注意三注意四注意五4.案例讲解1.如何自定义层2.三种方法自定义层方法一import tensorflow as tf#自定义全连接层class Linear(tf.keras.layers.Layer): def __init__(self, units=1, input_dim=4): super(Linear, self).__init
摘要由CSDN通过智能技术生成


在这里插入图片描述

1.如何自定义层

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.三种方法自定义层

在这里插入图片描述
在这里插入图片描述

方法一
import tensorflow as tf

#自定义全连接层
class Linear(tf.keras.layers.Layer):

    def __init__(self, units=1, input_dim=4):
        super(Linear, self).__init__() 
        
        # 随机初始化张量
        w_init = tf.random_normal_initializer()
        # tf.Variable用来初始化一些变量
        self.w = tf.Variable(initial_value=w_init(shape=(input_dim, units),dtype='float32'), trainable=True)
        
        b_init = tf.zeros_initializer()
        self.b = tf.Variable(initial_value=b_init(shape=(units,),dtype='float32'),trainable=True)

    def call(self, inputs):
        return tf.matmul(inputs, self.w) + self.b


x = tf.constant(data) #(150,4)
linear_layer = Linear(units = 1, input_dim=4) 
y = linear_layer(x)
print(y.shape) #(150,1)
方法二
# 使用self.add_weight来创建变量
class Linear(tf.keras.layers.Layer):
    
    def __init__(self,units
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值