Example #1
0
def modelo():
    vgg = applications.vgg16.VGG16()

    cnn = Sequential()
    for capa in vgg.layers:
        cnn.add(capa)

    cnn.pop()
    for layer in cnn.layers:
        layer.trainable = False

    cnn.add(Dense(11, activation='softmax'))

    return cnn
Example #2
0
def createVGG19Model():

    ## Iniciacion de la red VGG19 y de una red sequencial.
    vgg19Model = vgg19.VGG19()
    sequentialModel = Sequential()

    ## Añadidas todas las capas de la red neuronal VGG19 a la red sequencial para poder trabajar con ella.
    for capa in vgg19Model.layers:
        sequentialModel.add(capa)

    ## Extraccion de la ultima capa del modelo, la capa predictiva.
    sequentialModel.pop()

    ## Al tratarse de un modelo prentrenado, evitamos que posteriormente se vuelva a entrenar, ahorrandonos mucho tiempo.
    for capa in sequentialModel.layers:
        capa.trainable = False

    ## Finalmente añadimos una capa de decision con dos neuronas y una funcion de activacion softmax.
    sequentialModel.add(Dense(2, activation='softmax'))

    ## Devolvemos el modelo personalizado.
    return sequentialModel
Example #3
0
#Creación VGG16 propia denominada cnn_micro
cnn_micro=Sequential()
for capa in vgg.layers:
    cnn_micro.add (capa)


# In[5]:


cnn_micro.summary()


# In[6]:


cnn_micro.pop()


# In[7]:


cnn_micro.summary()


# In[8]:


#Las capas ya entrenadas de la VGG16 no vuelven a entrenarse para reutilizar el entrenamiento en la segmentación y detección de las imágenes en bruto
for layer in cnn_micro.layers:
    layer.trainable=False 
Example #4
0
clases = 3

#with CustomObjectScope({'GlorotUniform': glorot_uniform()}):
#        cnn = load_model(modelo)

#cnn = load_model(modelo) #cargamos los archivos que generamos para poder reutilizar nuestra red neuronal
#cnn.load_weights(pesos_modelo)

#model = InceptionV3(weights='imagenet', include_top=True)

#original
vgg = applications.vgg16.VGG16()
cnn = Sequential()
for capa in vgg.layers:
    cnn.add(capa)
cnn.pop()
for layer in cnn.layers:
    layer.trainable = False
cnn.add(Dense(clases, activation='softmax'))
cnn.load_weights(
    pesos_modelo
)  # Cargamos todo el Aprendizaje ya hecho por nuestra red neuronal en variable cnn
# a partir de aqui , def Predict (file) ............
'''
with CustomObjectScope({'GlorotUniform': glorot_uniform()}):
        cnn = load_model(modelo)


cnn.load_weights(pesos_modelo)
'''
Example #5
0
def VGG_16(spatial_size,
           classes,
           channels,
           channel_first=True,
           weights_path=None):
    model = Sequential()
    if channel_first:
        model.add(
            ZeroPadding2D((1, 1),
                          input_shape=(channels, spatial_size, spatial_size)))
    else:
        model.add(
            ZeroPadding2D((1, 1),
                          input_shape=(spatial_size, spatial_size, channels)))

    model.add(Conv2D(64, (3, 3), activation='relu'))
    model.add(ZeroPadding2D((1, 1)))
    model.add(Conv2D(64, (3, 3), activation='relu'))
    model.add(MaxPooling2D((2, 2), strides=(2, 2)))

    model.add(ZeroPadding2D((1, 1)))
    model.add(Conv2D(128, (3, 3), activation='relu'))
    model.add(ZeroPadding2D((1, 1)))
    model.add(Conv2D(128, (3, 3), activation='relu'))
    model.add(MaxPooling2D((2, 2), strides=(2, 2)))

    model.add(ZeroPadding2D((1, 1)))
    model.add(Conv2D(256, (3, 3), activation='relu'))
    model.add(ZeroPadding2D((1, 1)))
    model.add(Conv2D(256, (3, 3), activation='relu'))
    model.add(ZeroPadding2D((1, 1)))
    model.add(Conv2D(256, (3, 3), activation='relu'))
    model.add(MaxPooling2D((2, 2), strides=(2, 2)))

    model.add(ZeroPadding2D((1, 1)))
    model.add(Conv2D(512, (3, 3), activation='relu'))
    model.add(ZeroPadding2D((1, 1)))
    model.add(Conv2D(512, (3, 3), activation='relu'))
    model.add(ZeroPadding2D((1, 1)))
    model.add(Conv2D(512, (3, 3), activation='relu'))
    model.add(MaxPooling2D((2, 2), strides=(2, 2)))

    model.add(ZeroPadding2D((1, 1)))
    model.add(Conv2D(512, (3, 3), activation='relu'))
    model.add(ZeroPadding2D((1, 1)))
    model.add(Conv2D(512, (3, 3), activation='relu'))
    model.add(ZeroPadding2D((1, 1)))
    model.add(Conv2D(512, (3, 3), activation='relu'))
    model.add(MaxPooling2D((2, 2), strides=(2, 2)))  # 33

    model.add(Flatten())
    model.add(Dense(4096, activation='relu'))  # 34
    model.add(Dropout(0.5))
    model.add(Dense(4096, activation='relu'))  # 35
    model.add(Dropout(0.5))
    model.add(Dense(2622, activation='softmax'))  # Dropped

    if weights_path:
        model.load_weights(weights_path)
    model.pop()
    model.add(Dense(classes, activation='softmax'))  # 36

    return model