我正在构建一个基于狗与cat 的数据集的Kera深度学习算法.我能够在CoLab中运行我的代码.但在木星实验室,我得到了这个错误.

"本机KERA格式不支持以下参数(S):[‘Options’]"

代码如下:

import os
import shutil
import pathlib

original_dir = pathlib.Path("/content/drive/MyDrive/Reva/dogs_vs_cats/train/train")
new_base_dir = pathlib.Path("/content/drive/MyDrive/Reva/dogs_vs_cats/")

def make_subset(subset_name, start_index, end_index):
    for category in ("cat", "dog"):
        dir = new_base_dir / subset_name / category

        # Check if the folder exists and delete it if it does
        if os.path.exists(dir):
            shutil.rmtree(dir)

        # Create the folder again
        os.makedirs(dir)

        fnames = [f"{category}.{i}.jpg" for i in range(start_index, end_index)]
        for fname in fnames:
            shutil.copyfile(src=original_dir / fname,
                            dst=dir / fname)

make_subset("train", start_index=0, end_index=1000)
make_subset("validation", start_index=1000, end_index=1500)
make_subset("test", start_index=1500, end_index=2500)

from tensorflow.keras.utils import image_dataset_from_directory

train_dataset = image_dataset_from_directory(
    new_base_dir / "train",
    image_size=(180, 180),
    batch_size=32)
validation_dataset = image_dataset_from_directory(
    new_base_dir / "validation",
    image_size=(180, 180),
    batch_size=32)
test_dataset = image_dataset_from_directory(
    new_base_dir / "test",
    image_size=(180, 180),
    batch_size=32)

from tensorflow import keras
from tensorflow.keras import layers

inputs = keras.Input(shape=(180, 180, 3))
x = layers.Rescaling(1./255)(inputs)
x = layers.Conv2D(filters=32, kernel_size=3, activation="relu")(x)
x = layers.MaxPooling2D(pool_size=2)(x)
x = layers.Conv2D(filters=64, kernel_size=3, activation="relu")(x)
x = layers.MaxPooling2D(pool_size=2)(x)
x = layers.Conv2D(filters=128, kernel_size=3, activation="relu")(x)
x = layers.MaxPooling2D(pool_size=2)(x)
x = layers.Conv2D(filters=256, kernel_size=3, activation="relu")(x)
x = layers.MaxPooling2D(pool_size=2)(x)
x = layers.Conv2D(filters=256, kernel_size=3, activation="relu")(x)
x = layers.Flatten()(x)
outputs = layers.Dense(1, activation="sigmoid")(x)
model = keras.Model(inputs=inputs, outputs=outputs)

model.compile(loss="binary_crossentropy",
              optimizer="rmsprop",
              metrics=["accuracy"])

callbacks = [
    keras.callbacks.ModelCheckpoint(
        filepath="convnet_from_scratch.keras",
        save_best_only=True,
        monitor="val_loss")
]

history = model.fit(
    train_dataset,
    epochs=30,
    validation_data=validation_dataset,
    callbacks=callbacks)

我需要知道如何解析上面的代码.我们也欢迎任何改善运行代码所需时间的建议.

推荐答案

As I mentioned in the comments, there seems 至 be a weird behaviour related 至 keras saving and also versioning of TF/Keras. I could replicate your error when running TF/Keras with version 2.13 (newest right now) on colab. Standard install on colab is 2.12, where the error doesn't come up.
So one solution would be 至 downgrade TF/Keras 至 2.12.x, or change

keras.callbacks.ModelCheckpoint(
        filepath="convnet_from_scratch.keras",
        ..)

keras.callbacks.ModelCheckpoint(
        filepath="convnet_from_scratch.x",
        ..)

where x stands for whatever you fancy (NOT "keras") 至 not save in the .keras format.

Python相关问答推荐

用Python获取HTML Span类中的数据

过载功能是否包含Support Int而不是Support Int?

Pandas 在时间序列中设定频率

GL pygame无法让缓冲区与vertextPointer和colorPointer一起可靠地工作

从webhook中的短代码(而不是电话号码)接收Twilio消息

如何使用matplotlib在Python中使用规范化数据和原始t测试值创建组合热图?

沿着数组中的轴计算真实条目

_repr_html_实现自定义__getattr_时未显示

如何获取TFIDF Transformer中的值?

如何使用它?

为什么抓取的HTML与浏览器判断的元素不同?

转换为浮点,pandas字符串列,混合千和十进制分隔符

如何在turtle中不使用write()来绘制填充字母(例如OEG)

UNIQUE约束失败:customuser. username

在Python 3中,如何让客户端打开一个套接字到服务器,发送一行JSON编码的数据,读回一行JSON编码的数据,然后继续?

将scipy. sparse矩阵直接保存为常规txt文件

ruamel.yaml dump:如何阻止map标量值被移动到一个新的缩进行?

干燥化与列姆化的比较

Seaborn散点图使用多个不同的标记而不是点

删除Dataframe中的第一个空白行并重新索引列