深度学习学习日记:Keras接口记录

打算用Keras做迁移学习,书上和资料上说用keras做迁移学习比较方便(毕竟大部分迁移学习都是用的那些比较常用的数据集,keras比较适合和方便做)

  • Keras有两种构建模型的方式:sequential(适用于简单模型)和 function API(适用于复杂的模型)

sequential Model 

  • sequential 有如下常用方法:
    • compile(optimizer, loss=None, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics=None, target_tensors=None)  #模型训练时的相关配置
    • fit(x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None, validation_freq=1, max_queue_size=10, workers=1, use_multiprocessing=False) #在epoch下训练模型
    • evaluate(x=None, y=None, batch_size=None, verbose=1, sample_weight=None, steps=None, callbacks=None, max_queue_size=10, workers=1, use_multiprocessing=False) #在测试集下返回loss和评估函数结果
    • predict(x, batch_size=None, verbose=0, steps=None, callbacks=None, max_queue_size=10, workers=1, use_multiprocessing=False) #对输入样本进行预测结果
    • train_on_batch(x, y, sample_weight=None, class_weight=None, reset_metrics=True) #对一个batch进行更新梯度
    • test_on_batch(x, y, sample_weight=None, reset_metrics=True) #对一个batch的数据进行测试

Layer

模型里的层“输入层”“隐藏层”“输出层”,

  • 核心Layer
    • 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) #相当于操作了output = activation(dot(input, kernel) + bias)
    • keras.layers.Activation(activation)
    • keras.layers.Dropout(rate, noise_shape=None, seed=None)
    • keras.layers.Flatten(data_format=None)
    • keras.engine.input_layer.Input()
    • keras.layers.Reshape(target_shape)
    • keras.layers.Masking(mask_value=0.0)
  • 卷积Layer
    • keras.layers.Conv1D(filters, kernel_size, strides=1, padding='valid', data_format='channels_last', dilation_rate=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)
    • 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)
  • 池化Layer
    • keras.layers.MaxPooling1D(pool_size=2, strides=None, padding='valid', data_format='channels_last')
    • keras.layers.MaxPooling2D(pool_size=(2, 2), strides=None, padding='valid', data_format=None)
    • keras.layers.AveragePooling1D(pool_size=2, strides=None, padding='valid', data_format='channels_last')
    • keras.layers.AveragePooling2D(pool_size=(2, 2), strides=None, padding='valid', data_format=None)

Optimizers

  • keras.optimizers.SGD(learning_rate=0.01, momentum=0.0, nesterov=False)
  • keras.optimizers.RMSprop(learning_rate=0.001, rho=0.9)
  • keras.optimizers.Adagrad(learning_rate=0.01)
  • keras.optimizers.Adadelta(learning_rate=1.0, rho=0.95)
  • keras.optimizers.Adam(learning_rate=0.001, beta_1=0.9, beta_2=0.999, amsgrad=False)

激活函数

  • keras.activations.elu(x, alpha=1.0)
  • keras.activations.softmax(x, axis=-1)
  • keras.activations.relu(x, alpha=0.0, max_value=None, threshold=0.0)
  • keras.activations.tanh(x)
  • keras.activations.sigmoid(x)
  • keras.activations.linear(x)

损失函数Loss

  • keras.losses.mean_squared_error(y_true, y_pred)
  • keras.losses.mean_absolute_error(y_true, y_pred)
  • keras.losses.categorical_crossentropy(y_true, y_pred, from_logits=False, label_smoothing=0)
  • keras.losses.binary_crossentropy(y_true, y_pred, from_logits=False, label_smoothing=0)

评价函数Metrics

  • keras.metrics.accuracy(y_true, y_pred)
  • keras.metrics.binary_accuracy(y_true, y_pred, threshold=0.5)
  • keras.metrics.categorical_accuracy(y_true, y_pred)

已有模型

  • Xception
  • VGG16
  • VGG19
  • ResNet, ResNetV2
  • InceptionV3
  • InceptionResNetV2
  • MobileNet
  • MobileNetV2
  • DenseNet
  • NASNet
  • from keras.applications.vgg16 import VGG16
    from keras.preprocessing import image
    from keras.applications.vgg16 import preprocess_input
    import numpy as np
    
    model = VGG16(weights='imagenet', include_top=False)
    
    img_path = 'elephant.jpg'
    img = image.load_img(img_path, target_size=(224, 224))
    x = image.img_to_array(img)
    x = np.expand_dims(x, axis=0)
    x = preprocess_input(x)
    
    features = model.predict(x)

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值