序章
用于记录自己学习 tensorflow ,激励自己一边学习一边分享。
Tensorflow 基础知识讲解 Gitee 地址
Tensorflow 基础知识讲解 Github 地址
tensorflow 地址
Dense(全连接层)
tf.keras.layers.Dense(units, 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)
参数:
units: 正整数,输出空间维度。
activation: 激活函数 (详见 activations)。 若不指定,则不使用激活函数 (即,线性激活: a(x) = x)。
use_bias: 布尔值,该层是否使用偏置向量。
kernel_initializer: kernel 权值矩阵的初始化器 (详见 initializers)。
bias_initializer: 偏置向量的初始化器 (详见 initializers)。
kernel_regularizer: 运用到 kernel 权值矩阵的正则化函数 (详见 regularizer)。
bias_regularizer: 运用到偏置向量的的正则化函数 (详见 regularizer)。
activity_regularizer: 运用到层的输出的正则化函数 (它的 "activation")。 (详见 regularizer)。
kernel_constraint: 运用到 kernel 权值矩阵的约束函数 (详见 constraints)。
bias_constraint: 运用到偏置向量的约束函数 (详见 constraints)。
输入
形如(batch_size, ..., input_dim)的 nD 张量,最常见的情况为(batch_size, input_dim)的 2D 张量
输出
形如(batch_size, ..., units)的 nD 张量,最常见的情况为(batch_size, units)的 2D 张量
# demo
import tensorflow as tf
# 创建一个模型,并且采用 shape= (None, 16) 的输入数组, 输出数组为 shape=(None, 32)。注意在第一层之后,你不需要再指定输入的大小了:
model = tf.keras.models.Sequential()
model.add(tf.keras.Input(shape=(16,)))
model.add(tf.keras.layers.Dense(32, activation='relu'))
model.add(tf.keras.layers.Dense(32))
print(model.output_shape) # (None, 32)
Conv1D (一维卷积层)
作用:
函数: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
)
参数:
filters: 整数,输出空间的维度(即卷积中输出滤波器的数量)
kernel_size: 单个整数的整数或元组列表,指定一维卷积窗口的长度
strides: 一个整数或单个整数的元组列表,指定卷积的步长。指定任何 stride 值 != 1 与指定任何 dilation_rate 值 != 1 不兼容。
padding: "valid" 意味着没有填充。 , "same" 导致在输入的左/右或上/下均匀填充零,以使输出具有与输入相同的高度/宽度尺寸。
"causal" 导致因果(扩张)卷积,例如输出[t] 不依赖于输入[t+1:]。在模型不应违反时间顺序的时间数据建模时很有用。
data_format: 一个字符串,channels_last(默认)或 channels_first 之一。
dilation_rate: 一个整数或单个整数的元组/列表,指定用于扩张卷积的扩张率。
目前,指定任何 dilation_rate 值 != 1 与指定任何 strides 值 != 1 是不兼容的。
groups: 一个正整数,指定输入沿通道轴拆分的组数。每个组分别与 filters / groups filters 进行卷积。
输出是沿通道轴的所有组结果的串联。输入通道和过滤器都必须可以按组整除。
activation: 要使用的激活功能。如果您未指定任何内容,则不会应用激活
use_bias: bool,层是否使用偏置向量。
kernel_initializer: 内核权重矩阵的初始化程序(请参阅 keras.initializers)。默认为“glorot_uniform”。
bias_initializer: 偏置向量的初始化程序。 默认为“zero”。
kernel_regularizer: 应用于内核权重矩阵的正则化函数
bias_regularizer: 应用于偏置向量的正则化函数
activity_regularizer: 正则化函数应用于层的输出 (its "activation")
kernel_constraint: 应用于核矩阵的约束函数
bias_constraint: 应用于偏置向量的约束函数
输入shape
形如(samples,steps,input_dim)的3D张量
输出shape
形如(samples,new_steps,nb_filter)的3D张量,因为有向量填充的原因,steps的值会改变
# demo
import tensorflow as tf
# 输入是 128 个长度的向量,有 10 个时间步长,批量大小为 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)
conv2D(二维卷积层)
作用:二维卷积层,即对图像的空域卷积。该层对二维输入进行滑动窗卷积,当使用该层作为第一层时,应提供input_shape参数。
例如input_shape = (128,128,3)代表128*128的彩色RGB图像
使用方法:
tf.keras.layers.Conv2D(
filters, kernel_size, strides=(1, 1), padding='valid',
data_format=None, dilation_rate=(1, 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
)
参数:
filters:卷积核的数目(即输出的维度)
kernel_size:单个整数或由两个整数构成的list/tuple,卷积核的宽度和长度。
如为单个整数,则表示在各个空间维度的相同长度。
strides:单个整数或由两个整数构成的list/tuple,为卷积的步长。如为单个整数,则表示在各个空间维度的相同步长。
任何不为1的strides均与任何不为1的dilation_rate均不兼容
padding:补0策略,为“valid”, “same” 。“valid”代表只进行有效的卷积,即对边界数据不处理。
“same”代表保留边界处的卷积结果,通常会导致输出shape与输入shape相同。
activation:激活函数,为预定义的激活函数名&#x