@keineahnung2345 I cant post code in comment it's to long so I post in new answer.
model_input= Input((227,227,3))
#conv1
x=Conv2D(filters=96, kernel_size=(11,11), strides=(4,4), name="conv1",activation="relu")(model_input)
x=MaxPooling2D(pool_size=(3,3), strides=(2,2), name="pool1")(x)
x=BatchNormalization()(x)
#conv2
x=ZeroPadding2D((2, 2))(x)
con2_split1 = Lambda(lambda z: z[:,:,:,:48])(x)
con2_split2 = Lambda(lambda z: z[:,:,:,48:])(x)
a=x=Concatenate(axis=0)([con2_split1, con2_split2])
x=Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), name="conv2",activation="relu")(x)
x=MaxPooling2D(pool_size=(3,3), strides=(2,2), name="pool2")(x)
x=BatchNormalization()(x)
#conv3
x= ZeroPadding2D((1, 1))(x)
x=Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), name="conv3",activation="relu")(x)
#conv4
x= ZeroPadding2D((1, 1))(x)
con4_split1 = Lambda(lambda z: z[:,:,:,:192])(x)
con4_split2 = Lambda(lambda z: z[:,:,:,192:])(x)
x=Concatenate(axis=0)([con4_split1, con4_split2])
x=Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), name="conv4",activation="relu")(x)
#con5
x= ZeroPadding2D((1, 1))(x)
con5_split1 = Lambda(lambda z: z[:,:,:,:192])(x)
con5_split2 = Lambda(lambda z: z[:,:,:,192:])(x)
x=Concatenate(axis=0)([con5_split1, con5_split2])
x=Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), name="conv5",activation="relu")(x)
#pool5
x=MaxPooling2D(pool_size=(3,3), strides=(2,2), name="pool5")(x)
x=Flatten()(x)
#fc6
x=Dense(4096,activation='relu',name="fc6")(x)
#dropout6
x=Dropout(0.5,name="droupout6")(x)
#fc7
x=Dense(4096,activation='relu',name="fc7")(x)
#dropout7
x=Dropout(0.5,name="droupout7")(x)
#fc8
x=Dense(1000,activation='softmax',name="fc8")(x)
model=Model(inputs=model_input, outputs=x)
model.summary()
model.load_weights("caffeNet_kerasWeight.h5",by_name=True)