keras.layers.Conv2D(filters, kernel_size, strides=(1, 1), padding=‘valid’,
data_format=None, dilation_rate=(1, 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)
2D 卷积层 (例如对图像的空间卷积)。
该层创建了一个卷积核,该卷积核对层输入进行卷积,以生成输出张量。如果 use_bias 为True,则会创建一个偏置向量并将其添加到输出中。最后,如果 activation 不是 None,它也会应用于输出。
当使用该层作为模型第一层时,需要提供 input_shape 参数(整数元组,不包含样本表示的轴) ,例如,input_shape=(128, 128, 3) 表示 128x128 RGB 图像,在data_format=“channels_last” 时。
参数
• filters: 整数,输出空间的维度(即卷积中滤波器的输出数量)。
• kernel_size: 一个整数,或者 2 个整数表示的元组或列表,指明 2D 卷积窗口的宽度和高度。
可以是一个整数,为所有空间维度指定相同的值。
• strides: 一个整数,或者 2 个整数表示的元组或列表,指明卷积沿宽度和高度方向的步长。可以是一个整数,为所有空间维度指定相同的值。指定任何 stride 值!= 1 与指定dilation_rate 值!= 1 两者不兼容。
• padding: “valid” 或 “same” (大小写敏感)。
• data_format: 字符串,channels_last (默认) 或 channels_first 之一,表示输入中维度的顺序。channels_last 对应输入尺寸为 (batch, height, width, channels),channels_first 对应输入尺寸为 (batch, channels, height, width)。它默认为从Keras 配置文件 ~/.keras/keras.json 中找到的 image_data_format 值。如果你从未设置它,将使用”channels_last”。
• dilation_rate: 一个整数或 2 个整数的元组或列表,指定膨胀卷积的膨胀率。可以是一个整数,为所有空间维度指定相同的值。当前,指定任何 dilation_rate 值!= 1 与指定 stride值!= 1 两者不兼容。
• activation: 要使用的激活函数 (详见 activations)。如果你不指定,则不使用激活函数 (即线性激活:a(x) = x)。关于 KERAS 网络层 68
• use_bias: 布尔值,该层是否使用偏置向量。
• kernel_initializer: kernel 权值矩阵的初始化器 (详见 initializers)。
• bias_initializer: 偏置向量的初始化器 (详见 initializers)。
• kernel_regularizer: 运用到 kernel 权值矩阵的正则化函数 (详见 regularizer)。
• bias_regularizer: 运用到偏置向量的正则化函数 (详见 regularizer)。
• activity_regularizer: 运用到层输出(它的激活值)的正则化函数 (详见 regularizer)。
• kernel_constraint: 运用到 kernel 权值矩阵的约束函数 (详见 constraints)。
• bias_constraint: 运用到偏置向量的约束函数 (详见 constraints)。
输入尺寸
• 如果 data_format=’channels_first’,输入 4D 张量,尺寸为 (samples, channels, rows,cols)。
• 如果 data_format=’channels_last’,输入 4D 张量,尺寸为 (samples, rows, cols,channels)。
输出尺寸
• 如果 data_format=’channels_first’,输出 4D 张量,尺寸为 (samples, filters, new_rows, new_cols)。
• 如果data_format=’channels_last’,输出4D张量,尺寸为(samples, new_rows, new_cols,filters)。
由于填充的原因,rows 和 cols 值可能已更改。
keras.layers.MaxPooling2D(pool_size=(2, 2), strides=None, padding=‘valid’,data_format=None)
对于空域数据的最大池化。
参数
• pool_size: 整数,或者 2 个整数元组,(垂直方向,水平方向)缩小比例的因数。(2,2)会
把输入张量的两个维度都缩小一半。如果只使用一个整数,那么两个维度都会使用同样的
窗口长度。
• strides: 整数,整数元组或者是 None。步长值。如果是 None,那么默认值是 pool_size。
• padding: “valid” 或者 “same” (区分大小写)。
• data_format: 一个字符串,channels_last (默认值)或者 channels_first。输入张量中的维度顺序。channels_last 代表尺寸是 (batch, height, width, channels) 的输入张量,而 channels_first 代表尺寸是 (batch, channels, height, width) 的输入张量。默认值根据 Keras 配置文件 ~/.keras/keras.json 中的 image_data_format 值来设置。如果还没有设置过,那么默认值就是”channels_last”。
输入尺寸
• 如果 data_format=‘channels_last’: 尺寸是 (batch_size, rows, cols, channels)的 4D 张量
• 如果 data_format=‘channels_first’: 尺寸是 (batch_size, channels, rows, cols)的 4D 张量
输出尺寸
• 如 果 data_format=‘channels_last’: 尺 寸 是 (batch_size, pooled_rows,
pooled_cols, channels) 的 4D 张量
• 如 果 data_format=‘channels_first’: 尺 寸 是 (batch_size, channels,
pooled_rows, pooled_cols) 的 4D 张量
目录前言1.keras工作流程2.keras网络模型定义的2种方法3.损失函数、评估标准、优化器4.常用api说明4.1sequence方法compilefitpredict4.2 网络模型常用模块denseActivationDropoutFlattenInputReshapeConv2DMaxPooling2D前言使用了keras很久,比较容易上手、非常适合搭建新模型和进行object detect,温故而知新,重新捡起来并且合理总结一下,特此分享与有缘人~~~1.keras工作流程已经见过一个
Keras2cpp是一个小型库,用于从C ++应用程序运行经过训练的Keras模型,而无需任何依赖。
设计目标:
与Keras使用TensorFlow后端生成的网络的兼容性。
仅CPU,无GPU。
没有外部依赖项,标准库,C ++ 17。
模型以二进制格式存储在磁盘上,可以快速读取。
模型以连续块的形式存储在内存中,以提高缓存性能。
尚不支持图层和激活类型。 工作正在进行中
支持的Keras层:
MaxPooling2D
本地连接一维
本地连接的2D
有线电视新闻网
批量标准化
支持的激活:
softplus
sigmod
硬sigmod
softsign
softmax
其他任务:
创建单元测试
创建makefile
代码重构(进行中)
该项目与Keras 2.x(所有版本)和Python 3.x兼容。
python_model.py:
import numpy as np
1.将网络层实例的列表传递给 Sequential 的构造器
from keras.models import Sequential
from keras.layers import Dense, Activation
model = Sequential([
Dense(32, input...
5.进行fit训练
6. -model.summary() 打印网络结构和参数统计
我们用Fashion_mnist数据集来进行10分类 ,包括60000张训练图片和10000张测试图片,每张图片为28*28的分辨率。
1.导入相关的库
import tensorflow as tf #导入tensorflow
2.读取数据集
(x_train, y_train),(x_test, y_t