Skip to main content

Deep learning model adapter, used to quickly create various deep learning models.

Project description

image ZWell-model

introduce

A deep learning model library that supports various deep network models and transformations to libraries such as Keras. With this tool, it is easy to construct neural network objects that can be used for any API, saving additional API learning time.

Acquisition method

通过 pip 工具进行库的安装,也可以通过GitHub中的源码手动装载。

pip install zWell-model

Current developments

这里展示的是当前 zWell-model 支持的深度学习模型,以及其支持接入的第三方库等更详细的情况。

Neural Network Name by reference Support access to keras Supported version
Basic Convolutional First Edition zWell_model.ConvNetV1 yes v0.0.1.20230514
Basic Convolutional Second Edition zWell_model.ConvNetV2 yes v0.0.1.20230514
Residual Neural Network First Edition zWell_model.ResNetV1 yes v0.0.1.20230514
Dense Neural Network First Edition zWell_model.DenseNetV1 yes v0.0.2.20230528

Usage examples

There are many neural network implementations in this library that support conversion to various library model objects. The following are relevant examples.

Basic Convolutional Neural Networks

The basic convolutional neural network contains the most basic network structure, which compromises learning speed and accuracy, and has two versions in total.

first edition

A convolutional neural network with learning speed as its main core can improve learning speed for a large amount of data with almost identical features.

import zWell_model

# Obtaining the first type of convolutional neural network
resNet = zWell_model.ConvNetV1(
    # The number of additional convolutional layers to be added above the specified infrastructure is 4. TODO defaults to 1
    model_layers_num=4,
    # Specify the step size in the four convolutional layers
    stride=[1, 2, 1, 2],
    # Specify the input dimension of convolutional neural networks
    input_shape=(None, 32, 32, 3),
    # Specify classification quantity
    classes=10
)

Second Edition

The convolutional neural network, whose core is learning speed and preventing overfitting, can improve learning speed and model accuracy for a large number of data with diversified features.

import zWell_model

# Obtaining the second type of convolutional neural network
resNet = zWell_model.ConvNetV2(
    # The number of additional convolutional layers to be added above the specified infrastructure is 1. TODO defaults to 1
    model_layers_num=1,
    # Specify the step size in the one convolutional layers
    stride=[1],
    # Specify the input dimension of convolutional neural networks
    input_shape=(32, 32, 3),
    # Specify classification quantity
    classes=10
)

Example of using basic convolutional neural networks

What is displayed here is the operation of converting the basic convolutional neural network series into models in Keras and calling them.

# This is an example Python script.
import numpy as np
from keras.datasets import cifar10
from keras.optimizers import Adam
from livelossplot import PlotLossesKeras

import zWell_model

# Obtaining a dataset
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
# Data standardization and dimension expansion
x_train = x_train.astype(np.float32).reshape(-1, 32, 32, 3) / 255.
x_test = x_test.astype(np.float32).reshape(-1, 32, 32, 3) / 255.

# Obtaining the second type of convolutional neural network
resNet = zWell_model.ConvNetV2(
    # The number of additional convolutional layers to be added above the specified infrastructure is 1. TODO defaults to 1
    model_layers_num=1,
    # Specify the step size in the one convolutional layers
    stride=[1],
    # Specify the input dimension of convolutional neural networks
    input_shape=(32, 32, 3),
    # Specify classification quantity
    classes=10
)

# Converting to the network model of Keras
model = resNet.to_keras_model()
model.summary()

# Start building the model
model.compile(
    loss='sparse_categorical_crossentropy',
    optimizer=Adam(learning_rate=0.001),
    metrics=['acc']
)

# Start training the model
model.fit(
    x=x_train, y=y_train,
    validation_data=(x_test, y_test),
    batch_size=32, epochs=30,
    callbacks=[PlotLossesKeras()],
    verbose=1
)

Residual neural network

You can obtain the general object of the residual neural network object from ZWell model in the following way.

import zWell_model

# Obtaining residual neural network
resNet = zWell_model.ResNetV1(
    # Specify the number of residual blocks as 4 TODO defaults to 4
    model_layers_num=4,
    # Specify the number of output channels in the four residual blocks
    k=[12, 12, 12, 12],
    # Specify the step size in the four residual blocks
    stride=[1, 2, 1, 2],
    # Specify the input dimension of the residual neural network
    input_shape=(32, 32, 3),
    # Specify classification quantity
    classes=10
)

Directly convert the obtained residual neural network object into a neural network model object in Keras, enabling it to be supported by Keras.

# This is an example Python script.
import numpy as np
from keras.datasets import cifar10
from keras.optimizers import Adam
from livelossplot import PlotLossesKeras

import zWell_model

# Obtaining a dataset
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
# data standardization
x_train, x_test = x_train.astype(np.float32) / 255., x_test.astype(np.float32) / 255.

