Paper
- Densely Connected Convolutional Network(CVPR 2017, Best Paper Award)
GitHub
Documentation
Python 3.5-3.7
TensorFlow 2.x
bottleneck = False and compression = 1.0
import tensorflow.keras.layers as L
from tensorflow.keras.models import Model
from densenet import DenseNet
densenet = DenseNet([1, 2, 3], 12)
x = L.Input((32, 32, 3))
y = densenet(x, bottleneck=False, compression=1.0, dataset=None)
y = L.Dense(10, activation="softmax")(y)
model = Model(inputs=x, outputs=y)
model.summary()bottleneck = True
import tensorflow.keras.layers as L
from tensorflow.keras.models import Model
from densenet import DenseNet
densenet = DenseNet([1, 2, 3], 12)
x = L.Input((32, 32, 3))
y = densenet(x, bottleneck=True, compression=1.0, dataset=None)
y = L.Dense(10, activation="softmax")(y)
model = Model(inputs=x, outputs=y)
model.summary()0 < compression < 1
import tensorflow.keras.layers as L
from tensorflow.keras.models import Model
from densenet import DenseNet
densenet = DenseNet([1, 2, 3], 12)
x = L.Input((32, 32, 3))
y = densenet(x, bottleneck=False, compression=0.5, dataset=None)
y = L.Dense(10, activation="softmax")(y)
model = Model(inputs=x, outputs=y)
model.summary()bottleneck = True and 0 < compression < 1
import tensorflow.keras.layers as L
from tensorflow.keras.models import Model
from densenet import DenseNet
densenet = DenseNet([1, 2, 3], 12)
x = L.Input((32, 32, 3))
y = densenet(x, bottleneck=True, compression=0.5, dataset=None)
y = L.Dense(10, activation="softmax")(y)
model = Model(inputs=x, outputs=y)
model.summary()import tensorflow.keras.layers as L
from tensorflow.keras.models import Model
from densenet import DenseNet
densenet = DenseNet([6, 12, 24, 16], 32, use_bias=False)
x = L.Input((224, 224, 3))
y = densenet(x, dataset="imagenet")
y = L.Dense(1000, activation="softmax")(y)
model = Model(inputs=x, outputs=y)
model.summary()This model is equal to DenseNet121 of the keras applications.
from tensorflow.keras.applications.densenet import DenseNet121
dense121 = DenseNet121(include_top=True, weights="imagenet",
input_tensor=None, input_shape=None,
pooling=None, classes=1000)
dense121.save_weights("weights.h5")
model.load_weights("weights.h5")import tensorflow.keras.layers as L
from tensorflow.keras.models import Model
from densenet import DenseNet
densenet = DenseNet([6, 12, 32, 32], 32, use_bias=False)
x = L.Input((224, 224, 3))
y = densenet(x, dataset="imagenet")
y = L.Dense(1000, activation="softmax")(y)
model = Model(inputs=x, outputs=y)
model.summary()This model is equal to DenseNet169 of the keras applications.
from tensorflow.keras.applications.densenet import DenseNet169
densenet169 = DenseNet169(include_top=True, weights="imagenet",
input_tensor=None, input_shape=None,
pooling=None, classes=1000)
densenet169.save_weights("weights.h5")
model.load_weights("weights.h5")import tensorflow.keras.layers as L
from tensorflow.keras.models import Model
from densenet import DenseNet
densenet = DenseNet([6, 12, 48, 32], 32, use_bias=False)
x = L.Input((224, 224, 3))
y = densenet(x, dataset="imagenet")
y = L.Dense(1000, activation="softmax")(y)
model = Model(inputs=x, outputs=y)
model.summary()This model is equal to DenseNet201 of the keras applications.
from tensorflow.keras.applications.densenet import DenseNet201
densenet201 = DenseNet201(include_top=True, weights="imagenet",
input_tensor=None, input_shape=None,
pooling=None, classes=1000)
densenet201.save_weights("weights.h5")
model.load_weights("weights.h5")The MIT License.