DarknetTiny模型结构
生活随笔
收集整理的這篇文章主要介紹了
DarknetTiny模型结构
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
darknet 是yolov3 里用的模型,如下是是其模型結(jié)構(gòu)
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Mon Jun 7 13:40:34 2021@author: ledi """import numpy as np import tensorflow as tf from tensorflow.keras import Model from tensorflow.keras.layers import (Add,Concatenate,Conv2D,Input,Lambda,LeakyReLU,MaxPool2D,UpSampling2D,ZeroPadding2D,BatchNormalization, ) from tensorflow.keras.regularizers import l2 from tensorflow.keras.losses import (binary_crossentropy,sparse_categorical_crossentropy )def DarknetConv(x, filters, size, strides=1, batch_norm=True):if strides == 1:padding = 'same'else:x = ZeroPadding2D(((1, 0), (1, 0)))(x) # top left half-paddingpadding = 'valid'x = Conv2D(filters=filters, kernel_size=size,strides=strides, padding=padding,use_bias=not batch_norm, kernel_regularizer=l2(0.0005))(x)if batch_norm:x = BatchNormalization()(x)x = LeakyReLU(alpha=0.1)(x)return xdef DarknetResidual(x, filters):prev = xx = DarknetConv(x, filters // 2, 1)x = DarknetConv(x, filters, 3)x = Add()([prev, x])return xdef DarknetBlock(x, filters, blocks):x = DarknetConv(x, filters, 3, strides=2)for _ in range(blocks):x = DarknetResidual(x, filters)return xdef Darknet(name=None):x = inputs = Input([None, None, 3])x = DarknetConv(x, 32, 3)x = DarknetBlock(x, 64, 1)x = DarknetBlock(x, 128, 2) # skip connectionx = x_36 = DarknetBlock(x, 256, 8) # skip connectionx = x_61 = DarknetBlock(x, 512, 8)x = DarknetBlock(x, 1024, 4)return tf.keras.Model(inputs, (x_36, x_61, x), name=name)def DarknetTiny(name=None):x = inputs = Input([None, None, 3])x = DarknetConv(x, 16, 3)x = MaxPool2D(2, 2, 'same')(x)x = DarknetConv(x, 32, 3)x = MaxPool2D(2, 2, 'same')(x)x = DarknetConv(x, 64, 3)x = MaxPool2D(2, 2, 'same')(x)x = DarknetConv(x, 128, 3)x = MaxPool2D(2, 2, 'same')(x)x = x_8 = DarknetConv(x, 256, 3) # skip connectionx = MaxPool2D(2, 2, 'same')(x)x = DarknetConv(x, 512, 3)x = MaxPool2D(2, 1, 'same')(x)x = DarknetConv(x, 1024, 3)return tf.keras.Model(inputs, (x_8, x), name=name)model=DarknetTiny(name=None)from keras.utils import plot_model plot_model(model, to_file='darknet.png')總結(jié)
以上是生活随笔為你收集整理的DarknetTiny模型结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wordpress更新时需要ftp的解决
- 下一篇: tensorflow-TFRecord