tf.keras.layers.Conv1D( filters, kernel_size, strides=1, padding='valid', data_format='channels_last', dilation_rate=1, groups=1, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None, **kwargs )
从这个函数原型可以知道各个参数的默认值。
When using this layer as the first layer in a model, provide an input_shape argument (tuple of integers or None, e.g. (10, 128) for sequences of 10 vectors of 128-dimensional vectors, or (None, 128) for variable-length sequences of 128-dimensional vectors.
如果Conv1D是第一层,需要输入input_shape,可以是(10,128),即10个128维的向量,也可以是 (None, 128) ,表示可变个数个128维向量。
# 10个时间步长,每个时间由128维向量表示,batch_size是4 input_shape = (4, 10, 128) x = tf.random.normal(input_shape) y = tf.keras.layers.Conv1D( 32, 3, activation='relu',input_shape=input_shape[1:])(x) print(y.shape)
输出: (4, 8,32)
# [4, 7]是扩展的batch_size,不管batch_size是不是两维,输入4维的时候,前两维都被认为是batch_size,10是时间,128维向量 input_shape = (4, 7, 10, 128) x = tf.random.normal(input_shape) y = tf.keras.layers.Conv1D( 32, 3, activation='relu', input_shape=input_shape[2:])(x) print(y.shape)
输出:(4, 7,8, 32)
Input shape:
3+D tensor with shape: batch_shape + (steps, input_dim)
Output shape:
3+D tensor with shape: batch_shape + (new_steps, filters) steps value might have changed due to padding or strides.
kernel_initializer和bias_initializer都是需要初始化方式的,所以默认就有,如果不初始化,那filter就没有值,不能计算。
kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None,层的参数,偏置和激活函数都可以添加惩罚项。
keras.regularizers.l1(0.) keras.regularizers.l2(0.) keras.regularizers.l1_l2(l1=0.01, l2=0.01)
参数就是下图中的λ。
任何输入一个权重矩阵、返回一个损失贡献张量的函数,都可以用作正则化器。例如自定义:
from keras import backend as K def l1_reg(weight_matrix): return 0.01 * K.sum(K.abs(weight_matrix)) model.add(Dense(64, input_dim=64, kernel_regularizer=l1_reg))
函数原型:
tf.keras.layers.Conv1DTranspose( filters, kernel_size, strides=1, padding='valid', output_padding=None, data_format=None, dilation_rate=1, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None, **kwargs )
Input shape:
3D tensor with shape: (batch_size, steps, channels)
Output shape:
3D tensor with shape: (batch_size, new_steps, filters) If output_padding is specified:
new_timesteps = ((timesteps - 1) * strides + kernel_size - 2 * padding + output_padding)
热门文章
- Java权限修饰符
- 我喜欢实实在在的人的句子(风雨沙坡头电视剧)新鲜出炉,
- VPN安卓 | 2月26日22.3M/S|免费Shadowrocket/SSR/V2ray/Clash免费节点订阅分享
- Vue结合ElementUI上传Base64编码后的图片实例_vue.js
- 常用注解@JsonField、@JsonFormat、@DateTimeFormat区别
- 微服务架构学习与思考(09):分布式链路追踪系统-dapper论文学习
- VPN安卓 | 2月25日21.8M/S|免费V2ray/Shadowrocket/Clash/SSR免费节点订阅分享
- 预制菜料理包十大排行
- VPN安卓 | 2月24日18M/S|免费Clash/Shadowrocket/SSR/V2ray免费节点订阅分享
- Spring的两种依赖注入方式:setter方法注入与构造方法注入
归纳
-
12 2025-02