【发布时间】:2020-02-03 11:52:03
【问题描述】:
我正在尝试复制此处提到的 VGG-16 的性能: https://github.com/keras-team/keras-applications
但是当我在 tensorflow 数据集的 imagenet 数据集上运行模型时,我得到的 top5 准确度较低,为 0.866。
这是我的代码:
import tensorflow_datasets as tfds
import tensorflow as tf
from tensorflow.keras import applications
import tensorflow.keras.applications.vgg16 as vgg16
def scale16(image, label):
i = image
i = tf.cast(i, tf.float32)
i = tf.image.resize(i, (224,224))
i = vgg16.preprocess_input(i)
return (i, label)
def batch_set(dataset, batch_size):
return dataset.map(scale16) \
.shuffle(1000) \
.batch(batch_size) \
.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
def create_batched_datasets(map_fn, data_dir = "/content", batch_size = 64):
datasets, info = tfds.load(name="imagenet2012",
with_info=True,
as_supervised=True,
download=False,
data_dir=data_dir
)
train = batch_set(datasets['train'], batch_size)
val = batch_set(datasets['validation'], batch_size)
return train, val, info
train, test_dataset, info = create_batched_datasets(scale16)
model = vgg16.VGG16(weights='imagenet', include_top=True)
model.compile('sgd', 'categorical_crossentropy',
['sparse_categorical_accuracy','sparse_top_k_categorical_accuracy'])
model.evaluate(test_dataset)
我错过了什么?我在 google colab 上运行代码。
【问题讨论】:
-
如果你的准确率达到 86.6%,你的做法有什么问题?
-
您使用什么数据进行测试?
标签: python tensorflow keras google-colaboratory tensorflow-datasets