Firsh Push at 20241207
This commit is contained in:
298
experiments/topic_model.py
Normal file
298
experiments/topic_model.py
Normal file
@@ -0,0 +1,298 @@
|
||||
from convolution_model_tools.convolution_2D_tools import model_2D_tool
|
||||
from dense_model_tools.dense_tools import model_Dense_Layer
|
||||
from all_models_tools.all_model_tools import add_optimizers_function, add_Activative, add_dropout, call_back
|
||||
from keras.activations import softmax, sigmoid
|
||||
from keras.applications import VGG19, ResNet50, NASNetLarge, DenseNet201, Xception
|
||||
from keras.applications.efficientnet_v2 import EfficientNetV2L
|
||||
from keras.layers import BatchNormalization, Flatten, GlobalAveragePooling2D, MaxPooling2D, Dense, Conv2D, Dropout, TimeDistributed, LSTM, Input
|
||||
from keras import regularizers
|
||||
|
||||
def one_layer_cnn_model():
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
|
||||
img_Input = tools.add_2D_input()
|
||||
x = tools.add_Convolution2D(img_Input, 32)
|
||||
x = add_Activative(x)
|
||||
x = tools.add_MaxPooling(x)
|
||||
|
||||
x = tools.add_Convolution2D(x, 64)
|
||||
x = add_Activative(x)
|
||||
x = tools.add_MaxPooling(x)
|
||||
|
||||
flatter = tools.add_flatten(x)
|
||||
|
||||
dense = dense_tool.add_dense(64, flatter)
|
||||
dense = add_Activative(dense)
|
||||
dense = dense_tool.add_dense(32, dense)
|
||||
dense = add_Activative(dense)
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, softmax)
|
||||
return img_Input, dense
|
||||
|
||||
def find_example_cnn_model():
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
|
||||
img_Input = tools.add_2D_input()
|
||||
|
||||
x = tools.add_Convolution2D(img_Input, 16)
|
||||
x = add_Activative(x)
|
||||
x = add_dropout(x, 0.25)
|
||||
|
||||
x = tools.add_Convolution2D(x, 32)
|
||||
x = add_Activative(x)
|
||||
x = add_dropout(x, 0.25)
|
||||
|
||||
x = tools.add_MaxPooling(x)
|
||||
|
||||
x = tools.add_Convolution2D(x, 64)
|
||||
x = add_Activative(x)
|
||||
x = add_dropout(x, 0.25)
|
||||
|
||||
x = tools.add_MaxPooling(x)
|
||||
|
||||
x = tools.add_Convolution2D(x, 128)
|
||||
x = add_Activative(x)
|
||||
x = add_dropout(x, 0.25)
|
||||
|
||||
x = tools.add_MaxPooling(x)
|
||||
|
||||
flatter = tools.add_flatten(x)
|
||||
|
||||
dense = dense_tool.add_dense(64, flatter)
|
||||
dense = add_Activative(dense)
|
||||
dense = add_dropout(dense, 0.25)
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, sigmoid)
|
||||
|
||||
return img_Input, dense
|
||||
|
||||
def change_example_cnn_model():
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
|
||||
img_Input = tools.add_2D_input()
|
||||
|
||||
x = tools.add_Convolution2D(img_Input, 16)
|
||||
x = add_Activative(x)
|
||||
x = tools.add_batchnomlization(x)
|
||||
|
||||
x = tools.add_Convolution2D(x, 32)
|
||||
x = add_Activative(x)
|
||||
x = tools.add_batchnomlization(x)
|
||||
|
||||
x = tools.add_MaxPooling(x)
|
||||
|
||||
x = tools.add_Convolution2D(x, 64)
|
||||
x = add_Activative(x)
|
||||
x = tools.add_batchnomlization(x)
|
||||
|
||||
x = tools.add_MaxPooling(x)
|
||||
|
||||
x = tools.add_Convolution2D(x, 128)
|
||||
x = add_Activative(x)
|
||||
x = tools.add_batchnomlization(x)
|
||||
|
||||
x = tools.add_MaxPooling(x)
|
||||
|
||||
flatter = tools.add_flatten(x)
|
||||
|
||||
dense = dense_tool.add_dense(64, flatter)
|
||||
dense = add_Activative(dense)
|
||||
dense = add_dropout(dense, 0.3)
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, softmax)
|
||||
|
||||
return img_Input, dense
|
||||
|
||||
def two_convolution_cnn_model():
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
|
||||
img_Input = tools.add_2D_input()
|
||||
x = tools.add_two_floors_convolution2D(img_Input, 32)
|
||||
x = tools.add_MaxPooling(x)
|
||||
|
||||
x = tools.add_two_floors_convolution2D(x, 64)
|
||||
x = tools.add_MaxPooling(x)
|
||||
|
||||
flatter = tools.add_flatten(x)
|
||||
|
||||
dense = dense_tool.add_dense(64, flatter)
|
||||
dense = add_Activative(dense)
|
||||
dense = dense_tool.add_dense(32, dense)
|
||||
dense = add_Activative(dense)
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, softmax)
|
||||
return img_Input, dense
|
||||
|
||||
def VGG19_model():
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
|
||||
vgg19 = VGG19(include_top = False, weights = "imagenet", input_shape = (120, 120, 3))
|
||||
flatten = tools.add_flatten(vgg19.output)
|
||||
dense = dense_tool.add_dense(64, flatten)
|
||||
dense = add_Activative(dense)
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, softmax)
|
||||
|
||||
return vgg19, dense
|
||||
|
||||
def Resnet50_model():
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
|
||||
vgg19 = ResNet50(include_top = False, weights = "imagenet", input_shape = (120, 120, 3))
|
||||
flatten = tools.add_flatten(vgg19.output)
|
||||
dense = dense_tool.add_dense(64, flatten)
|
||||
dense = add_Activative(dense)
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, softmax)
|
||||
|
||||
return vgg19, dense
|
||||
|
||||
def DenseNet201_model():
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
|
||||
Densenet201 = DenseNet201(include_top = False, weights = "imagenet", input_shape = (120, 120, 3))
|
||||
flatten = tools.add_flatten(Densenet201.output)
|
||||
dense = dense_tool.add_dense(64, flatten)
|
||||
dense = add_Activative(dense)
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, softmax)
|
||||
|
||||
return Densenet201, dense
|
||||
|
||||
def Xception_model():
|
||||
xception = Xception(include_top = False, weights = "imagenet", input_shape = (120, 120, 3))
|
||||
flatten = Flatten()(xception.output)
|
||||
dense = Dense(units = 64, activation = "relu")(flatten)
|
||||
dense = Dense(units = 7, activation = "softmax")(dense)
|
||||
|
||||
return xception, dense
|
||||
|
||||
def cnn_LSTM():
|
||||
head = Input(shape = (150, 150, 3))
|
||||
inputs = Conv2D(filters = 64, strides = 1, kernel_size = (3, 3), padding = "same", activation = "relu")(head)
|
||||
inputs = Conv2D(filters = 64, strides = 1, kernel_size = (3, 3), padding = "same", activation = "relu")(inputs)
|
||||
inputs = MaxPooling2D(strides = 2, pool_size = (2, 2))(inputs)
|
||||
inputs = Dropout(0.25)(inputs)
|
||||
|
||||
inputs = Conv2D(filters = 128, strides = 1, kernel_size = (3, 3), padding = "same", activation = "relu")(inputs)
|
||||
inputs = Conv2D(filters = 128, strides = 1, kernel_size = (3, 3), padding = "same", activation = "relu")(inputs)
|
||||
inputs = MaxPooling2D(strides = 2, pool_size = (2, 2))(inputs)
|
||||
inputs = Dropout(0.25)(inputs)
|
||||
|
||||
inputs = Conv2D(filters = 256, strides = 1, kernel_size = (3, 3), padding = "same", activation = "relu")(inputs)
|
||||
inputs = Conv2D(filters = 256, strides = 1, kernel_size = (3, 3), padding = "same", activation = "relu")(inputs)
|
||||
inputs = MaxPooling2D(strides = 2, pool_size = (2, 2))(inputs)
|
||||
inputs = Dropout(0.25)(inputs)
|
||||
|
||||
inputs = Conv2D(filters = 512, strides = 1, kernel_size = (3, 3), padding = "same", activation = "relu")(inputs)
|
||||
inputs = Conv2D(filters = 512, strides = 1, kernel_size = (3, 3), padding = "same", activation = "relu")(inputs)
|
||||
inputs = Conv2D(filters = 512, strides = 1, kernel_size = (3, 3), padding = "same", activation = "relu")(inputs)
|
||||
inputs = MaxPooling2D(strides = 2, pool_size = (2, 2))(inputs)
|
||||
inputs = Dropout(0.25)(inputs)
|
||||
|
||||
inputs = Conv2D(filters = 512, strides = 1, kernel_size = (3, 3), padding = "same", activation = "relu")(inputs)
|
||||
inputs = Conv2D(filters = 512, strides = 1, kernel_size = (3, 3), padding = "same", activation = "relu")(inputs)
|
||||
inputs = Conv2D(filters = 512, strides = 1, kernel_size = (3, 3), padding = "same", activation = "relu")(inputs)
|
||||
inputs = MaxPooling2D(strides = 2, pool_size = (2, 2))(inputs)
|
||||
inputs = Dropout(0.25)(inputs)
|
||||
inputs = TimeDistributed(Flatten())(inputs)
|
||||
|
||||
inputs = LSTM(units = 49)(inputs)
|
||||
inputs = Dense(units = 64)(inputs)
|
||||
output = Dense(units = 7, activation = "softmax")(inputs)
|
||||
|
||||
return head, output
|
||||
|
||||
def add_regularizers_L1(): # 比較正規化
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
|
||||
Resnet50 = ResNet50(include_top = False, weights = "imagenet", input_shape = (120, 120, 3))
|
||||
flatten = tools.add_flatten(Resnet50.output)
|
||||
dense = dense_tool.add_regularizer_dense(64, flatten, regularizers.L1())
|
||||
dense = add_Activative(dense)
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, softmax)
|
||||
|
||||
return Resnet50, dense
|
||||
|
||||
def add_regularizers_L2(): # 比較正規化
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
|
||||
Resnet50 = ResNet50(include_top = False, weights = "imagenet", input_shape = (120, 120, 3))
|
||||
flatten = tools.add_flatten(Resnet50.output)
|
||||
dense = dense_tool.add_regularizer_dense(64, flatten, regularizers.L2())
|
||||
dense = add_Activative(dense)
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, softmax)
|
||||
|
||||
return Resnet50, dense
|
||||
|
||||
def add_regularizers_L1L2(): # 比較正規化
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
|
||||
Resnet50 = ResNet50(include_top = False, weights = "imagenet", input_shape = (120, 120, 3))
|
||||
flatten = tools.add_flatten(Resnet50.output)
|
||||
dense = dense_tool.add_regularizer_dense(64, flatten, regularizers.L1L2())
|
||||
dense = add_Activative(dense)
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, softmax)
|
||||
|
||||
return Resnet50, dense
|
||||
|
||||
def add_layers1_L2(Dense_layers): # 比較正規化
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
layers = 32
|
||||
|
||||
Densenet201 = DenseNet201(include_top = False, weights = "imagenet", input_shape = (120, 120, 3))
|
||||
flatten = tools.add_flatten(Densenet201.output)
|
||||
|
||||
for layer in range(Dense_layers):
|
||||
dense = dense_tool.add_regularizer_kernel_dense(unit = layers, input_data = flatten, regularizer = regularizers.L2())
|
||||
dense = add_Activative(dense)
|
||||
layers *= 2
|
||||
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, softmax)
|
||||
|
||||
return Densenet201, dense
|
||||
|
||||
def add_layers_another_L2(Dense_layers, layers): # 比較正規化
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
|
||||
Densenet201 = DenseNet201(include_top = False, weights = "imagenet", input_shape = (120, 120, 3))
|
||||
flatten = tools.add_flatten(Densenet201.output)
|
||||
|
||||
for layer in range(Dense_layers):
|
||||
dense = dense_tool.add_regularizer_dense(unit = layers, input_data = flatten, regularizer = regularizers.L2())
|
||||
dense = add_Activative(dense)
|
||||
layers /= 2
|
||||
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, softmax)
|
||||
|
||||
return Densenet201, dense
|
||||
|
||||
def add_bias_regularizers(): # 比較正規化
|
||||
tools = model_2D_tool()
|
||||
dense_tool = model_Dense_Layer()
|
||||
|
||||
Resnet50 = ResNet50(include_top = False, weights = "imagenet", input_shape = (120, 120, 3))
|
||||
flatten = tools.add_flatten(Resnet50.output)
|
||||
dense = dense_tool.add_regularizer_bias_dense(64, flatten, regularizers.L2())
|
||||
dense = add_Activative(dense)
|
||||
dense = dense_tool.add_dense(7, dense)
|
||||
dense = add_Activative(dense, softmax)
|
||||
|
||||
return Resnet50, dense
|
||||
Reference in New Issue
Block a user