tensorflow2.0 Keras VGG16 VGG19 系列 代码实现
模型介绍参看:博文
VGG16
迁移模型
先看看标准答案
import tensorflow as tf
from tensorflow import kerasbase_model = keras.applications.VGG16(weights='imagenet')
base_model.summary()
自建模型
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers, models, Input
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, Flatten, Dropoutdef VGG16(nb_classes, input_shape):input_tensor = Input(shape=input_shape)# 1st blockx = Conv2D(64, (3,3), activation='relu', padding='same',name='conv1a')(input_tensor)x = Conv2D(64, (3,3), activation='relu', padding='same',name='conv1b')(x)x = MaxPooling2D((2,2), strides=(2,2), name = 'pool1')(x)# 2nd blockx = Conv2D(128, (3,3), activation='relu', padding='same',name='conv2a')(x)x = Conv2D(128, (3,3), activation='relu', padding='same',name='conv2b')(x)x = MaxPooling2D((2,2), strides=(2,2), name = 'pool2')(x)# 3rd blockx = Conv2D(256, (3,3), activation='relu', padding='same',name='conv3a')(x)x = Conv2D(256, (3,3), activation='relu', padding='same',name='conv3b')(x)x = Conv2D(256, (3,3), activation='relu', padding='same',name='conv3c')(x)x = MaxPooling2D((2,2), strides=(2,2), name = 'pool3')(x)# 4th blockx = Conv2D(512, (3,3), activation='relu', padding='same',name='conv4a')(x)x = Conv2D(512, (3,3), activation='relu', padding='same',name='conv4b')(x)x = Conv2D(512, (3,3), activation='relu', padding='same',name='conv4c')(x)x = MaxPooling2D((2,2), strides=(2,2), name = 'pool4')(x)# 5th blockx = Conv2D(512, (3,3), activation='relu', padding='same',name='conv5a')(x)x = Conv2D(512, (3,3), activation='relu', padding='same',name='conv5b')(x)x = Conv2D(512, (3,3), activation='relu', padding='same',name='conv5c')(x)x = MaxPooling2D((2,2), strides=(2,2), name = 'pool5')(x)# full connectionx = Flatten()(x)x = Dense(4096, activation='relu', name='fc6')(x)# x = Dropout(0.5)(x)x = Dense(4096, activation='relu', name='fc7')(x)# x = Dropout(0.5)(x)output_tensor = Dense(nb_classes, activation='softmax', name='fc8')(x)model = Model(input_tensor, output_tensor)return modelmodel=VGG16(1000, (224, 224, 3))
model.summary()
VGG19
相比VGG16在3-5block分别增加了一层卷积层
迁移模型
import tensorflow as tf
from tensorflow import kerasbase_model = keras.applications.VGG19(weights='imagenet')
base_model.summary()
自建模型
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers, models, Input
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, Flatten, Dropoutdef VGG19(nb_classes, input_shape):input_tensor = Input(shape=input_shape)# 1st blockx = Conv2D(64, (3,3), activation='relu', padding='same',name='conv1a')(input_tensor)x = Conv2D(64, (3,3), activation='relu', padding='same',name='conv1b')(x)x = MaxPooling2D((2,2), strides=(2,2), name = 'pool1')(x)# 2nd blockx = Conv2D(128, (3,3), activation='relu', padding='same',name='conv2a')(x)x = Conv2D(128, (3,3), activation='relu', padding='same',name='conv2b')(x)x = MaxPooling2D((2,2), strides=(2,2), name = 'pool2')(x)# 3rd blockx = Conv2D(256, (3,3), activation='relu', padding='same',name='conv3a')(x)x = Conv2D(256, (3,3), activation='relu', padding='same',name='conv3b')(x)x = Conv2D(256, (3,3), activation='relu', padding='same',name='conv3c')(x)x = Conv2D(256, (3,3), activation='relu', padding='same',name='conv3d')(x)x = MaxPooling2D((2,2), strides=(2,2), name = 'pool3')(x)# 4th blockx = Conv2D(512, (3,3), activation='relu', padding='same',name='conv4a')(x)x = Conv2D(512, (3,3), activation='relu', padding='same',name='conv4b')(x)x = Conv2D(512, (3,3), activation='relu', padding='same',name='conv4c')(x)x = Conv2D(512, (3,3), activation='relu', padding='same',name='conv4d')(x)x = MaxPooling2D((2,2), strides=(2,2), name = 'pool4')(x)# 5th blockx = Conv2D(512, (3,3), activation='relu', padding='same',name='conv5a')(x)x = Conv2D(512, (3,3), activation='relu', padding='same',name='conv5b')(x)x = Conv2D(512, (3,3), activation='relu', padding='same',name='conv5c')(x)x = Conv2D(512, (3,3), activation='relu', padding='same',name='conv5d')(x)x = MaxPooling2D((2,2), strides=(2,2), name = 'pool5')(x)# full connectionx = Flatten()(x)x = Dense(4096, activation='relu', name='fc6')(x)# x = Dropout(0.5)(x)x = Dense(4096, activation='relu', name='fc7')(x)# x = Dropout(0.5)(x)output_tensor = Dense(nb_classes, activation='softmax', name='fc8')(x)model = Model(input_tensor, output_tensor)return modelmodel=VGG19(1000, (224, 224, 3))
model.summary()
tensorflow2.0 Keras VGG16 VGG19 系列 代码实现相关推荐
- Tensorflow2.0(Keras)转换TFlite
Tensorflow 2.0(Keras)转换TFlite 目录 Tensorflow 2.0(Keras)转换TFlite 1. TensorFlow Lite 指南 (1)TensorFlow L ...
- TensorFlow2.0: keras.metrics的使用
keras.metrics中有两个api函数可以简化准确率acc和损失值loss的计算.其分别是metrics.Accuracy( )和metrics.Mean( ). 一.建立测量尺 #建立测量尺 ...
- TensorFlow2.0 Keras多层感知器模型imdb情感分类
# 下载 import urllib.request import os import tarfileurl = 'http://ai.stanford.edu/~amaas/data/sentime ...
- 【tensorflow2.0】34.word2vec作业代码
#没有包的可以先下载 pip install gensim pip install jiebaimport pandas as pd import numpy as np from gensim.mo ...
- TensorFlow2.0 Guide官方教程 学习笔记20 -‘Effective TensorFlow 2‘
本笔记参照TensorFlow Guide官方教程,主要是对'Effictive TensorFlow 2'教程内容翻译和内容结构编排,原文链接:Effictive TensorFlow 2 高效的T ...
- 利用TensorFlow2.0为胆固醇、血脂、血压数据构建时序深度学习模型(python完整源代码)
背景数据描述 胆固醇.高血脂.高血压是压在广大中年男性头上的三座大山,如何有效的监控他们,做到早发现.早预防.早治疗尤为关键,趁着这个假期我就利用TF2.0构建了一套时序预测模型,一来是可以帮我预发疾 ...
- 【TensorFlow2.0】数据读取与使用方式
大家好,这是专栏<TensorFlow2.0>的第三篇文章,讲述如何使用TensorFlow2.0读取和使用自己的数据集. 如果您正在学习计算机视觉,无论你通过书籍还是视频学习,大部分的教 ...
- tensorflow2.0 GPU 版本安装测试教程及新特性初探
安装与测试 TensorFlow2.0安装: pip install tensorflow-gpu==2.2.0 -i https://pypi.douban.com/simple/ conda in ...
- 人工智能实践:Tensorflow2.0笔记 北京大学MOOC(2-1)
人工智能实践:Tensorflow2.0笔记 北京大学MOOC(2-1) 说明 一.神经网络的优化 1. 神经网络复杂度 2. 学习率策略 2.1 学习率概念回顾 2.2 动态调整学习率 2.2.1 ...
最新文章
- matlab 罗盘图与羽毛图
- protobuf和thrift对比
- 天翼云从业认证(2.3)云计算的价值和核心技术。
- uploadify在火狐下上传不了的解决方案,java版(Spring+SpringMVC+MyBatis)详细解决方案
- Exadata上oracle binary的make日志
- 为什么要有周考?周考是用来干什么的?
- linux多用户运行同一程序_linux系统中CentOS有哪些优势,让它长盛不衰?
- python 企业微信群机器人_企业微信群机器人应用:使用python从网站抓取行业资讯并定时推送...
- 大数据分析中常见的分析模型
- [译]Chipmunk教程 - 5 跟踪球体的运动
- 《数字电子技术基础》4.3 若干常用的组合逻辑电路 学习笔记
- 误将系统装入D盘 原来数据如何恢复
- python实现bt下载器_使用Python实现BT种子和磁力链接的相互转换
- google map 谷歌地图 更改当前定位图标icon大头钉小蓝点
- PHP阅读文章送积分规则代码,php实现微信公众号文章付费阅读功能的代码分享
- vue中使用CSS预处理器
- kali虚拟机安装提示安装系统步骤失败
- 多媒体元素 video audio 兼容性 controls muted loop
- BUUCTF 每日打卡 2021-4-14
- HTML练习—东风破