I am attempting to recreate ResNet50 in Keras. I don't understand the process of creating a residual step in between blocks or even the process of creating blocks themselves. Is it as simple as:
Create the CNN
cnnModel = Model()
Block 1
cnnModel.add(Conv2D( kernel_size= (7,7), input_shape=(256,256,3), filters = 64, strides=2))
Block 2
cnnModel.add(MaxPool2D(pool_size=(3,3), strides=2))
Block 3
cnnModel.add(Conv2D( kernel_size= (3,3), input_shape=(256,256,3), filters = 64,)) cnnModel.add(Conv2D( kernel_size= (3,3), input_shape=(256,256,3), filters = 64,)) cnnModel.add(Conv2D( kernel_size= (3,3), input_shape=(256,256,3), filters = 64,)) cnnModel.add(Conv2D( kernel_size= (3,3), input_shape=(256,256,3), filters = 64,))
Block 4
cnnModel.add(Conv2D( kernel_size= (3,3), input_shape=(256,256,3), filters = 64,)) cnnModel.add(Conv2D( kernel_size= (3,3), input_shape=(256,256,3), filters = 64,)) cnnModel.add(Conv2D( kernel_size= (3,3), input_shape=(256,256,3), filters = 64,)) cnnModel.add(Conv2D( kernel_size= (3,3), input_shape=(256,256,3), filters = 64,))
....
Or do I have to create the "blocks" in a certain way?
I have also seen these "blocks" referred to as "stacks of layers"