| 这篇教程深度学习(六)keras常用函数学习写得很实用,希望能帮到您。 
  Keras是什么?Keras:基于Theano和TensorFlow的深度学习库 Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:
 
	简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)支持CNN和RNN,或二者的结合无缝CPU和GPU切换 kears Dense()函数--全连接层  
keras.layers.core.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:大于0的整数,代表该层的输出维度。
 activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使用任何激活函数(即使用线性激活函数:a(x)=x)
 use_bias: 布尔值,是否使用偏置项
 kernel_initializer:权值初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。参考initializers
 bias_initializer:权值初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。参考initializers
 kernel_regularizer:施加在权重上的正则项,为Regularizer对象
 bias_regularizer:施加在偏置向量上的正则项,为Regularizer对象
 activity_regularizer:施加在输出上的正则项,为Regularizer对象
 kernel_constraints:施加在权重上的约束项,为Constraints对象
 bias_constraints:施加在偏置上的约束项,为Constraints对象
 input_dim:可以指定输入数据的维度
   kears Conv2D()函数--卷积层若不懂卷积概念可看:深度学习(二)神经网络中的卷积和反卷积原理     
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)。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)。   别看上面的参数一堆吓死人,其实我们在实际运用的时候用的就只有几个而已: 
inputs = Input(shape=(n_ch,patch_height,patch_width))
conv1 = Conv2D(32, (3, 3), activation='relu', padding='same',data_format='channels_first')(inputs)  #这个小括号填inputs是代表这层模型连接在inputs之后   当然还可以用kears内置的序贯模型add添加构成模型图: 
model = Sequential()
# Dense(64) is a fully-connected layer with 64 hidden units.
# in the first layer, you must specify the expected input data shape:
# here, 20-dimensional vectors.
model.add(Dense(64, activation='relu', input_dim=20))   kears MaxPooling2D()函数--池化层若不懂池化概念可看:深度学习(一)神经网络中的池化与反池化原理   
keras.layers.pooling.MaxPooling2D( pool_size=(2, 2), strides=None, padding='valid', data_format=None )  参数: pool_size:整数或长为2的整数tuple,代表在两个方向(竖直,水平)上的下采样因子,如取(2,2)将使图片在两个维度上均变为原长的一半。为整数意为各个维度值相同且为该数字。
 strides:整数或长为2的整数tuple,或者None,步长值。
 padding:‘valid’或者‘same’
 data_format:字符串,“channels_first”或“channels_last”之一,代表图像的通道维的位置。该参数是Keras 1.x中的image_dim_ordering,“channels_last”对应原本的“tf”,“channels_first”对应原本的“th”。以128x128的RGB图像为例,“channels_first”应将数据组织为(3,128,128),而“channels_last”应将数据组织为(128,128,3)。该参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”。
   还是一样的好多东西默认就行了,下面就是一个2*2的池化层: 
pool1 = MaxPooling2D((2, 2))(conv1)   深度学习(二)神经网络中的卷积和反卷积原理
 Python实现批量修改图片格式和大小的方法
 |