IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> kaggle上mmdet的使用与tensorboard的解决方案 -> 正文阅读

[人工智能]kaggle上mmdet的使用与tensorboard的解决方案

mmdet 安装与使用

!pip install openmim
!mim install mmdet

上述指令即可完成对mmdet的安装,而在kaggle上大概要花20min左右,主要是造轮子的时间太久了。

这边有一个取巧的办法,可以直接copy&edit这个工程可以很快的完成mmdet的安装。

mmdet + tensorboard

在kaggle上我们无法直接访问tensorboard,这里可以用ngrok做转发,代码如下

import datetime
import tensorflow as tf
from tensorflow import summary
%load_ext tensorboard

log_dir="runs/"
 
# summary_writer = tf.summary.create_file_writer(
#   log_dir + "fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))

!wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
!unzip ngrok-stable-linux-amd64.zip
!./ngrok authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

import os
import multiprocessing
 
pool = multiprocessing.Pool(processes = 10)
results_of_processes = [pool.apply_async(os.system, args=(cmd, ), callback = None )
                        for cmd in [
                            f"tensorboard --logdir ./runs/ --host 0.0.0.0 --port 6006 &",
                            "./ngrok http 6006 &"
                        ]]
! curl -s http://localhost:4040/api/tunnels | python3 -c \
    "import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'])"

其中authtoken需要注册ngrok可以获得,ngrok的链接:ngrok

config文件与训练

%%writefile configs/myconfig/xxxxxxxxx.py

使用上述指令可以自行创建一个config文件,方便训练与修改。

!python tools/train.py configs/myconfig/xxxxxxxxx.py

验证

from mmcv import Config
cfg = Config.fromfile('configs/myconfig/yolox_l_4x4_80e_coco.py')

#--------------------------------------------------------------------------------#

def xyxy2xywh(bbox):
    """Convert ``xyxy`` style bounding boxes to ``xywh`` style for COCO
    evaluation.

    Args:
        bbox (numpy.ndarray): The bounding boxes, shape (4, ), in
            ``xyxy`` order.

    Returns:
        list[float]: The converted bounding boxes, in ``xywh`` order.
    """

    _bbox = bbox.tolist()
    return [
        _bbox[0],
        _bbox[1],
        _bbox[2] - _bbox[0],
        _bbox[3] - _bbox[1],
    ]

#--------------------------------------------------------------------------------#

from mmdet.apis import inference_detector, init_detector, show_result_pyplot
import numpy as np 
from pycocotools.coco import COCO
import json
from tqdm import tqdm
import mmcv

model = init_detector(cfg, '/kaggle/working/runs/epoch_80.pth')

# test_json_path = '/kaggle/working/mmdetection/data_anno/test2017.json'
test_json_path = '/kaggle/working/mmdetection/data_anno/instances_val2017.json'
coco = COCO(test_json_path)

imgIds = coco.getImgIds()
res = []

with tqdm(total=len(imgIds)) as pbar:
    for i in imgIds:
        img_info = coco.loadImgs(i)
        img = mmcv.imread('/kaggle/input/fewshotlogodetection/val/images/' + img_info[0]['file_name'])
        result = inference_detector(model, img)

        bboxes = np.vstack(result)
        labels = [
            np.full(bbox.shape[0], j, dtype=np.int32)
            for j, bbox in enumerate(result)
        ]
        labels = np.concatenate(labels)
        
        for k in range(len(labels)):
            res_tmp = {}
            box = xyxy2xywh(bboxes[k,:4])
            res_tmp['image_id'] = int(i)
            res_tmp['category_id'] = int(labels[k] + 1)
            res_tmp['bbox'] = box
            res_tmp['score'] = float(bboxes[k,4])
            res.append(res_tmp)
        pbar.update(1)

当然也可以直接使用现成的。

!python tools/test.py configs/myconfig/yolox_l_4x4_80e_coco.py /kaggle/input/modelpara/yolox_l_0.58.pth --format-only --options "jsonfile_prefix=/kaggle/working/res"
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:27:02  更:2022-05-11 16:29:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:37:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码