Convert conv1d keras to pytorch

I want to convert this model from keras to pythorch, but I have problem that I don’t know the output of each layer, please can someone convert it to me or tell me how can I calculate the output of each layer. Thank you

nclass = 5
    inp = Input(shape=(187, 1))
    #img_1= Sequential()(inp)
    img_1 = Convolution1D(64, kernel_size=2, activation=activations.relu, padding="valid")(inp)
    img_1 = Convolution1D(64, kernel_size=2, activation=activations.relu, padding="valid")(img_1)
    img_1= BatchNormalization()(img_1)
    img_1 = MaxPool1D(pool_size=2)(img_1)
    img_1 = Dropout(rate=0.1)(img_1)
    img_1 = Convolution1D(128, kernel_size=3, activation=activations.relu, padding="valid")(img_1)
    img_1 = Convolution1D(128, kernel_size=3, activation=activations.relu, padding="valid")(img_1)
    img_1= BatchNormalization()(img_1)
    img_1 = MaxPool1D(pool_size=2)(img_1)
    img_1 = Dropout(rate=0.1)(img_1)
    img_1 = Convolution1D(128, kernel_size=3, activation=activations.relu, padding="valid")(img_1)
    img_1 = Convolution1D(128, kernel_size=3, activation=activations.relu, padding="valid")(img_1)
    img_1= BatchNormalization()(img_1)
    img_1 = MaxPool1D(pool_size=2)(img_1)
    img_1 = Dropout(rate=0.1)(img_1)
    img_1 = Convolution1D(256, kernel_size=3, activation=activations.relu, padding="valid")(img_1)
    img_1 = Convolution1D(256, kernel_size=3, activation=activations.relu, padding="valid")(img_1)
    img_1= BatchNormalization()(img_1)
    img_1 = GlobalMaxPool1D()(img_1)
    img_1 = Dropout(rate=0.1)(img_1)
    


    dense_1 = Dense(1000, activation=activations.relu, name="dense_1")(img_1)
    dense_1 = Dense(1000, activation=activations.relu, name="dense_2")(dense_1)
    dense_1 = Dense(nclass, activation=activations.softmax, name="dense_3_mitbih")(dense_1)

    model = models.Model(inputs=inp, outputs=dense_1)
    opt = tf.optimizers.Adam(0.001)

    model.compile(optimizer=opt, loss=losses.sparse_categorical_crossentropy, metrics=['acc'])
    model.summary()
    return model

You could print out the shape of the output computed by each layer. In PyTorch this would look like print(img_1.shape). You could use the equivalent keras code.

1 Like