我正在尝试使用 Tensorflow 训练我的模型(图像分类)。当我尝试运行以下单元格时,我不断收到错误消息:
hist = model.fit(
train_generator,
epochs=100,
verbose=1,
steps_per_epoch=steps_per_epoch,
validation_data=valid_generator,
validation_steps=val_steps_per_epoch).history
Run Code Online (Sandbox Code Playgroud)
错误是:
Epoch 1/100
27/31 [=========================>....] - ETA: 1s - loss: 0.7309 - acc: 0.6181
---------------------------------------------------------------------------
UnknownError Traceback (most recent call last)
<ipython-input-36-b1c104100211> in <module>
2 val_steps_per_epoch = np.ceil(valid_generator.samples/valid_generator.batch_size)
3
----> 4 hist = model.fit(
5 train_generator,
6 epochs=100,
/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)
1098 _r=1):
1099 callbacks.on_train_batch_begin(step)
-> 1100 tmp_logs = …
Run Code Online (Sandbox Code Playgroud) 我已经用不同的数据集为相同的类标签训练了两个 keras 模型。我如何将模型 keras_model.h5 和 keras_model2.h5 集成在一起,并制作另一个 keras 模型,即 keras_ensemble.h5。我尝试参考各种互联网资源,但运气不佳。有人可以帮我编写集成它的代码吗? 这是我训练过的模型
请帮助我解决这个问题。谢谢。
编辑:这是我的代码,在回答我的问题 Frightera 的人的帮助下我能够完成该代码
import tensorflow.keras
import tensorflow as tf
from PIL import Image, ImageOps
import numpy as np
# Disable scientific notation for clarity
np.set_printoptions(suppress=True)
# Load the model
keras_model = tensorflow.keras.models.load_model('keras_model.h5', compile=False)
keras_model._name = 'model1'
keras_model2 = tensorflow.keras.models.load_model('keras_model2.h5', compile=False)
keras_model2._name = 'model2'
models = [keras_model, keras_model2]
#model_input = tf.keras.Input(shape=(125, 125, 3))
model_input = tf.keras.Input(shape=(224, 224, 3))
model_outputs = [model(model_input) for model in models]
ensemble_output = tf.keras.layers.Average()(model_outputs) …
Run Code Online (Sandbox Code Playgroud) python machine-learning ensemble-learning keras image-classification
我正在尝试将数据加载到 Colab 笔记本中,其中(平面)目录包含一堆 jpg 图像,标签类包含在单独的 csv 文件中,使用 tf.keras.preprocessing.image_dataset_from_directory。
根据文档:
Either "inferred" (labels are generated from the directory structure), or a list/tuple of integer labels of the same size as the number of image files found in the directory. Labels should be sorted according to the alphanumeric order of the image file paths (obtained via os.walk(directory) in Python).
我使用 Pandas 读取 csv 并使用以下内容将其转换为列表,并将 train_labels 作为标签参数传入:
labels = pd.read_csv(_URL)
train_labels = labels.values[:,1].tolist()
print("Total labels:", len(train_labels))
print(train_labels)
>>> Total labels: 1164
>>> [1, …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Detectron2 训练模型。我正在使用 Grocery 图像数据,并且有 COCO 格式的注释。我在模型加载时遇到问题。模型不带注释。我指的是这个博客https://gilberttanner.com/blog/detectron2-train-a-instance-segmentation-model。
注册数据集时面临问题。
from detectron2.data.datasets import register_coco_instances
for d in ["train", "test"]:
register_coco_instances(f"microcontroller_{d}", {}, f"Microcontroller Segmentation/{d}.json", f"Microcontroller Segmentation/{d}")
Run Code Online (Sandbox Code Playgroud)
这段代码有问题吗?
json image-segmentation deep-learning detectron image-classification
我在 fastai v2.3.1 上构建了一个模型。当我尝试调用函数 show_batch 和 show_results 时,它没有显示任何内容。这是有问题的代码:
from fastai.vision.all import *
from fastai.data.all import *
import fastai.vision
import zipfile as zf
import random
import timeit
fields = DataBlock(blocks=(ImageBlock, CategoryBlock),
get_items=get_image_files,
get_y=yer,
splitter=RandomSplitter(valid_pct=0.2, seed=random.randint(0, 10)),
item_tfms=RandomResizedCrop(224, min_scale=0.5),
batch_tfms=aug_transforms()
)
dls = fields.dataloaders(os.path.join(Path(os.getcwd()), "train"), num_workers=0, bs=32)
dls.show_batch()
learn = cnn_learner(dls, resnet18, metrics=error_rate)
learn.fine_tune(2)
learn.show_results()
Run Code Online (Sandbox Code Playgroud)
我可以使用模型但这些功能。
我想使用Pytorch中的预训练模型在我自己的数据集中进行图像分类,但是我应该如何在冻结特征提取层的参数的同时更改类的数量?
这些是我想要包括的模型:
resnet18 = models.resnet18(pretrained=True)
densenet161 = models.densenet161(pretrained=True)
inception_v3 = models.inception_v3(pretrained=True)
shufflenet_v2_x1_0 = models.shufflenet_v2_x1_0(pretrained=True)
mobilenet_v3_large = models.mobilenet_v3_large(pretrained=True)
mobilenet_v3_small = models.mobilenet_v3_small(pretrained=True)
mnasnet1_0 = models.mnasnet1_0(pretrained=True)
resnext50_32x4d = models.resnext50_32x4d(pretrained=True)
vgg16 = models.vgg16(pretrained=True)
Run Code Online (Sandbox Code Playgroud)
预先非常感谢!
我添加的新代码:
import torch
from torchvision import models
class MyResModel(torch.nn.Module):
def __init__(self):
super(MyResModel, self).__init__()
self.classifier = nn.Sequential(
nn.Linear(512,256),
nn.ReLU(),
nn.Dropout(p=0.5),
nn.Linear(256,3),
)
def forward(self, x):
return self.classifier(x)
resnet18 = models.resnet18(pretrained=True)
resnet18.fc = MyResModel()
for param in resnet18.parameters():
param.requires_grad_(False)
Run Code Online (Sandbox Code Playgroud) python deep-learning conv-neural-network pytorch image-classification
我正在尝试在 google colab 上开发一个网络应用程序。我想在这个 Web 应用程序中使用我之前训练过的模型制作一个图像分类器。当我在 Web 应用程序中从浏览器中选择要分类的图像时,出现以下错误:
TypeError: 'Image' object is not subscriptable.
Run Code Online (Sandbox Code Playgroud)
我的代码块:
TypeError: 'Image' object is not subscriptable.
Run Code Online (Sandbox Code Playgroud) ngrok tensorflow google-colaboratory streamlit image-classification
我正在使用 pytorch 使用github中的代码进行图像分类。我需要在训练我的模型之前添加数据增强,我选择了albumentation来执行此操作。这是我添加专辑时的代码:
data_transform = {
"train": A.Compose([
A.RandomResizedCrop(224,224),
A.HorizontalFlip(p=0.5),
A.RandomGamma(gamma_limit=(80, 120), eps=None, always_apply=False, p=0.5),
A.RandomBrightnessContrast (p=0.5),
A.CLAHE(clip_limit=4.0, tile_grid_size=(8, 8), always_apply=False, p=0.5),
A.ShiftScaleRotate(shift_limit=0.05, scale_limit=0.05, rotate_limit=15, p=0.5),
A.RGBShift(r_shift_limit=15, g_shift_limit=15, b_shift_limit=15, p=0.5),
A.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
ToTensorV2(),]),
"val": A.Compose([
A.Resize(256,256),
A.CenterCrop(224,224),
A.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
ToTensorV2()])}
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
KeyError:在 DataLoader 工作进程 0 中捕获 KeyError。
KeyError:“您必须将数据作为命名参数传递给增强,例如:aug(image=image)”
python pytorch data-augmentation albumentations image-classification