Skip to main content
. 2022 Apr 12;22(8):2946. doi: 10.3390/s22082946
Algorithm 1 Pseudo-code of the proposed ConvLSTM architecture
  • 1:

    X = []

  • 2:

    Y = []

  • 3:

    ListClasses = os.listdirinputDir

  • 4:

    i = 0

  • 5:

    fork in ListClasses do

  • 6:

        Yt=np.zeros(shape=(numClasses))

  • 7:

        Yt[i]=1;

  • 8:

        print(k)

  • 9:

        ListFiles=os.listdir(os.path.join(inputDir,c));

  • 10:

        for l in ListFiles do

  • 11:

            frames=framesExtraction(os.path.join(os.path.join(inputDir,c),l))

  • 12:

        end for

  • 13:

    end for

  • 14:

    X=np.asarray(X)

  • 15:

    Y=np.asarray(Y)

  • 16:

    X_train,X_test,y_train,y_test=train_test_split(X,Y)

  • 17:

    X_val,x_test,y_val,Y_test=train_test_split(X_test,y_test)

  • 18:

    seq.add(TimeDistributed(Conv2D(filters=16,kernel_size=(3,3)))

  • 19:

    seq.add(ConvLSTM2D(filters=64,kernel_size=(3,3)))

  • 20:

    seq.add(BatchNormalization())

  • 21:

    seq.add(Conv2D(filters=16,kernel_size=(3,3)))

  • 22:

    seq.add(Dropout(0.5))

  • 23:

    seq.add(Flatten())

  • 24:

    seq.add(Dense(256))

  • 25:

    seq.add(Dropout(0.5))

  • 26:

    seq.compile(adam,loss=categorical_crossentropy,metrics=[accuracy])