2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Zizania una e maioribus quaestionibus agriculturae sunt, grave periculum ponens incrementi ac frugis. Traditional identificatio manualis et administratio methodi inhabiles sunt et impropriae, ideo technologia computatrum visio provecta necessaria est ad emendandum efficientiam et qualitatem productionis agriculturae. Sicut alta doctrina exemplar, ResNet bene operatur in tractandis implicatis imaginis classificationibus operibus. Non solum problema solvendum efficaciter potest variarum et implicatarum herbarum in arvo, sed etiam progressionem intelligentium agriculturae promovere et dependentiam a chemicis pesticidis minuere sustineri progressionem agriculturae. Utendo ResNet ad classificationem viriditatis, agricolas ingeniosiores et accuratiores solutiones administrationis agriculturae praebere possumus, augere efficientiam productionis agriculturae et modernizationem industriae agriculturae. Hoc igitur propositum utitur compage locali PaddleClas+Swanlab+Gradio+Swanhub ad experimenta classificationis viriditas deducendi.
PaddlePaddle est inceptum gradum altum discendi suggestum a Baidu elaboratum, destinatum ad plenam processum altam litterarum applicationes ab exemplari evolutionis ad instruere. Opes instrumentorum et bibliothecarum praebet ad varias profundas doctrinas munerum supportandas, inter imaginum processus, linguam naturalem processui, sermonis recognitionem, etc.PaddlePaddle
PaddleClas instrumentum bibliothecae est specie adhibitum pro classificatione imaginum in retis compage. Praebet integram solutionem finis-ad-finis, incluso notitia processus, exemplar definitionis, disciplinae, aestimationis et instruere, destinatum adiuvare tincidunt celeriter aedificandi et explicandi imaginis classificationis exempla efficientis.PaddleClas
SwanLab fons apertus est, levis AI experimentum instrumentum vestiendi qui ML experimentum sequi et collaborationis experientiam melius praebet, benevole API componendo et hyperparametri semitam, indicator recordationem, online collaborationem et alia functiones.Gratam SwanLab |
Swanhub fons aperta est collaborationis exemplar et communitatis communicatio a Geek Studio evoluta. Tincimenta praebet AI cum functionibus ut AI exemplar obnoxius, exercitatio monumentorum, exemplar proventus ostentationis, API celeris instruere.Gratam Swanhub
Gradio fons patens est bibliotheca Pythonis ad adiuvandas notitias phisicorum, investigatorum, et tincidunt operantium in campo machinarum discendi cito creare et communicare interfaces user pro machinarum exemplorum discendi.Gradio
Sequentes 3 bibliothecas inaugurare:
- paddle
- swanlab
- gradio
Mandatum instruitur:
pip install paddle swanlab gradio
Viriditas genus dataset: DeepWeeds
- DeepWeeds
- --images
- ----1.jpg
- ----2.jpg
- --train.txt
- --val.txt
- --test.txt
- --classnames.txt
Eorum munera et momentum;
1. DeepWeeds folder: Hoc folder adhibetur ut congregem imaginem folder imagines, disciplina set test paro verificationem set files et label
2. folder imagines: Hoc folder adhibetur ad conservandam institutionem, probationem et verificationem imaginis folder.
3. train.txt, val.txt, test.txt files: Hic fasciculus adhibetur ad imaginum semitas et genera exercitationis, probationis et sanationis conservandas.
4. file classnames: genus titulus servare solebat
Exemplar pagina:Exemplar PaddleClas
Post unzipping, habebis folder PaddleClas.
Create app.py in PaddleClas folder.
Quid sit: currere scriptum quod Gradio Demo . currit
Primum invenire ppcls-->configs-->ImageNet-->Res2Net-->Res2Net50_14w_8s.yaml in PaddleClas folder.
Mutare epochae ad 100, categoria class_num ad 9, iter imaginum institutio, iter imaginum verificationis et fasciculi label respective. A summa 7 mutationes factae sunt.
- # global configs
- Global:
- checkpoints: null
- pretrained_model: null
- output_dir: ./output/
- device: gpu
- save_interval: 1
- eval_during_train: True
- eval_interval: 1
- epochs: 100###########################1##############################
- print_batch_step: 10
- use_visualdl: False
- # used for static mode and model export
- image_shape: [3, 224, 224]
- save_inference_dir: ./inference
-
- # model architecture
- Arch:
- name: Res2Net50_14w_8s
- class_num: 9############################2##############################
-
- # loss function config for traing/eval process
- Loss:
- Train:
- - CELoss:
- weight: 1.0
- epsilon: 0.1
- Eval:
- - CELoss:
- weight: 1.0
-
-
- Optimizer:
- name: Momentum
- momentum: 0.9
- lr:
- name: Cosine
- learning_rate: 0.1
- regularizer:
- name: 'L2'
- coeff: 0.0001
-
-
- # data loader for train and eval
- DataLoader:
- Train:
- dataset:
- name: ImageNetDataset
- image_root: ./weeds/images/#################3#######################
- cls_label_path: ./weeds/train.txt###########4########################
- transform_ops:
- - DecodeImage:
- to_rgb: True
- channel_first: False
- - RandCropImage:
- size: 224
- - RandFlipImage:
- flip_code: 1
- - NormalizeImage:
- scale: 1.0/255.0
- mean: [0.485, 0.456, 0.406]
- std: [0.229, 0.224, 0.225]
- order: ''
- batch_transform_ops:
- - MixupOperator:
- alpha: 0.2
-
- sampler:
- name: DistributedBatchSampler
- batch_size: 64
- drop_last: False
- shuffle: True
- loader:
- num_workers: 4
- use_shared_memory: True
-
- Eval:
- dataset:
- name: ImageNetDataset
- image_root: ./DeepWeeds/images/###############5#######################
- cls_label_path: ./DeepWeeds/val.txt###########6########################
- transform_ops:
- - DecodeImage:
- to_rgb: True
- channel_first: False
- - ResizeImage:
- resize_short: 256
- - CropImage:
- size: 224
- - NormalizeImage:
- scale: 1.0/255.0
- mean: [0.485, 0.456, 0.406]
- std: [0.229, 0.224, 0.225]
- order: ''
- sampler:
- name: DistributedBatchSampler
- batch_size: 64
- drop_last: False
- shuffle: False
- loader:
- num_workers: 4
- use_shared_memory: True
-
- Infer:
- infer_imgs: docs/images/inference_deployment/whl_demo.jpg
- batch_size: 10
- transforms:
- - DecodeImage:
- to_rgb: True
- channel_first: False
- - ResizeImage:
- resize_short: 256
- - CropImage:
- size: 224
- - NormalizeImage:
- scale: 1.0/255.0
- mean: [0.485, 0.456, 0.406]
- std: [0.229, 0.224, 0.225]
- order: ''
- - ToCHWImage:
- PostProcess:
- name: Topk
- topk: 5
- class_id_map_file: ./DeepWeeds/classnaems.txt###########7##################
-
- Metric:
- Train:
- Eval:
- - TopkAcc:
- topk: [1, 5]
Invenire instrumenta -> train.py in folder PaddleClas. Initialize olorlab
- # Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
-
- from __future__ import absolute_import
- from __future__ import division
- from __future__ import print_function
- import os
- import sys
-
- __dir__ = os.path.dirname(os.path.abspath(__file__))
- sys.path.append(os.path.abspath(os.path.join(__dir__, '../')))
-
- from ppcls.utils import config
- from ppcls.engine.engine import Engine
- import swanlab
- # -*- coding: utf-8 -*-
-
- if __name__ == "__main__":
- args = config.parse_args()
- config = config.get_config(
- args.config, overrides=args.override, show=False)
- config.profiler_options = args.profiler_options
- engine = Engine(config, mode="train")
-
- ## 初始化swanlab
- swanlab.init(
- experiment_name="Swanlab_ResNet50_PaddleClas",
- description="Train ResNet50 for weeds classification.",
- project="Swanhub_Weeds_Classification",
- config={
- "model": "ResNet50",
- "optim": "Adam",
- "lr": 0.001,
- "batch_size": 64,
- "num_epochs": 100,
- "num_class": 9,
- }
- )
- engine.train()
Invenire ppcls-->engine-->train-->utils.py in PaddleClas et sequenti codice adde:
- swanlab.log({"train_lr_msg": lr_msg.split(": ")[1]}) #
- swanlab.log({"train_CELoss": metric_msg.split(",")[0].split(': ')[1]}) ##
- swanlab.log({'train_loss': metric_msg.split(",")[1].split(': ')[1]})
Invenire ppcls-->engine-->engine.py in PaddleClas folder et adde sequenti codice:
swanlab.log({'best_metric': best_metric.get('metric')})
Intra hoc mandatum in console:
python -m paddle.distributed.launch tools/train.py -c ./ppcls/configs/ImageNet/Res2Net/Res2Net50_14w_8s.yaml
View experimentum singula in olorlab
Eventus experimenti sunt hoc modo:
Visum eventus experimentales in olorlab
Sequentes codicem intrant in console:
python tools/infer.py -c ./ppcls/configs/ImageNet/Res2Net/Res2Net50_14w_8s.yaml -o Infer.infer_imgs=./DeepWeeds/infer/01.jpg -o Global.pretrained_model=./output/Res2Net50_14w_8s/best_model
Primum invenire ppcls-->configs-->ImageNet-->DarkNet-->DarkNet53.yaml in PaddleClas folder.
Mutare epochae ad 100, categoria class_num ad 9, iter imaginum institutio, iter imaginum verificationis et fasciculi label respective. A summa 7 mutationes factae sunt.
- # global configs
- Global:
- checkpoints: null
- pretrained_model: null
- output_dir: ./output/
- device: gpu
- save_interval: 1
- eval_during_train: True
- eval_interval: 1
- epochs: 100
- print_batch_step: 10
- use_visualdl: False
- # used for static mode and model export
- image_shape: [3, 256, 256]
- save_inference_dir: ./inference
-
- # model architecture
- Arch:
- name: DarkNet53
- class_num: 9
-
- # loss function config for traing/eval process
- Loss:
- Train:
- - CELoss:
- weight: 1.0
- epsilon: 0.1
- Eval:
- - CELoss:
- weight: 1.0
-
-
- Optimizer:
- name: Momentum
- momentum: 0.9
- lr:
- name: Cosine
- learning_rate: 0.1
- regularizer:
- name: 'L2'
- coeff: 0.0001
-
-
- # data loader for train and eval
- DataLoader:
- Train:
- dataset:
- name: ImageNetDataset
- image_root: F:/datasets/DeepWeeds/images
- cls_label_path: F:/datasets/DeepWeeds/train.txt
- transform_ops:
- - DecodeImage:
- to_rgb: True
- channel_first: False
- - RandCropImage:
- size: 256
- - RandFlipImage:
- flip_code: 1
- - NormalizeImage:
- scale: 1.0/255.0
- mean: [0.485, 0.456, 0.406]
- std: [0.229, 0.224, 0.225]
- order: ''
- batch_transform_ops:
- - MixupOperator:
- alpha: 0.2
-
- sampler:
- name: DistributedBatchSampler
- batch_size: 64
- drop_last: False
- shuffle: True
- loader:
- num_workers: 4
- use_shared_memory: True
-
- Eval:
- dataset:
- name: ImageNetDataset
- image_root: F:/datasets/DeepWeeds/images
- cls_label_path: F:/datasets/DeepWeeds/val.txt
- transform_ops:
- - DecodeImage:
- to_rgb: True
- channel_first: False
- - ResizeImage:
- resize_short: 292
- - CropImage:
- size: 256
- - NormalizeImage:
- scale: 1.0/255.0
- mean: [0.485, 0.456, 0.406]
- std: [0.229, 0.224, 0.225]
- order: ''
- sampler:
- name: DistributedBatchSampler
- batch_size: 64
- drop_last: False
- shuffle: False
- loader:
- num_workers: 4
- use_shared_memory: True
-
- Infer:
- infer_imgs: docs/images/inference_deployment/whl_demo.jpg
- batch_size: 10
- transforms:
- - DecodeImage:
- to_rgb: True
- channel_first: False
- - ResizeImage:
- resize_short: 292
- - CropImage:
- size: 256
- - NormalizeImage:
- scale: 1.0/255.0
- mean: [0.485, 0.456, 0.406]
- std: [0.229, 0.224, 0.225]
- order: ''
- - ToCHWImage:
- PostProcess:
- name: Topk
- topk: 5
- class_id_map_file: F:/datasets/DeepWeeds/classnames
-
- Metric:
- Train:
- Eval:
- - TopkAcc:
- topk: [1, 5]
Invenire instrumenta -> train.py in folder PaddleClas. Mutare initialization swanlab
- # Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
-
- from __future__ import absolute_import
- from __future__ import division
- from __future__ import print_function
- import os
- import sys
-
- __dir__ = os.path.dirname(os.path.abspath(__file__))
- sys.path.append(os.path.abspath(os.path.join(__dir__, '../')))
-
- from ppcls.utils import config
- from ppcls.engine.engine import Engine
- import swanlab
- # -*- coding: utf-8 -*-
-
- if __name__ == "__main__":
- args = config.parse_args()
- config = config.get_config(
- args.config, overrides=args.override, show=False)
- config.profiler_options = args.profiler_options
- engine = Engine(config, mode="train")
-
- ## 初始化swanlab
- swanlab.init(
- experiment_name="Swanlab_DrakNet53_PaddleClas",
- description="Train DarkNet53 for weeds classification.",
- project="Swanhub_Weeds_Classification",
- config={
- "model": "DarkNet53",
- "optim": "Adam",
- "lr": 0.001,
- "batch_size": 64,
- "num_epochs": 100,
- "num_class": 9,
- }
- )
- engine.train()
Intra hoc mandatum in console:
python -m paddle.distributed.launch tools/train.py -c ./ppcls/configs/ImageNet/DarkNet/DarknetNet53.yaml
View experimentum singula in olorlab
Eventus experimenti sunt hoc modo:
Sequentes codicem intrant in console:
python tools/infer.py -c ./ppcls/configs/ImageNet/DarkNet/DarkNet53.yaml -o Infer.infer_imgs=./DeepWeeds/infer/01.jpg -o Global.pretrained_model=./output/DarkNet53/best_model
4.5 Swanlab effectus ostentationem
Ut ex figura videri potest, exemplar ResNet50 melius quam exemplar DarkNet53 praestat, et olorlabrum munus chart comparationis convenientem praebet.
Continuanda. . .
Continuanda. . .