Search code examples
pythontensorflowkerasneural-networkmax-pooling

model.add(layers.MaxPooling1D(pool_size=3)) ^ SyntaxError: invalid syntax


   model.add(layers.MaxPooling1D(pool_size=3))
        ^
SyntaxError: invalid syntax

I got this error. what is the problem? I have searched it but found the same syntax almost everywhere

This is my whole model. Are there others issues in the model? I am doing speech recognition on phonemes

import tensorflow as tf 
from keras import layers
from keras import models

model = models.Sequential()

#First Conv1D layer
model.add(layers.Conv1D(8,13, input_shape=(-1,8000,1), activation='relu',padding='valid', strides=1))
model.add(layers.MaxPooling1D(pool_size=3))
model.add(layers.Dropout(0.3))

model.add(layers.BatchNormalization(axis=-1, momentum=0.99, epsilon=1e-3, center=True, scale=True)(inputs))
#Second Conv1D layer

model.add(layers.Conv1D(16, 11,activation='relu', padding='valid', strides=1)
model.add(layers.MaxPooling1D(pool_size=3))
model.add(layers.Dropout(0.3))

#Third Conv1D layer
model.add(layers.Conv1D(32, 9, activation='relu',padding='valid', strides=1)
model.add(layers.MaxPooling1D(pool_size=3))
model.add(layers.Dropout(0.3))

model.add(layers.BatchNormalization(axis=-1, momentum=0.99, epsilon=1e-3, center=True, scale=True))

model.add(layers.Bidirectional(GRU(128, return_sequences=True), merge_mode='sum'))
model.add(layers.Bidirectional(GRU(128, return_sequences=True), merge_mode='sum'))
model.add(layers.Bidirectional(LSTM(128, return_sequences=False), merge_mode='sum'))

model.add(layers.BatchNormalization(axis=-1, momentum=0.99, epsilon=1e-3, center=True, scale=True))

#Flatten layer
model.add(layers.Flatten())

#Dense Layer 1
model.add(layers.Dense(256, activation='relu'))
model.add(layers.Dense(len(labels), activation="softmax"))

model.summary()

Solution

  • On this line

    #Second Conv1D layer
    
    model.add(layers.Conv1D(16, 11,activation='relu', padding='valid', strides=1)
    

    You forgot to close the parentheses.

    Change it to this

    model.add(layers.Conv1D(16, 11,activation='relu', padding='valid', strides=1))
    

    The same error occurs on the following line

    #Third Conv1D layer
    model.add(layers.Conv1D(32, 9, activation='relu',padding='valid', strides=1)
    

    To fix it, just add the last parentheses

    #Third Conv1D layer
    model.add(layers.Conv1D(32, 9, activation='relu',padding='valid', strides=1))