-
Notifications
You must be signed in to change notification settings - Fork 57
Closed as not planned
Labels
Description
Hello, I have a classification model with MobilenetV3 as the backbone. The trained model was exported to 'vela' format as suggested. However, the flashed board fails to invoke. The classifier model with MobilenetV2 invokes without issue. Is there any way to run the MobilenetV3 models on the board?
My training config files is below, Please let me know if its an error in the config file.
from mmengine.config import read_base
from mmengine.dataset import DefaultSampler
with read_base():
from .._base_.default_runtime import *
from .._base_.schedules.schedule_1x import *
from sscma.datasets import CustomDataset
# from sscma.deploy.models.fomo_infer import FomoInfer
from sscma.deploy.models.classification_infer import ClassificationInfer
from mmengine.optim import LinearLR, MultiStepLR
from sscma.datasets.transforms import (
Resize,
PackInputs,
LoadImageFromFile,
RandomFlip,
)
from sscma.visualization import UniversalVisualizer
from sscma.datasets import ClsDataPreprocessor
from sscma.models import ImageClassifier, CrossEntropyLoss, GlobalAveragePooling
from sscma.models import MobileNetV3, LinearClsHead
from sscma.evaluation import Accuracy
# ========================Suggested optional parameters========================
num_classes = 2
widen_factor = 0.1
dataset_type = CustomDataset
data_root = "/home/pip_dataset"
height = 192
width = 192
imgsz = (width, height)
batch = 8
workers = 2
persistent_workers = True
val_batch = 8
val_workers = 2
lr = 0.02
epochs = 100
default_hooks = dict(param_scheduler=dict(type=ParamSchedulerHook))
visualizer = dict(type=UniversalVisualizer, vis_backends=[dict(type='WandbVisBackend')])
train_pipeline = [
dict(type=LoadImageFromFile,imdecode_backend='cv2'),
dict(type=Resize, scale=height),
dict(type=RandomFlip, prob=0.5, direction="horizontal"),
dict(type=RandomFlip, prob=0.5, direction="vertical"),
dict(type=PackInputs),
]
test_pipeline = [
dict(type=LoadImageFromFile,imdecode_backend='cv2'),
# dict(type=ResizeEdge, scale=height, edge="short"),
dict(type=Resize, scale=height),
dict(type=PackInputs),
]
train_dataloader = dict(
batch_size=batch,
num_workers=workers,
persistent_workers=persistent_workers,
drop_last=False,
# pin_memory=True,
dataset=dict(
type=dataset_type,
data_root=data_root,
data_prefix=dict(img_path="train"),
pipeline=train_pipeline,
),
sampler=dict(type=DefaultSampler, shuffle=True),
)
val_dataloader = dict(
batch_size=val_batch,
num_workers=val_workers,
persistent_workers=persistent_workers,
drop_last=False,
# pin_memory=True,
dataset=dict(
type=dataset_type,
data_root=data_root,
data_prefix=dict(img_path="valid"),
pipeline=test_pipeline,
),
sampler=dict(type=DefaultSampler, shuffle=False),
)
val_evaluator = dict(type=Accuracy, topk=(1, ))
test_dataloader = val_dataloader
test_evaluator = val_evaluator
# ===================================================================
data_preprocessor = dict(
type=ClsDataPreprocessor,
mean=[0, 0, 0],
std=[255.0, 255.0, 255.0],
to_rgb=True,
num_classes=num_classes,
)
model = dict(
type=ImageClassifier,
data_preprocessor=data_preprocessor,
backbone=dict(
type=MobileNetV3, widen_factor=widen_factor, out_indices=(2,), rep=False,
),
neck=dict(type=GlobalAveragePooling),
head=dict(
type=LinearClsHead,
in_channels=8,
num_classes=num_classes,
loss=dict(
type=CrossEntropyLoss,
loss_weight=1.0,
),
),
)
train_cfg = dict(by_epoch=True, max_epochs=epochs)
# learning policy
param_scheduler = [
dict(type=LinearLR, begin=0, end=30, start_factor=0.001, by_epoch=False),
dict(
type=MultiStepLR,
begin=1,
end=100,
milestones=[50, 70, 90],
gamma=0.3,
by_epoch=True,
),
]
deploy = dict(
type=ClassificationInfer,
data_preprocessor=data_preprocessor,
)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done