# Obtaining residual neural network
resNet = zWell_model.ResNetV1(
    # Specify the number of residual blocks as 4 TODO defaults to 4
    model_layers_num=4,
    # Specify the number of output channels in the four residual blocks
    k=[12, 12, 12, 12],
    # Specify the step size in the four residual blocks
    stride=[1, 2, 1, 2],
    # Specify the input dimension of the residual neural network
    input_shape=(32, 32, 3),
    # Specify classification quantity
    classes=10
)

# Converting to the network model of Keras
model = resNet.to_keras_model()
model.summary()

# Start building the model
model.compile(
    loss='sparse_categorical_crossentropy',
    optimizer=Adam(learning_rate=0.001),
    metrics=['acc']
)

# Start training the model
model.fit(
    x=x_train, y=y_train,
    validation_data=(x_test, y_test),
    batch_size=32, epochs=30,
    callbacks=[PlotLossesKeras()],
    verbose=1
)

稠密神经网络

You can obtain dense neural network models from the ZWell mode library in the following way.

import zWell_model

# Obtaining dense neural networks
resNet = zWell_model.dense_net1.DenseNetV1(
    # Specify the number of dense blocks as 3 TODO defaults to 4
    model_layers_num=3,
    # Specify the convolution step size in the transition layer after 2 dense blocks
    stride=[1, 1, 1],
    # Specify the input dimension of a dense neural network
    input_shape=(32, 32, 3),
    #     # Specify classification quantity
    classes=10
)

Convert the obtained dense neural network object into a deep neural network object in the Keras library.

# This is an example Python script.
import numpy as np
from keras.datasets import cifar10
from keras.optimizers import Adam
from livelossplot import PlotLossesKeras

import zWell_model

# Obtaining a dataset
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
# data standardization
x_train, x_test = x_train.astype(np.float32) / 255., x_test.astype(np.float32) / 255.

# Obtaining dense neural networks
resNet = zWell_model.dense_net1.DenseNetV1(
    # Specify the number of dense blocks as 3 TODO defaults to 4
    model_layers_num=3,
    # Specify the convolution step size in the transition layer after 2 dense blocks
    stride=[1, 1, 1],
    # Specify the input dimension of a dense neural network
    input_shape=(32, 32, 3),
    #     # Specify classification quantity
    classes=10
)

print(resNet)

# Converting to the network model of Keras
model = resNet.to_keras_model()
model.summary()

# Start building the model
model.compile(
    loss='sparse_categorical_crossentropy',
    optimizer=Adam(learning_rate=0.001),
    metrics=['acc']
)

# Start training the model
model.fit(
    x=x_train, y=y_train,
    validation_data=(x_test, y_test),
    batch_size=32, epochs=30,
    callbacks=[PlotLossesKeras()],
    verbose=1
)

More Actions

Using abbreviations to obtain neural networks

Starting from version 0.0.2, we can use model aliases to obtain model classes, which are beneficial for simple model instantiation and reduce code load. Different model abbreviations and instantiation operations are shown below.

Original name of the model Model abbreviation
ConvNetV1 Cnn1
ConvNetV2 Cnn2
ResNetV1 RCnn1
DenseNetV1 Dn1
# This is an example Python script.
import zWell_model as zModel
from zWell_model.allModel import AllModel

# Here, the model object of ConvNetV1 was obtained through abbreviation 
# TODO Cnn1 is an abbreviation
z_model: AllModel = zModel.Cnn1(
    # The number of additional convolutional layers to be added above the specified infrastructure is 4. TODO defaults to 1
    model_layers_num=4,
    # Specify the step size in the four convolutional layers
    stride=[1, 2, 1, 2],
    # Specify the input dimension of convolutional neural networks
    input_shape=(None, 32, 32, 3),
    # Specify classification quantity
    classes=10
)
print(z_model)
print(z_model.to_keras_model())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zWell_model-0.0.2.20230528.tar.gz (16.7 kB view details)

Uploaded Source

Built Distribution

zWell_model-0.0.2.20230528-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file zWell_model-0.0.2.20230528.tar.gz.

File metadata

  • Download URL: zWell_model-0.0.2.20230528.tar.gz
  • Upload date:
  • Size: 16.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for zWell_model-0.0.2.20230528.tar.gz
Algorithm Hash digest
SHA256 55245b57d749f870422846edb8ddc1f28bf0a084832b7316c5ae10ca678dc453
MD5 f6c61c7d154264ea0d64fea4ae98e8f5
BLAKE2b-256 c9db71160d89dc6e021da43ba0350cdadd7dab33ff84632438a7338332465782

See more details on using hashes here.

File details

Details for the file zWell_model-0.0.2.20230528-py3-none-any.whl.

File metadata

File hashes

Hashes for zWell_model-0.0.2.20230528-py3-none-any.whl
Algorithm Hash digest
SHA256 cb3b5dbe8553825154f9b627aaa823307c3214b2a1e53913a94929c91017e775
MD5 70724b98ca4835426730026504584f2d
BLAKE2b-256 e57b31c0de2b3d9387f8efa76e987abceef71b7356691bf41e2fb4fbeb2e4ff4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page