keras的基本用法(四) 您所在的位置:网站首页 keras迁移训练 keras的基本用法(四)

keras的基本用法(四)

2023-03-14 02:25| 来源: 网络整理| 查看: 265

文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书

本文主要介绍Keras的一些基本用法,主要涉及已有网络的fine tuning,以ResNet50为例。

Demo#!/usr/bin/env python# _*_ coding: utf-8 _*_from keras.models import Modelfrom keras.layers import Densefrom keras.applications.resnet50 import ResNet50from keras.preprocessing.image import ImageDataGenerator# 训练的batch_sizebatch_size = 16# 训练的epochepochs = 100# 图像Generator,用来构建输入数据train_datagen = ImageDataGenerator( width_shift_range=0.1, height_shift_range=0.1, zoom_range=0.2, horizontal_flip=True)# 从文件中读取数据,目录结构应为train下面是各个类别的子目录,每个子目录中为对应类别的图像train_generator = train_datagen.flow_from_directory('./train', target_size = (224, 224), batch_size = batch_size)# 训练图像的数量image_numbers = train_generator.samples# 输出类别信息print train_generator.class_indices# 生成测试数据test_datagen = ImageDataGenerator()validation_generator = test_datagen.flow_from_directory('./validation', target_size = (224, 224), batch_size = batch_size)# 使用ResNet的结构,不包括最后一层,且加载ImageNet的预训练参数base_model = ResNet50(weights = 'imagenet', include_top = False, pooling = 'avg')# 构建网络的最后一层,3是自己的数据的类别predictions = Dense(3, activation='softmax')(base_model.output)# 定义整个模型model = Model(inputs=base_model.input, outputs=predictions)# 编译模型,loss为交叉熵损失model.compile(optimizer='rmsprop', loss='categorical_crossentropy')# 训练模型model.fit_generator(train_generator,steps_per_epoch = image_numbers // batch_size, epochs = epochs, validation_data = validation_generator, validation_steps = batch_size)# 保存训练得到的模型model.save_weights('weights.h5')部分结果{'Type_3': 2, 'Type_2': 1, 'Type_1': 0}Found 761 images belonging to 3 classes.Epoch 1/40 1/16 [>.............................] - ETA: 119s - loss: 1.33922017-06-07 10:18:48.246289: I tensorflow/core/common_runtime/gpu/pool_allocator.cc:247] PoolAllocator: After 2521 get requests, put_count=2161 evicted_count=1000 eviction_rate=0.462749 and unsatisfied allocation rate=0.5791352017-06-07 10:18:48.246348: I tensorflow/core/common_runtime/gpu/pool_allocator.cc:259] Raising pool_size_limit_ from 100 to 11016/16 [==============================] - 120s - loss: 2.3753 - val_loss: 10.8293Epoch 2/40 1/16 [>.............................] - ETA: 5s - loss: 1.00542017-06-07 10:20:40.464589: I tensorflow/core/common_runtime/gpu/pool_allocator.cc:247] PoolAllocator: After 2270 get requests, put_count=2642 evicted_count=1000 eviction_rate=0.378501 and unsatisfied allocation rate=0.2867842017-06-07 10:20:40.464643: I tensorflow/core/common_runtime/gpu/pool_allocator.cc:259] Raising pool_size_limit_ from 256 to 28116/16 [==============================] - 83s - loss: 1.7988 - val_loss: 11.5219Epoch 3/4016/16 [==============================] - 81s - loss: 1.6640 - val_loss: 11.0043Epoch 4/40 3/16 [====>.........................] - ETA: 4s - loss: 1.87452017-06-07 10:23:26.725923: I tensorflow/core/common_runtime/gpu/pool_allocator.cc:247] PoolAllocator: After 11057 get requests, put_count=11071 evicted_count=1000 eviction_rate=0.0903261 and unsatisfied allocation rate=0.09451032017-06-07 10:23:26.725986: I tensorflow/core/common_runtime/gpu/pool_allocator.cc:259] Raising pool_size_limit_ from 655 to 72016/16 [==============================] - 83s - loss: 1.7237 - val_loss: 11.7738Epoch 5/4016/16 [==============================] - 83s - loss: 1.6304 - val_loss: 10.6538Epoch 6/4016/16 [==============================] - 80s - loss: 1.2182 - val_loss: 4.5027Epoch 7/4016/16 [==============================] - 83s - loss: 1.3179 - val_loss: 11.5891Epoch 8/4016/16 [==============================] - 82s - loss: 1.1806 - val_loss: 10.5800Epoch 9/4016/16 [==============================] - 81s - loss: 1.1935 - val_loss: 11.1477Epoch 10/4016/16 [==============================] - 80s - loss: 1.1727 - val_loss: 7.0913Epoch 11/4016/16 [==============================] - 83s - loss: 1.2058 - val_loss: 6.4474Epoch 12/4016/16 [==============================] - 82s - loss: 1.2702 - val_loss: 7.7678Epoch 13/4016/16 [==============================] - 84s - loss: 1.2060 - val_loss: 7.9961Epoch 14/4016/16 [==============================] - 83s - loss: 1.0768 - val_loss: 11.2121Epoch 15/4016/16 [==============================] - 80s - loss: 1.1401 - val_loss: 13.2052Epoch 16/4016/16 [==============================] - 83s - loss: 1.1961 - val_loss: 13.0330


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有