精华内容
下载资源
问答
  • PaddleHub
    2021-10-04 18:27:25

    安装PaddleHub和模型

    pip install paddlehub -i https://mirror.baidu.com/pypi/simple
    
    hub install pyramidbox_lite_mobile_mask==1.3.0
    

    模型概述:PyramidBox-Lite是基于2018年百度发表于计算机视觉顶级会议ECCV 2018的论文PyramidBox而研发的轻量级模型,模型基于主干网络FaceBoxes,对于光照、口罩遮挡、表情变化、尺度变化等常见问题具有很强的鲁棒性。该PaddleHub Module是针对于移动端优化过的模型,适合部署于移动端或者边缘检测等算力受限的设备上,并基于WIDER FACE数据集和百度自采人脸数据集进行训练,支持预测,可用于人脸检测。

    口罩人脸检测

    1. 单张图片检测

    import matplotlib.pyplot as plt 
    import paddlehub as hub
    import os
    import cv2
    
    module = hub.Module(name="pyramidbox_lite_mobile_mask")
    
    test_img_path = ["./1.jpg"]
    
    img1 = cv2.imread(test_img_path[0],cv2.IMREAD_COLOR) 
    
    # 展示待预测图片
    cv2.imshow("src",img1)
    
    imgs = [cv2.imread(test_img_path[0])]
    
    # 口罩检测预测
    # visualization=True 将预测结果保存图片可视化
    # output_dir='detection_result' 预测结果图片保存在当前运行路径下detection_result文件夹下
    results = module.face_detection(images=imgs, use_multi_scale=True, shrink=0.6, visualization=True, output_dir='./')
    print(results)
    
    # 预测结果展示
    path = results[0]['path'].split(".")[0]+".jpg"
    img2 = cv2.imread(path,cv2.IMREAD_COLOR)
    cv2.imshow("dst",img2)
    

    2. 视频流检测

    import matplotlib.pyplot as plt 
    import paddlehub as hub
    import os
    import cv2
    
    module = hub.Module(name="pyramidbox_lite_mobile_mask")
    
    cap = cv2.VideoCapture(0)
     
    while (1):
        # 获取一帧图像
        ret, frame = cap.read()
        # 缩放并利用INTER_CUBIC插值法
        frame = cv2.resize(frame, (640, 480), interpolation=cv2.INTER_CUBIC)
    
        input_dict = {"data": [frame]}  
        result = module.face_detection(data=input_dict)
    
        print(result)
        
        # 绘制人脸框
        if len(result[0]['data']) != 0:
            for detection in result[0]['data']:
                confidence = float(detection['confidence'])
                # 获取左上角图片的坐标
                xmin = int(detection['left'])
                ymin = int(detection['top'])
                # 获取右下角图片的坐标
                xmax = int(detection['right'])
                ymax = int(detection['bottom'])
                if confidence > 0.5:
                    # 图片 添加的文字 位置 字体 字体大小 字体颜q色 字体粗细
                    cv2.putText(frame,detection['label'], (xmin, ymin + 20), cv2.FONT_HERSHEY_SIMPLEX, 0.75,
                               (0, 0, 255), 2)
                    cv2.rectangle(frame, (xmin, ymin), (xmax, ymax), color=(0, 255, 0))
        # 展示图像
            cv2.imshow("capture", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            # 每1毫秒监听一次键盘的动作,按q键结束,并保存图片
            cv2.imwrite('out.png', frame)
            print("已保存最后一帧!")
            break
    # 关闭摄像头及显示窗口
    cap.release()
    cv2.destroyAllWindows()
    print('人脸摄像头实时检测完成')
    
    

    服务部署

    PaddleHub Serving可以部署一个在线人脸关键点检测服务。

    1. 启动PaddleHub Serving

    hub serving start -m pyramidbox_lite_mobile_mask
    

    这样就完成了一个人脸关键点服务化API的部署,默认端口号为8866。

    NOTE: 如使用GPU预测,则需要在启动服务之前,请设置CUDA_VISIBLE_DEVICES环境变量,否则不用设置。

    2. 发送预测请求

    import requests
    import json
    import cv2
    import base64
    import time
     
    # 格式转换
    def cv2_to_base64(image):
        data = cv2.imencode('.jpg', image)[1]
        return base64.b64encode(data.tobytes()).decode('utf8')
     
    # 向服务器发送请求
    def predict(image):
        # 发送HTTP请求
        data = {'images':[cv2_to_base64(image)]}
        headers = {"Content-type": "application/json"}
        url = "http://127.0.0.1:8866/predict/pyramidbox_lite_mobile_mask" # ultra_light_fast_generic_face_detector_1mb_640
        r = requests.post(url=url, headers=headers, data=json.dumps(data))
        return r.json()["results"]
    #[{'data': [{'bottom': 75, 'confidence': 0.9988584518432617, 'left': 167, 'right': 193, 'top': 40}], 'path': 'ndarray_time=1628745620275759.0'}]
     
    print('开始人脸摄像头实时检测')
    # 从摄像头中读取图像帧
     
    cap = cv2.VideoCapture(0)
     
    while (1):
        # 获取一帧图像
        ret, frame = cap.read()
        # 缩放并利用INTER_CUBIC插值法
        frame = cv2.resize(frame, (640, 480), interpolation=cv2.INTER_CUBIC)
        # fps计算
        start = time.time()
        result = predict(frame)
        end = time.time()
        fps = 1 / (end - start)
        # 绘制人脸框
        if len(result[0]['data']) != 0:
            for detection in result[0]['data']:
                confidence = float(detection['confidence'])
                # 获取左上角图片的坐标
                xmin = int(detection['left'])
                ymin = int(detection['top'])
                # 获取右下角图片的坐标
                xmax = int(detection['right'])
                ymax = int(detection['bottom'])
                if confidence > 0.7:
                    # 图片 添加的文字 位置 字体 字体大小 字体颜q色 字体粗细
                    cv2.putText(frame, detection['label'], (xmin, ymin + 20), cv2.FONT_HERSHEY_SIMPLEX, 0.75,
                               (0, 0, 255), 2)
                    cv2.rectangle(frame, (xmin, ymin), (xmax, ymax), color=(0, 255, 0))
        # 展示图像
        cv2.putText(frame, 'fps:{:.2f}'.format(fps), (20, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2)
        cv2.imshow("capture", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            # 每1毫秒监听一次键盘的动作,按q键结束,并保存图片
            cv2.imwrite('out.png', frame)
            print("已保存最后一帧!")
            break
    # 关闭摄像头及显示窗口
    cap.release()
    cv2.destroyAllWindows()
    print('人脸摄像头实时检测完成')
    
    

    更多模型及使用方法参考官网:PaddleHub官网

    更多相关内容
  • Py之paddlehubpaddlehub的简介、安装、使用方法之详细攻略 目录 paddlehub的简介 paddlehub的安装 paddlehub的使用方法 1、使用PaddleHub下载数据集、预训练模型等 paddlehub的简介  PaddleHub是飞桨预训练模型...
  • PaddleHub体验口罩识别 PaddleHub 口罩检测示例 防控疫情,众志成城。人工智能技术正被应用到疫情防控中来。 百度积极响应号召,为了助推全社会的力量将AI技术应用于防疫工作,决定免费开源自研的“口罩人脸...
  • 这是一个基于paddlehub的项目。(疯狂安利aistudio,Tesla V100警告 本项目的功能是:输入一个人的照片,输出这个人的漫画风格脸。 本项目分为两部分,第一部分,检测出图片中的人脸,并进行裁剪。第二部分,将检测...
  • PaddleHub是基于PaddlePaddle生态下的预训练模型管理和迁移学习工具,可以结合预训练模型更便捷地开展迁移学习工作
  • paddlehub_infer.py

    2021-07-26 16:51:07
    找了很久也没找到如何在paddle上部署微调后的Ernie,自己废了好大劲终于调通; paddlehub保存的模型是动态图模型,要进行转换(见model_change);
  • AI有意义模块一些基于paddlehub的AI项目飞行员状态识别一般而言,人在疲劳的时候会有比较典型的面部表情或动作特征,如对准的眨眼持续时间,较慢的眼睑运动,点头,打哈欠等。根据摄像头的加速度监测方案正是利用这...
  • PaddleHub一键OCR中文识别(超轻量部署linux服务器成功详细解决报错文档
  • PaddleHub二次加工
  • 资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:paddlehub-1.5.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
  • PaddleHub实战篇{词法分析模型LAC、情感分类ERNIE Tiny}训练、部署【三】 文章参考链接: ...
  • paddlehub ocr实践 网课手酸酸,眼花花,救星来啦! paddlehubocr实践 网课看完笔油见底,两手酸酸,头皮麻麻,本子满满密密麻麻。 你还在为网课抄不完的笔记烦恼嘛? 你还在为网课那弄不完的无底洞头疼嘛? 你们的...
  • PaddleHub是百度飞桨深度学习框架的预训练模型管理和迁移学习工具。 其主要特性包括: 1. 丰富的预训练模型; 2. 模型即软件; 3. Fine-tone API。 PaddleHub项目开源链接:...
  • 使用飞桨PaddleHub实现皮影戏创作
  • 基于PaddleHub一键部署的图像系列Web服务.pptx 详细介绍项目使用、思路。 最初的想法:通过飞桨- Paddle Lite在手机端实现抠图,让绝大多数人不需要代码就可以直接使用,一起享受深度学习的乐趣;后来发现我的手机...
  • 【paddle】paddlehub

    千次阅读 2022-01-30 11:13:19
    1 安装paddlehub pip install --upgrade paddlehub -i https://mirror.baidu.com/pypi/simple 2 Python预测 口罩检测代码: import paddlehub as hub import cv2 def detectMask(img_path): module = hub....

    Paddlehub快速入门:
    https://paddlehub.readthedocs.io/zh_CN/release-v2.1/get_start_index.html

    教程:
    https://paddlehub.readthedocs.io/zh_CN/release-v2.1/tutorial_index.html
    图像分类finetune:
    https://paddlehub.readthedocs.io/zh_CN/release-v2.1/finetune/image_classification.html
    自定义数据:
    https://paddlehub.readthedocs.io/zh_CN/release-v2.1/finetune/customized_dataset.html

    API:
    https://paddlehub.readthedocs.io/zh_CN/release-v2.1/api_index.html

    1 安装paddlehub


    pip install --upgrade paddlehub -i https://mirror.baidu.com/pypi/simple

    2 Python预测


    口罩检测代码:

    import paddlehub as hub
    import cv2


    def detectMask(img_path):
        module = hub.Module(name="pyramidbox_lite_mobile_mask")
        test_img_path = "test.png"
        img = cv2.imread(test_img_path)
        # print(img.shape)
        # set input dict
        input_dict = {"data": [img]}
        results = module.face_detection(data=input_dict)
        print(results)
        print(results[0]["data"][0]["label"])
        print(results[0]["data"][0]["confidence"])
        print(results[0]["data"][0]["top"])
        print(results[0]["data"][0]["bottom"])
        print(results[0]["data"][0]["left"])
        print(results[0]["data"][0]["right"])


    if __name__ == '__main__':
        detectMask("test.png")
        pass

    结果图:

    watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmFja2lsaW5hX1N0b25l,size_20,color_FFFFFF,t_70,g_se,x_16

    3 图像分类迁移学习

    (1)使用自带的数据集迁移学习

    代码:

    import paddle

    import paddlehub.vision.transforms as T

    import paddlehub as hub

    # Step1: 定义数据预处理方式

    transforms = T.Compose(

        [T.Resize((256, 256)), T.CenterCrop(224), T.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])],

        to_rgb=True)

    # Step2: 下载数据集并使用

    from paddlehub.datasets import Flowers

    flowers = Flowers(transforms)

    flowers_validate = Flowers(transforms, mode='val')

    # Step3: 加载预训练模型

    model = hub.Module(name="resnet50_vd_imagenet_ssld", label_list=["roses", "tulips", "daisy", "sunflowers", "dandelion"])

    # Step4: 选择优化策略和运行配置

    optimizer = paddle.optimizer.Adam(learning_rate=0.001, parameters=model.parameters())

    trainer = hub.Trainer(model, optimizer, checkpoint_dir='img_classification_ckpt')

    trainer.train(flowers, epochs=10, batch_size=2, eval_dataset=flowers_validate, save_interval=1)

    watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmFja2lsaW5hX1N0b25l,size_19,color_FFFFFF,t_70,g_se,x_16

    (2) 使用自己得数据集迁移学习

    watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmFja2lsaW5hX1N0b25l,size_20,color_FFFFFF,t_70,g_se,x_16

    import paddle
    import paddlehub.vision.transforms as T
    import paddlehub as hub
    import os
    from typing import Callable, Tuple
    import paddle
    import numpy as np
    from paddlehub.finetune.trainer import Trainer
    dataROOTPath = "C:/Users/Happy/.paddlehub/dataset"

    class MyDataSet(paddle.io.Dataset):
        def __init__(self, transforms: Callable, mode: str = 'train'):
            self.mode = mode
            self.transforms = transforms
            self.num_classes = 2

            if self.mode == 'train':
                self.file = 'train_list.txt'
            elif self.mode == 'test':
                self.file = 'test_list.txt'
            else:
                self.file = 'validate_list.txt'
            self.file = os.path.join(dataROOTPath, 'mydata', self.file)

            with open(self.file, 'r') as file:
                self.data = file.read().split(' ')

        def __getitem__(self, idx) -> Tuple[np.ndarray, int]:
            img_path, grt = self.data[idx].split(' ')
            img_path = os.path.join(dataROOTPath, 'mydata', img_path)
            im = self.transforms(img_path)
            return im, int(grt)

        def __len__(self):
            return len(self.data)

    # Step1: 定义数据预处理方式
    transforms = T.Compose(
        [T.Resize((256, 256)), T.CenterCrop(224), T.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])],
        to_rgb=True)
    # Step2: 使用自己的数据集
    myDataSet = MyDataSet(transforms, mode='train')
    myDataSet_validate = MyDataSet(transforms, mode='val')
    # Step3: 加载预训练模型
    model = hub.Module(name="resnet50_vd_imagenet_ssld", label_list=["roses", "sunflowers"])
    # Step4: 选择优化策略和运行配置
    optimizer = paddle.optimizer.Adam(learning_rate=0.001, parameters=model.parameters())
    trainer = Trainer(model, optimizer, checkpoint_dir='img_classification_ckpt')
    trainer.train(myDataSet, epochs=10, batch_size=2, eval_dataset=myDataSet_validate, log_interval=2, save_interval=1)

    4 模型预测

    import paddle
    import paddlehub as hub

    if __name__ == '__main__':

        model = hub.Module(name='resnet50_vd_imagenet_ssld', label_list=["roses", "tulips", "daisy", "sunflowers", "dandelion"], load_checkpoint='/PATH/TO/CHECKPOINT')
        result = model.predict(['flower.jpg'])

    展开全文
  • PaddleHub教程合集

    2021-07-09 10:12:07
    PaddleHub教程合集 PaddleHub是基于PaddlePaddle生态下的预训练模型管理和迁移学习工具,可以结合预训练模型更便捷地开展迁移学习工作。通过PaddleHub,您可以: 便捷地获取PaddlePaddle生态下的所有预训练模型,...

    原文链接:https://aistudio.baidu.com/aistudio/projectdetail/2168053

    PaddleHub教程合集

    PaddleHub是基于PaddlePaddle生态下的预训练模型管理和迁移学习工具,可以结合预训练模型更便捷地开展迁移学习工作。通过PaddleHub,您可以:

    便捷地获取PaddlePaddle生态下的所有预训练模型,涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、语言模型、视频分类、图像生成、图像分割九类主流模型。 更多详情可查看官网:https://www.paddlepaddle.org.cn/hub 通过PaddleHub Fine-tune API,结合少量代码即可完成大规模预训练模型的迁移学习,具体Demo可参考以下链接:

    展开全文
  • 【飞桨】手把手教你用paddlehub在自己数据集上做迁移学习paddlehub数据集运行环境1.数据分析2.数据处理3.训练配置4.开始训练5.结果预测 paddlehub paddlehub是百度paddlepaddle深度学习框架提供的配套预训练模型应用...

    paddlehub

    paddlehub是百度paddlepaddle深度学习框架提供的配套预训练模型应用管理工具,提供Python API和命令行两种调用模式,目前的预训练模型覆盖了图像分类、语义模型、视频分类、图像生成、图像分割、文本审核、关键点检测等业界主流模型,功能十分强大。Github地址:https://github.com/PaddlePaddle/PaddleHub
    在这里插入图片描述

    paddlehub的强大,但是官方提供做自己数据集迁移学习的demo较少,目前网上提供资料也不多且较散,这里我就以我自己的一个简单的project为例,给大家讲解一下paddlehub的迁移学习使用入门。

    数据集

    完整项目地址:https://aistudio.baidu.com/aistudio/projectdetail/782743
    数据集可在kaggle官网下载,但有的同学嫌翻墙麻烦下载慢,我也在百度网盘和aistudio上放了一份:
    百度网盘:链接: https://pan.baidu.com/s/12RbvTpOfUL8eM9vNwWW72A提取码: 4fe4
    aistudio:https://aistudio.baidu.com/aistudio/datasetdetail/38429
    kaggle:https://www.kaggle.com/c/state-farm-distracted-driver-detection

    运行环境

    paddlepaddle 1.8.0 + paddlehub 1.8.4

    1.数据分析

    !unzip -o -q data/data38429/distracted_driver_detection.zip
    print("done")
    

    解压数据集,可以看到最后生成:train文件夹+test文件+driver_imgs_list.csv

    我们先来分析一下mgs_list.csv文件,打开可以看到共有三个信息:

    • subject:拍摄的司机编号
    • classname:分心行为对应的标签
    • img:对应的图片数据名
      先来看看司机数据的数据分布:
    #csv文件路径
    dir = "driver_imgs_list.csv"
    
    #读取csv中subject的数据
    #subject对应的是司机的编号
    img_csv = os.path.join(dir)
    csv_data = pd.read_csv(img_csv)
    driver_name = csv_data['subject']
    
    #储存所有司机的编号
    names = []
    for name in driver_name:
        if(name not in names):
            names.append(name)
    
    #计算每个司机有多少张图片
    driver_num = csv_data.groupby('subject')['img'].count()
    
    #显示每个司机图片数量
    print(driver_num)
    
    #显示总共多少个司机
    print("drivers count = {}".format(len(names)))
    
    #可视化
    plt.bar(x=names, height=driver_num, width=0.8)
    plt.show()
    

    从输出可以看到,司机一共是26个,每个司机的数据分布并没有一个明显的特征,下面再分析分析10个分类的样本数据

    class_name = csv_data['classname']
    
    #储存所有类别
    class_names = []
    for name in class_name:
        if(name not in class_names):
            class_names.append(name)
    
    #计算每个类别有多少张图片
    class_num = csv_data.groupby('classname')['img'].count()
    
    #显示每个类别图片数量
    print(class_num)
    
    #显示总共多少类
    print("class count = {}".format(len(class_names)))
    
    #可视化
    plt.bar(x=class_names, height=class_num, width=0.8)
    plt.show()
    

    从输出结果可以看到,分类是c0-c9共十个类别,且样本数分布较为均匀,诶很奈斯。

    提供的数据集中除了储存标注信息的csv文件外,只有train文件夹+test文件,无val集,所以下一步要对数据进行处理,划分出val集。

    2.数据处理

    因为提供的数据集中只有train和test无val集,所以人为的在train集中划分一部分数据作为val集并生成储存图片位置与类别的txt文件

    path = "train/"
    folders_name = os.listdir(path)
    
    a = open("train_list.txt", "w")
    b = open("val_list.txt", "w")
    
    count = 0
    val_count = 0
    train_count = 0
    
    for name in folders_name:
        image_names = os.listdir(path+name)
        for img_name in image_names:
            if(count % 20 == 0):
                b.write(path+name+"/"+img_name+name.replace("c"," ")+'\n')
                val_count = val_count + 1
            else:
                a.write(path+name+"/"+img_name+name.replace("c"," ")+'\n')
                train_count = train_count + 1
            count = count + 1
    
    a.close()
    b.close()
    print("train_list生成完毕,train数据集共{}个数据".format(train_count))
    print("val_list生成完毕,val数据集共{}个数据".format(val_count))
    print("合计{}个数据".format(count))
    

    将test集图片信息写入predict_list.txt文件中

    f = open("predict_list.txt", "w")
    predict_data = []
    
    path = "test/"
    folders_name = os.listdir(path)
    for name in folders_name:
        f.write(path+name+'\n')
        predict_data.append(path+name)
    print("predict_list.txt文件成功生成")
    f.close()
    

    生成储存标签信息的label_list.txt文件

    w = open("label_list.txt", "w")
    path = "train/"
    folders_name = os.listdir(path)
    for name in folders_name:
        w.write(name+'\n')
    print("label_list.txt文件成功生成")
    w.close()
    

    3.训练配置

    装载选中的模型(这边主要是举例,所以随便选的加载的模型)

    import paddlehub as hub
    module = hub.Module(name="mobilenet_v2_imagenet")
    input_dict, output_dict, program = module.context(trainable=True)
    

    定义了一个DemoDataset读取自己的数据集

    • train_list_file:训练集

    • validate_list_file:val集

    • test_list_file:测试集

    • predict_file:实际中做的要预测的数据

    因为没有predict_file就可以注释掉不管他了

    from paddlehub.dataset.base_cv_dataset import BaseCVDataset
       
    class DemoDataset(BaseCVDataset):	
       def __init__(self):	
           # 数据集存放位置
           self.dataset_dir = ""
           super(DemoDataset, self).__init__(
               base_path=self.dataset_dir,
               train_list_file="train_list.txt",
               validate_list_file="val_list.txt",
               test_list_file="predict_list.txt",
               #predict_file="predict_list.txt",
               label_list_file="label_list.txt",
               )
    dataset = DemoDataset()
    

    这里是于图像分类问题,所以选择ImageClassificationReader:图像分类数据预处理器,会修改输入数据集图像的尺寸、进行标准化处理、图像增广处理等操作。

    data_reader = hub.reader.ImageClassificationReader(
        image_width=module.get_expected_image_width(),
        image_height=module.get_expected_image_height(),
        images_mean=module.get_pretrained_images_mean(),
        images_std=module.get_pretrained_images_std(),
        dataset=dataset)
    

    配置训练的一些超参数,在strategy里可以配置很多优化的参数,这里的优化策略选取的默认优化策略。其对应参数如下:

    • learning_rate: 全局学习率。默认为1e-4。

    • optimizer_name: 优化器名称。默认adam。

    • regularization_coeff: 正则化的λ参数。默认为1e-3。

    config = hub.RunConfig(
        use_cuda=True,                               #是否使用GPU训练
        num_epoch=10,                                #Fine-tune的轮数
        checkpoint_dir="source",                     #模型checkpoint保存路径
        batch_size=16,                               #训练的批大小
        eval_interval=100,                           #模型评估的间隔
        strategy=hub.finetune.strategy.DefaultFinetuneStrategy())  #Fine-tune优化策略;
    

    把设置好的参数写入并建立ImageClassifierTask任务

    feature_map = output_dict["feature_map"]
    feed_list = [input_dict["image"].name]
    
    #ImageClassifierTask:通用的分类任务Task,该Task基于输入的特征,添加一个或多个全连接层来创建一个分类任务用于Fine-tune
    task = hub.ImageClassifierTask(
        data_reader=data_reader,           #提供数据的reader
        feed_list=feed_list,               #待feed变量的名字列表
        feature=feature_map,               #输入的特征矩阵
        num_classes=dataset.num_labels,    #分类任务的类别数量
        config=config)                     #运行配置
    
    

    这两步可能会报的错误:

    1. AttributeError: ‘Parameter’ object has no attribute
      ‘gradient_clip_attr’
      paddlehub不是最新版导致的,建议升级paddlehub至1.8.2再试一试,如果还不行就检查一下自己paddlepaddle版本是不是1.8以上的
    2. Error: Blocking queue is killed because the data reader raises an
      exception 这个报错问题出在reader上,在这个报错向上找,如果能找到类似:ValueError: invalid
      literal for int() with base 10: 'c2’的语句,就铁锤是因为便签设置的问题
      我这里是十分类问题,对应标签是c0-c9十个,但是最后分类对应的标签应该是0-9这种整数,在前面生成txt那里进行修改就可以解决了

    4.开始训练

    激活task的finetune和eval

    run_states = task.finetune_and_eval()
    

    5.结果预测

    调用task.predict来进行预测,最后返回的预测结果是一个batch一个batch大小返回的

    import numpy as np
    label_map = dataset.label_dict()
    index = 0
    run_states = task.predict(data=predict_data)
    results = [run_state.run_results for run_state in run_states]
    
    images_data= []
    res_data= []
    for batch_result in results:
        batch_result = np.argmax(batch_result, axis=2)[0]
        for result in batch_result:
            index += 1
            result = label_map[result]
            print("input %i is %s, and the predict result is %s" %
                  (index, predict_data[index - 1], result))
            images_data.append(predict_data[index - 1])
            res_data.append(result)
    print(res_data)
    

    paddlehub功能强大学会使用可以给自己做项目省很多精力,希望这篇博客能解决大家刚开始使用paddlehub的一些问题。
    项目地址如下,欢迎大家fork、讨论
    项目地址:https://aistudio.baidu.com/aistudio/projectdetail/782743

    展开全文
  • Paddlehub一些简单应用

    2021-02-11 18:27:14
    首先介绍两个终端命令 ...开始之前先更新一下PaddleHub的版本 In [1] !pip install paddlehub==2.0.0b2 -i https://mirror.baidu.com/pypi/simple Looking in indexes: https://mirror.baid...
  • 60分钟教你上手PaddleHub

    万次阅读 2019-10-05 23:23:58
    PaddleHub 介绍  PaddleHub 是基于 PaddlePaddle 开发的预训练模型管理工具,可以借助预训练模型更便捷地开展迁移学习工作,旨在让 PaddlePaddle 生态下的开发者更便捷体验到大规模预训练模型的价值。  Paddle...
  • 第十天:paddlehub体验

    千次阅读 2022-01-18 18:28:55
    paddlehub口罩检测模型实例: #!unzip /home/aistudio/data/data25505/detection.zip Archive: /home/aistudio/data/data25505/detection.zip replace detection/test_mask_detection.jpg? [y]es, [n]o, [A]ll, [N]...
  • 问题遇到的现象和发生背景 安装paddlehub失败 运行代码为pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=100 paddlehub 运行结果及报错内容 ) 报错内容为 Building wheel for onnx ...
  • PaddleHub Serving模型一键服务部署

    千次阅读 2021-04-01 14:52:57
    使用PaddleHub能够快速进行模型预测,但开发者常面临本地预测过程迁移线上的需求。无论是对外开放服务端口,还是在局域网中搭建预测服务,都需要PaddleHub具有快速部署模型预测服务的能力。在这个背景下,模型一键...
  • PaddleHub:自定义Module

    千次阅读 2022-01-19 11:25:43
    1. 前提2. 创建项目文件夹3. 什么是__init__.py文件4....现在基于你已经训练好了一个模型,现在将它转为hub,方便管理和调用 2. 创建项目文件夹 首先,创建一个项目detect_hub文件夹,其必要结构为: 即项目.
  • PaddleHub教程合集—(2)PaddleHub预训练模型Senta完成情感分析 Senta—情感倾向分析(Sentiment Classification);针对带有主观描述的中文文本,可自动判断该文本的情感极性类别并给出相应的置信度,能够帮助企业...
  • PaddleHub教程合集—(1)PaddleHub预训练模型LAC完成词法分析 LAC:Lexical Analysis of Chinese,是一个联合的词法分析模型,能整体性地完成中文分词、词性标注、专名识别任务 一、定义待预测数据 aistudio平台上...
  • PaddleHub/README_ch.md at release/v2.1 · PaddlePaddle/PaddleHub · GitHub 1.3 安装paddlehub并下载模型 安装完paddlehub后,下载风格迁移模型: # 在命令行中输入以下命令 hub install stylepro_artistic==...
  • Paddle预训练模型应用工具PaddleHub

    千次阅读 2021-02-11 07:39:49
    Paddle预训练模型应用工具PaddleHub • 本文主要介绍如何使用飞桨预训练模型管理工具PaddleHub,快速体验模型以及实现迁移学习。建议使用GPU环境运行相关程序,可以在启动环境时,如下图所示选择“高级版”环境即可...
  • 注意,paddlehub模型会在线下载最新的,此时如果paddlepaddle安装旧版本的,会存在不兼容的报错。注意检查最新的paddle版本号

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,362
精华内容 1,744
关键字:

PaddleHub