输入数据
tflearn.layers.core.input_data (shape=None, placeholder=None, dtype=tf.float32, data_preprocessing=None, data_augmentation=None, name='InputData')
该层用于将数据输入(也称为馈送)到网络。如果提供TensorFlow占位符,则将使用它,否则将使用给定形状创建新的占位符。
必须提供形状或占位符,否则将引发异常。
此外,占位符将添加到TensorFlow集合中,以便可以使用 tf.get_collection(tf.GraphKeys.INPUTS) 以及 tf.GraphKeys.LAYER_TENSOR + '/' + name 检索它。数据预处理和增强对象也类似,它们存储在集合中,并使用 tf.GraphKeys.DATA_PREP 和 tf.GraphKeys.DATA_AUG。这允许TFLearn的其他部分通过引用这些图键轻松检索和使用这些对象。
输入
整数列表(形状),用于创建新的占位符。或 `Tensor`(占位符),用于使用现有的占位符。
输出
具有给定形状的占位符张量。
参数
- shape: 整数列表。表示输入数据形状的数组或元组。如果没有提供占位符,则需要它。第一个元素应该是“None”(表示批大小),如果没有提供,将自动添加。
- placeholder: 用于馈送此层的占位符(可选)。如果未指定,将自动创建占位符。您可以通过图键“INPUTS”或此函数返回的张量的“placeholder”属性检索该占位符。
- dtype: `tf.type`,占位符数据类型(可选)。默认值:float32。
- data_preprocessing: `DataPreprocessing` 子类对象,用于在训练和预测时管理实时数据预处理(例如零中心数据、标准差归一化...)。
- data_augmentation: `DataAugmentation`。`DataAugmentation` 子类对象,用于在训练时管理实时数据增强(例如随机图像裁剪、随机图像翻转、随机序列反转...)。
- name: `str`。此层的名称(可选)。
全连接层
tflearn.layers.core.fully_connected (incoming, n_units, activation='linear', bias=True, weights_init='truncated_normal', bias_init='zeros', regularizer=None, weight_decay=0.001, trainable=True, restore=True, reuse=False, scope=None, name='FullyConnected')
全连接层。
输入
(2+)-D 张量 [样本数,输入维度]。如果不是二维,输入将被展平。
输出
2D 张量 [样本数,单元数]。
参数
- incoming: `Tensor`。传入的 (2+)D 张量。
- n_units: `int`,此层的单元数。
- activation: `str`(名称)或 `function`(返回 `Tensor`)。应用于此层的激活函数(请参阅 tflearn.activations)。默认值:'linear'。
- bias: `bool`。如果为 True,则使用偏差。
- weights_init: `str`(名称)或 `Tensor`。权重初始化。(请参阅 tflearn.initializations)默认值:'truncated_normal'。
- bias_init: `str`(名称)或 `Tensor`。偏差初始化。(请参阅 tflearn.initializations)默认值:'zeros'。
- regularizer: `str`(名称)或 `Tensor`。向此层权重添加正则化器(请参阅 tflearn.regularizers)。默认值:None。
- weight_decay: `float`。正则化器衰减参数。默认值:0.001。
- trainable: `bool`。如果为 True,则权重将是可训练的。
- restore: `bool`。如果为 True,则加载模型时将恢复此层的权重。
- reuse: `bool`。如果为 True 并且提供了“scope”,则将重用(共享)此层变量。
- scope: `str`。定义此层的范围(可选)。范围可用于在层之间共享变量。请注意,范围将覆盖名称。
- name: 此层的名称(可选)。默认值:'FullyConnected'。
属性
- scope: `Scope`。此层的范围。
- W: `Tensor`。表示单元权重的变量。
- b: `Tensor`。表示偏差的变量。
Dropout层
tflearn.layers.core.dropout (incoming, keep_prob, noise_shape=None, name='Dropout')
输出按 `1 / keep_prob` 放大的输入元素。缩放是为了使预期总和保持不变。
默认情况下,每个元素都独立保留或丢弃。如果指定了 noise_shape,则它必须可以广播到 x 的形状,并且只有 noise_shape[i] == shape(x)[i] 的维度才会做出独立的决定。例如,如果 shape(x) = [k, l, m, n] 并且 noise_shape = [k, 1, 1, n],则每个批次和通道组件将独立保留,并且每行和每列将一起保留或不保留。
参数
- incoming : `Tensor`。传入的张量。
- keep_prob : 表示每个元素保留概率的浮点数。
- noise_shape : 类型为 int32 的一维张量,表示随机生成的保留/丢弃标志的形状。
- name : 此层的名称(可选)。
参考文献
Dropout: A Simple Way to Prevent Neural Networks from Overfitting. N. Srivastava, G. Hinton, A. Krizhevsky, I. Sutskever & R. Salakhutdinov, (2014), Journal of Machine Learning Research, 5(Jun)(2), 1929-1958.
链接
https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf
自定义层
tflearn.layers.core.custom_layer (incoming, custom_fn, **kwargs)
可以对传入的 `Tensor` 或 `Tensor` 列表应用任何操作的自定义层。自定义函数可以与其参数一起作为参数传递。
参数
- incoming : `Tensor` 或 `Tensor` 列表。传入的张量。
- custom_fn : 自定义 `function`,用于对传入的张量应用一些操作。
- **kwargs: 自定义函数可能需要的一些自定义参数。
Reshape层
tflearn.layers.core.reshape (incoming, new_shape, name='Reshape')
将传入层张量输出重塑为所需形状的层。
参数
- incoming: `Tensor`。传入的张量。
- new_shape: 整数列表。所需的形状。
- name: 此层的名称(可选)。
Flatten层
tflearn.layers.core.flatten (incoming, name='Flatten')
展平传入的张量。
输入
(2+)-D `Tensor`。
输出
2-D `Tensor` [批大小,展平后的维度]。
参数
- incoming: `Tensor`。传入的张量。
激活函数层
tflearn.layers.core.activation (incoming, activation='linear', name='activation')
对传入的张量应用给定的激活函数。
参数
- incoming: `Tensor`。传入的张量。
- activation: `str`(名称)或 `function`(返回 `Tensor`)。应用于此层的激活函数(请参阅 tflearn.activations)。默认值:'linear'。
单单元层
tflearn.layers.core.single_unit (incoming, activation='linear', bias=True, trainable=True, restore=True, reuse=False, scope=None, name='Linear')
单单元(线性)层。
输入
1-D 张量 [样本数]。如果不是二维,输入将被展平。
输出
1-D 张量 [样本数]。
参数
- incoming: `Tensor`。传入的张量。
- activation: `str`(名称)或 `function`。应用于此层的激活函数(请参阅 tflearn.activations)。默认值:'linear'。
- bias: `bool`。如果为 True,则使用偏差。
- trainable: `bool`。如果为 True,则权重将是可训练的。
- restore: `bool`。如果为 True,则加载模型时将恢复此层的权重。
- reuse: `bool`。如果为 True 并且提供了“scope”,则将重用(共享)此层变量。
- scope: `str`。定义此层的范围(可选)。范围可用于在层之间共享变量。请注意,范围将覆盖名称。
- name: 此层的名称(可选)。默认值:'Linear'。
属性
- W: `Tensor`。表示权重的变量。
- b: `Tensor`。表示偏差的变量。
全连接高速网络层
tflearn.layers.core.highway (incoming, n_units, activation='linear', transform_dropout=None, weights_init='truncated_normal', bias_init='zeros', regularizer=None, weight_decay=0.001, trainable=True, restore=True, reuse=False, scope=None, name='FullyConnectedHighway')
全连接高速网络层,灵感来自 https://github.com/fomorians/highway-fcn。
输入
(2+)-D 张量 [样本数,输入维度]。如果不是二维,输入将被展平。
输出
2D 张量 [样本数,单元数]。
参数
- incoming: `Tensor`。传入的 (2+)D 张量。
- n_units: `int`,此层的单元数。
- activation: `str`(名称)或 `function`(返回 `Tensor`)。应用于此层的激活函数(请参阅 tflearn.activations)。默认值:'linear'。
- transform_dropout: `float`:高速网络变换门上的保留概率。
- weights_init: `str`(名称)或 `Tensor`。权重初始化。(请参阅 tflearn.initializations)默认值:'truncated_normal'。
- bias_init: `str`(名称)或 `Tensor`。偏差初始化。(请参阅 tflearn.initializations)默认值:'zeros'。
- regularizer: `str`(名称)或 `Tensor`。向此层权重添加正则化器(请参阅 tflearn.regularizers)。默认值:None。
- weight_decay: `float`。正则化器衰减参数。默认值:0.001。
- trainable: `bool`。如果为 True,则权重将是可训练的。
- restore: `bool`。如果为 True,则加载模型时将恢复此层的权重。
- reuse: `bool`。如果为 True 并且提供了“scope”,则将重用(共享)此层变量。
- scope: `str`。定义此层的范围(可选)。范围可用于在层之间共享变量。请注意,范围将覆盖名称。
- name: 此层的名称(可选)。默认值:'FullyConnectedHighway'。
属性
- scope: `Scope`。此层的范围。
- W: `Tensor`。表示单元权重的变量。
- W_t: `Tensor`。表示变换门单元权重的变量。
- b: `Tensor`。表示偏差的变量。
- b_t: `Tensor`。表示变换门偏差的变量。
链接
https://arxiv.org/abs/1505.00387
独热编码层
tflearn.layers.core.one_hot_encoding (target, n_classes, on_value=1.0, off_value=0.0, name='OneHotEncoding')
将数字标签转换为二进制向量。
输入
标签占位符。
输出
二维张量,编码后的标签。
参数
- target: `Placeholder`。标签占位符。
- n_classes: `int`。类的总数。
- on_value: `scalar`。定义开启值的标量。
- off_value: `scalar`。定义关闭值的标量。
- name: 此层的名称(可选)。默认值:'OneHotEncoding'。
时间分布层
tflearn.layers.core.time_distributed (incoming, fn, args=None, scope=None)
此层将函数应用于输入张量的每个时间步。自定义函数的第一个参数必须是每个时间步的输入张量。可以在“args”参数中指定自定义函数的其他参数(作为列表)。
示例
# Applying a fully_connected layer at every timestep
x = time_distributed(input_tensor, fully_connected, [64])
# Using a conv layer at every timestep with a scope
x = time_distributed(input_tensor, conv_2d, [64, 3], scope='tconv')
输入
(3+)-D 张量 [样本数,时间步,输入维度]。
输出
(3+)-D 张量 [样本数,时间步,输出维度]。
参数
- incoming: `Tensor`。传入的张量。
- fn: `function`。要在每个时间步应用的函数。此函数的第一个参数必须是每个时间步的输入张量。可以在“args”参数中指定其他参数。
- args: `list`。要与提供的函数一起使用的参数列表。
- scope: `str`。要赋予每个时间步张量的范围。在共享权重时很有用。每个时间步张量范围将生成为“scope”-“i”,其中 i 表示时间步 ID。请注意,您的自定义函数将需要具有“scope”参数。
返回值
张量。
多目标数据层
tflearn.layers.core.multi_target_data (name_list, shape, dtype=tf.float32)
创建并连接多个占位符。当回归层使用来自不同来源的目标时使用。
参数
- name_list: 字符串列表。目标占位符的名称。
- shape: 整数列表。占位符的形状。
- dtype: `tf.type`,占位符数据类型(可选)。默认值:float32。