- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Cifar-10 数据集来练习我的 CNN 技能。
如果我这样做没问题:
(train_images, train_labels), (test_images, test_labels) = datasets.cifar10.load_data()
但我正在尝试使用 tfds.load()
但我不知道该怎么做。
有了这个我就下载了,
train_ds, test_ds = tfds.load('cifar10', split=['train','test'])
现在我试过了,但是没有用,
assert isinstance(train_ds, tf.data.Dataset)
assert isinstance(test_ds, tf.data.Dataset)
(train_images, train_labels) = tuple(zip(*train_ds))
(test_images, test_labels) = tuple(zip(*test_ds))
谁能告诉我实现它的方法?
谢谢!
最佳答案
您可以按如下方式执行此操作。
import tensorflow as tf
import tensorflow_datasets as tfds
train_ds, test_ds = tfds.load('cifar10', split=['train','test'], as_supervised=True)
这些 train_ds
和 test_ds
是 tf.data.Dataset
对象,所以你可以使用 map
,batch
,以及与它们中的每一个类似的功能。
def normalize_resize(image, label):
image = tf.cast(image, tf.float32)
image = tf.divide(image, 255)
image = tf.image.resize(image, (28, 28))
return image, label
def augment(image, label):
image = tf.image.random_flip_left_right(image)
image = tf.image.random_saturation(image, 0.7, 1.3)
image = tf.image.random_contrast(image, 0.8, 1.2)
image = tf.image.random_brightness(image, 0.1)
return image, label
train = train_ds.map(normalize_resize).cache().map(augment).shuffle(100).batch(64).repeat()
test = test_ds.map(normalize_resize).cache().batch(64)
现在,我们可以将 train
和 test
直接传递给 model.fit
。
model = tf.keras.models.Sequential(
[
tf.keras.layers.Flatten(input_shape=(28, 28, 3)),
tf.keras.layers.Dense(128, activation="relu"),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation="softmax"),
]
)
model.compile(
optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"]
)
model.fit(
train,
epochs=5,
steps_per_epoch=60000 // 64,
validation_data=test, verbose=2
)
Epoch 1/5
17s 17ms/step - loss: 2.0848 - accuracy: 0.2318 - val_loss: 1.8175 - val_accuracy: 0.3411
Epoch 2/5
11s 12ms/step - loss: 1.8827 - accuracy: 0.3144 - val_loss: 1.7800 - val_accuracy: 0.3595
Epoch 3/5
11s 12ms/step - loss: 1.8383 - accuracy: 0.3272 - val_loss: 1.7152 - val_accuracy: 0.3904
Epoch 4/5
11s 11ms/step - loss: 1.8129 - accuracy: 0.3397 - val_loss: 1.6908 - val_accuracy: 0.4060
Epoch 5/5
11s 11ms/step - loss: 1.8022 - accuracy: 0.3461 - val_loss: 1.6801 - val_accuracy: 0.4081
关于python - 正确使用来自 tfds.load() 的 Cifar-10 数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67635660/
这就是我所拥有的 # Ratings data. ratings = tfds.load('movie_lens/100k-ratings', split="train") # Features of
我正在尝试使用 tfds.features.Video 在 tensorflow 2 中解码视频,以便使用以下代码输出“tf.Tensor of type tf.uint8 and shape [nu
我正在尝试在深度学习项目中使用 CelebA 数据集。我有来自 Kaggle 的压缩文件夹。 我想解压缩,然后将图像拆分为训练、测试和验证,但后来发现在我不太强大的系统上这是不可能的。 因此,为了避免
我正在尝试使用 Cifar-10 数据集来练习我的 CNN 技能。 如果我这样做没问题: (train_images, train_labels), (test_images, test_labels
我正在尝试使用 Cifar-10 数据集来练习我的 CNN 技能。 如果我这样做没问题: (train_images, train_labels), (test_images, test_labels
根据 https://keras.io/examples/generative/cyclegan/ 中的示例,已加载预先存在的数据集以供实现。我正在尝试添加我的数据集。 import tensorfl
我正在关注 this guide . 它展示了如何使用 tfds.load() 从新的 TensorFlow 数据集下载数据集。方法: import tensorflow_datasets as tf
根据 this link , target_vocab_size: int,要创建的词汇表的大致大小。 该声明对我来说非常模棱两可。据我所知,编码器会将每个词汇表映射到一个唯一的 ID。如果语料库有
作为一些背景知识,我最近越来越关注 NLP 和文本处理。我更熟悉计算机视觉。我完全理解标记化的想法。 我的困惑源于 Tokenizer 的各种实现。可以在 Tensorflow 中找到的 类 生态系统
我是一名优秀的程序员,十分优秀!