Keras官方文档链接:
https://keras.io/ 英文
https://keras.io/zh/ 中文
中英文的文档结构都不太友好,我按照初学使用Keras过程中,接触的类进行了排版。
首先查看使用的数据集,了解数据结构,其次堆叠深度网络的隐藏层,在网络训练compile的语句中,会使用Loss和Optimizer,以及Metric等参数。
其他的部分是调整模型时需要用的,可以在使用的时候参考官方文档。
常用数据集 Datasets
- CIFAR10小图像分类数据集
- CIFAR100小图像分类数据集
- IMDB电影评论情感分类数据集
- 路透社新闻主题分类
- MNIST手写字符数据集
- Fashion-MNIST时尚物品数据集
- Boston房价回归数据集
数据调用方法(直接存储在user\.keras\datasets中)
from keras.datasets import mnist (x_train, y_train), (x_test, y_test) = mnist.load_data()
网络层 Layers
所有Keras层都有很多共同的函数:
layer.get_weights(): 以含有Numpy矩阵的列表形式返回层的权重。
layer.set_weights(weights): 从含有Numpy矩阵的列表中设置层的权重(与get_weights的输出形状相同)。
layer.get_config(): 返回包含层配置的字典。此图层可以通过以下方式重置:
layer = Dense(32)
config = layer.get_config()
reconstructed_layer = Dense.from_config(config)
或:
from keras import layers
config = layer.get_config()
layer = layers.deserialize({'class_name': layer.__class__.__name__,
'config': config})
如果一个层具有单个节点 (i.e. 如果它不是共享层), 你可以得到它的输入张量,输出张量,输入尺寸和输出尺寸:
layer.input
layer.output
layer.input_shape
layer.output_shape
如果层有多个节点 (参见: 层节点和共享层的概念), 您可以使用以下函数:
layer.get_input_at(node_index)
layer.get_output_at(node_index)
layer.get_input_shape_at(node_index)
layer.get_output_shape_at(node_index)
核心网络层 Core
- Dense
- Activation
- Dropout
- Flatten
- Input
- Reshape
- Permute
- repeatVector
- Lambda
- activityRegularization
- Masking
- SpatialDropout1D
- SpatialDropout2D
- SpatialDropout3D
卷积层 Convolutional
- Conv1D
- Conv2D
- SeparableConv1D
- SeparableConv2D
- Conv2DTranspose
- Conv3D
- Cropping1D
- Cropping2D
- Cropping3D
- UpSampling1D
- UpSampling2D
- UpSampling3D
- ZeroPadding1D
- ZeroPadding2D
- ZeroPadding3D
池化层 Pooling
- MaxPooling1D
- MaxPooling2D
- MaxPooling3D
- AveragePooling1D
- AveragePooling2D
- Aver