计算机视觉中,如果训练集中猫类别只有布偶猫这一种猫的图片,那测试集中的英短猫或是别的类别的猫怎么识别成猫类别的呢?
目前刚入门,调研分布外检测,遇到的问题希望有人可以帮我解决,谢谢!
这个就要看你的模型的泛化能力了。毕竟布偶猫和别的猫,在一定程度上是有相似性的。但是识别效果肯定没有训练集里有各种猫的好。
【相关推荐】
x_train.shape, x_test.shape
x_train = x_train.reshape(x_train.shape[0], -1)
x_test = x_test.reshape(x_test.shape[0], -1)
x_train.shape, x_test.shape
x_train = tf.cast(x_train, tf.float32)/255
x_test = tf.cast(x_test, tf.float32)/255
input_size = 784
hidden_size = 32
output_size = 784
input = tf.keras.layers.Input(shape=(input_size,))
# Encoder
en = tf.keras.layers.Dense(hidden_size, activation='relu')(input)
# Decoder
de = tf.keras.layers.Dense(output_size, activation='sigmoid')(en)
model = tf.keras.Model(inputs=input, outputs=de)
model.compile(optimizer='adam', loss='mse')
model.fit(x_train, x_train,
nb_epoch=50,
batch_size=256,
shuffle=True,
validation_data=(x_test, x_test))
encode = tf.keras.Model(inputs=input, outputs=en)
input_de = tf.keras.layers.Input(shape=(hidden_size,))
output = model.layers[-1](input_de)
decode = tf.keras.Model(inputs=input_de, outputs=output)
encode_test = encode(x_test)
decode_test = decode.predict(encode_test)
x_test = x_test.numpy()
n = 10
plt.figure(figsize=(20, 4))
for i in range(1, n):
# 展示原始图像
ax = plt.subplot(2, n, i)
plt.imshow(x_test[i].reshape(28, 28))
# 展示自编码器重构后的图像
ax = plt.subplot(2, n, i + n)
plt.imshow(decode_test[i].reshape(28, 28))
plt.show()