题主做的是二分类问题,改写别人的老代码
导入数据集忘记标准化会导致上图这种结果吗?
网络结构代码如下
```python
class VGG16x(Model):
def __init__(self):
super(VGG16, self).__init__()
self.p1 = MaxPool2D(pool_size=(7, 1), padding='valid')
self.c1 = Conv2D(filters=96, kernel_size=(3, 3), padding='same')
self.b1 = BatchNormalization()
self.a1 = Activation('relu')
self.c2 = Conv2D(filters=64, kernel_size=(3, 3), padding='same')
self.b2 = BatchNormalization()
self.a2 = Activation('relu')
self.p2 = MaxPool2D(pool_size=(2, 8), padding='same')
self.d1 = Dropout(0.2)
self.c3 = Conv2D(filters=48, kernel_size=(3, 3), padding='same')
self.b3 = BatchNormalization()
self.a3 = Activation('relu')
self.c4 = Conv2D(filters=32, kernel_size=(3, 3), padding='same')
self.b4 = BatchNormalization()
self.a4 = Activation('relu')
self.p3 = MaxPool2D(pool_size=(3, 4), padding='same')
self.d2 = Dropout(0.2)
self.flatten = Flatten()
self.f1 = Dense(14, activation='relu')
self.f2 = Dense(1, activation='sigmoid')
def call(self, x):
x = self.p1(x)
x = self.c1(x)
x = self.b1(x)
x = self.a1(x)
x = self.c2(x)
x = self.b2(x)
x = self.a2(x)
x = self.p2(x)
# x = self.d1(x)
x = self.c3(x)
x = self.b3(x)
x = self.a3(x)
x = self.c4(x)
x = self.b4(x)
x = self.a4(x)
x = self.p3(x)
x = self.d2(x)
x = self.flatten(x)
x = self.f1(x)
y = self.f2(x)
return y
model = VGGx16()
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
这个也有可能是数据量太小而导致计算异常