精华内容
下载资源
问答
  • Pytorch库,用于强化学习算法 此仓库当前包含以下RL算法: A2C 香草政策梯度 这支持OpenAI体育馆和mujoco。
  • 该库是PyTorch库的包装,主要是为分割任务而开发的。 结构 包装器的结构如下: vibotorch |__ database |__ procedure/experiments |__ segmentation/models |__ layer |__ nn |__ structures |__ test |_...
  • python-PyCharm导入Pytorch库

    万次阅读 2019-07-27 11:43:26
    记录悲催的一上午,想要导入Pytorch库,使用第一次Numpy的方法不行,使用第二次Tensorflow加入新链接的方法不行,并且又加了两个,各种问题,还不是超时,使用终端pip indtall pytorch也不行,我也不知道到底为啥,...

    记录悲催的一上午,想要导入Pytorch库,使用第一次Numpy的方法不行,使用第二次Tensorflow加入新链接的方法不行,并且又加了两个,各种问题,还不是超时,使用终端pip indtall pytorch也不行,我也不知道到底为啥,最后又get了一种新的方法。

    打开PyTorch官网(官网),点击Get Started,选择合适自己的版本,这是我的选择:

    打开cmd命令提示符,复制第一行(正常会出现进度条,我安装一次后还没结束关了,再打开就没有进度条了):

    复制第二条:

    这就安装好了,我们可以确认一下,打印我们安装的信息:

    cmd输入pip.exe,再输入pip show torch:

    展开全文
  • facenet-pytorch 的简单使用

    千次阅读 2020-07-23 08:45:47
    最近尝试facenet做识别,没有...facenet-pytorch库使用mtcnn进行人脸检测和InceptionResnetV1进行图像到欧式空间的向量映射。进行使用之前需要建立要识别的人脸特征向量数据库。结合timesler提供的例子,总结了人脸数

    最近尝试facenet做识别,没有从头复现,刚好在GitHub找到一个可以已经封装好的repo,使用起来也特别方便。项目地址 https://github.com/timesler/facenet-pytorch 。安装使用它只需直接pip install facenet-pytorch即可。

    facenet-pytorch库使用mtcnn进行人脸检测和InceptionResnetV1进行图像到欧式空间的向量映射。进行使用之前需要建立要识别的人脸特征向量数据库。结合timesler提供的例子,总结了人脸数据库制作的代码如下,提前将数据库中的人脸向量与其名字保存为本地文件,这样对新图识别的时候直接加载这个文件即可。

    该库使用的网络预训练权重在readme里面都有。
    第一步:制作自己的数据库。

    # 制作人脸特征向量的数据库 最后会保存两个文件,分别是数据库中的人脸特征向量和对应的名字。当然也可以保存在一起
    from facenet_pytorch import MTCNN, InceptionResnetV1
    import torch
    from torch.utils.data import DataLoader
    from torchvision import datasets
    import numpy as np
    import pandas as pd
    import os
    workers = 0 if os.name == 'nt' else 4
    device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
    print('Running on device: {}'.format(device))
    mtcnn = MTCNN(
        image_size=160, margin=0, min_face_size=20,
        thresholds=[0.6, 0.7, 0.7], factor=0.709, post_process=True,
        device=device
    )
    # InceptionResnetV1提供了两个预训练模型,分别在vggface数据集和casia数据集上训练的。
    # 预训练模型如果不手动下载,可能速度会很慢,可以从作者给的谷歌云链接下载,然后放到C:\Users\你的用户名\.cache\torch\checkpoints这个文件夹下面
    # 如果是linux系统,那么存放在/home/你的用户名/.cache/torch/checkpoints下面
    resnet = InceptionResnetV1(pretrained='vggface2').eval().to(device)
    
    def collate_fn(x):
        return x[0]
    # 将所有的单人照图片放在各自的文件夹中,文件夹名字就是人的名字,存放格式如下
    '''
    --orgin
      |--zhangsan
         |--1.jpg
         |--2.jpg
      |--lisi
         |--1.jpg
         |--2.jpg
    '''
    dataset = datasets.ImageFolder('./database/orgin')  #加载数据库 
    dataset.idx_to_class = {i:c for c, i in dataset.class_to_idx.items()}
    loader = DataLoader(dataset, collate_fn=collate_fn, num_workers=workers)
    aligned = []  # aligned就是从图像上抠出的人脸,大小是之前定义的image_size=160
    names = []
    i= 1
    for x, y in loader:
        path = './database/aligned/{}/'.format(dataset.idx_to_class[y])  # 这个是要保存的人脸路径
        if not os.path.exists(path):
            i = 1
            os.mkdir(path)
        # 如果要保存识别到的人脸,在save_path参数指明保存路径即可,不保存可以用None
        x_aligned, prob = mtcnn(x, return_prob=True,save_path= path+ '/{}.jpg'.format(i))
        i = i+1
        if x_aligned is not None:
            print('Face detected with probability: {:8f}'.format(prob))
            aligned.append(x_aligned) 
            names.append(dataset.idx_to_class[y])
    
    aligned = torch.stack(aligned).to(device)
    embeddings = resnet(aligned).detach().cpu()   # 提取所有人脸的特征向量,每个向量的长度是512
    # 两两之间计算混淆矩阵
    dists = [[(e1 - e2).norm().item() for e2 in embeddings] for e1 in embeddings]
    print(names)
    print(pd.DataFrame(dists, columns=names, index=names)) 
    torch.save(embeddings,'database.pt')  # 当然也可以保存在一个文件
    torch.save(names,'names.pt')
    

    有了上述的数据库,就能通过距离识别人脸。这个库的mtcnn模型,只有一个forward和detect方法,其中forward的输出是人脸的3*image_size*image_size的张量,如果参数keep_all = True,则会增加一个维度,返回所有检测到的人脸张量,即N*3*image_size*image_size的张量,另外参数return_prob决定是否返回概率值,即检测到人脸的概率,典型用法如下。而detect方法则返回了检测的人脸框的位置坐标和概率。

    因此,forward的输出是NCHW的张量,用于后面的模型输入计算特征向量,而detect的输出是人脸的位置坐标,如果两个结果都需要的话,就得根据例子进行两次运算,相当于进行了两次推理运算。

    mtcnn = MTCNN()
    face_tensor, prob = mtcnn(img, save_path='face.png', return_prob=True)  # 返回的是检测到的人脸数据tensor 形状是N,3*160*160 # 尺寸不一定是160,之前的参数设置
    boxes, prob = mtcnn.detect(img)  # 直接返回人脸的位置坐标和概率
    

    对新的照片进行人脸识别

    # mtcnn网络负责检测人脸 
    mtcnn = MTCNN(keep_all=True, device=device)
    resnet = InceptionResnetV1(pretrained='vggface2').eval().to('cuda')
    
    names = torch.load("./database/names.pt")
    embeddings = torch.load("./database/database.pt").to('cuda')
    def detect_frame(img):
        fontStyle = ImageFont.truetype("LiberationSans-Regular.ttf", 25,encoding="utf-8")
        faces = mtcnn(img)  # 直接infer所有的faces
        #但是这里相当于两次infer,会浪费时间
        boxes, _ = mtcnn.detect(img)  # 检测出人脸框 返回的是位置 
        frame_draw = img.copy()
        draw = ImageDraw.Draw(frame_draw)
        print("检测人脸数目:",len(boxes))
        for i,box in enumerate(boxes):
            draw.rectangle(box.tolist(), outline=(255, 0, 0))  # 绘制框
            face_embedding = resnet(faces[i].unsqueeze(0).to('cuda'))
            #print(face_embedding.size(),'大小')
            # 计算距离
            probs = [(face_embedding - embeddings[i]).norm().item() for i in range(embeddings.size()[0])] 
            #print(probs)
            # 我们可以认为距离最近的那个就是最有可能的人,但也有可能出问题,数据库中可以存放一个人的多视角多姿态数据,对比的时候可以采用其他方法,如投票机制决定最后的识别人脸
            index = probs.index(min(probs))   # 对应的索引就是判断的人脸
            name = names[index] # 对应的人脸
            draw.text( (int(box[0]),int(box[1])), str(name), fill=(255,0,0),font=fontStyle)
        return frame_draw
    

    上述步骤还有很多地方可以更改,其中如果要想一步完成face_tensor的计算送入分类网络,与同时返回检测到的face_box,可以通过修改源码完成。

    通过观察,可以发现在forward的源码第一句实际上就是调用了detect方法,但是最后没有返回检测到的batch_boxes,而是通过它获取图像数据,因此,可以直接在返回值中增加一个目标框即可(但是如果后续要对模型进行调整训练,又会有其他部分的改动,比如训练时的损失计算这些,infer的结果应该是返回值的部分,毕竟原先只有一个返回值)。

    def forward(self, img, save_path=None, return_prob=False):
          # 这里是mtcnn的forward源码。可以看到,实际上也是调用了detect函数,返回了框坐标和概率,后面对框进行处理,从而返回实际的人脸数据
        with torch.no_grad():
    		batch_boxes, batch_probs = self.detect(img)
    

    另外作者提供了InceptionResnetV1的微调demo,按照数据集的格式组织文件后,基于预训练模型在自己的数据集上调整,可以效果更好。

    展开全文
  • pytorch库下载

    2020-05-07 12:33:13
    pytorch下载 1.下载cuda 2.pytorch官网pytorch.org查找相应版本的下载命名。 例如: conda install pytorch==1.0.0 torchvision==0.2.1 cuda90 -c pytorch torchtext下载 1.安装命令: pip install ...

    pytorch下载

    1.下载cuda
    2.pytorch官网pytorch.org查找相应版本的下载命名。
    例如:

    conda install pytorch==1.0.0 torchvision==0.2.1 cuda90 -c pytorch
    

    torchtext下载

    1.安装命令:

    pip install --index-url https://pypi.douban.com/simple torchtext
    

    镜像安装

    https://www.jianshu.com/p/db9c552f9d2a

    conda相关操作

    https://www.cnblogs.com/shierlou-123/p/11138920.html

    展开全文
  • Pytorch库,用于基于L0的修剪,如本文所述: 安装 pip install -U flop 用法 创建尺寸为N的硬混凝土面罩: from flop import HardConrete N = 100 hardconcrete = HardConcrete ( n_in = N ) 然后,您可以使用...
  • 开源PyTorch库可促进神经网络修剪方法的开发和标准化评估。 纸 此回购包含论文中的分析和基准测试结果。 。 安装 首先,安装依赖项,此仓库依赖 PyTorch Torchvision NumPy Pandas Matplotlib 安装依赖项 # ...
  • 高岭土:用于加速3D深度学习研究的Pytorch库 概述 NVIDIA Kaolin库提供了一个PyTorch API,用于处理各种3D表示形式,并包括越来越多的GPU优化操作集合,例如模块化的可区分渲染,表示之间的快速转换,数据加载,3D...
  • 一个pytorch库,拥有最先进的架构,预训练模型和实时更新结果
  • PytorchInsight这是一个pytorch库,具有最新的体系结构,预训练的模型和实时更新的结果。 该存储库旨在加速深度学习研究的发展,提供可重复的结果和e PytorchInsight。这是一个pytorch库,具有最新的体系结构,预...
  • 旷视开源了一套图像检索和 ReID 的 PyTorch ,论文“PyRetri: A PyTorch-based Library for Unsupervised Image Retr...

    旷视开源了一套图像检索和 ReID 的 PyTorch 库,论文“PyRetri: A PyTorch-based Library for Unsupervised Image Retrieval by Deep Convolutional Neural Networks”介绍了其主要内容。

    01

    架构

    深度学习图像检索无监督方法的架构

    • 在特征提取阶段,包含:数据增强(Data Augmentation对图像做各种变换)、骨干网选择(Backbone,使用不同的骨干网架构和预训练模型)、特征聚合(Aggregation,将不同网络提取的特征聚合成一个特征向量)。

    • 在索引阶段,包含:维度处理(Dimension Process,PCA降维等)、特征增强(Feature Enhance)、距离度量(Distance Metric,衡量样本之间的相似性)、重排序(Rerank,对相似度较高的图像按照几何信息等重新排序)

    • 在评估阶段,包含:结果量化(Quantitative results)和可视化(Visualization)

    02

    方法

    该库目前支持的方法:

    1、前处理方法

    • DirectResize (DR): 将图像长宽缩放到目标大小;

    • PadResize (PR): 根据图像长边将图像等比例缩放到目标大小,空白区域用ImageNet均值填充;

    • ShorterResize (SR): 根据图像短边将图像等比例缩放到目标大小;

    • TwoFlip (TF): 返回原始图像和水平翻转图像;

    • CenterCrop (CC): 从图像中心crop出目标大小的图像区域;

    • TenCrop (TC): crop图像并按照上下左右翻转

    2、特征表示方法

    3、后处理方法

    • SVD : 使用矩阵SVM分解降维;

    • PCA : PCA降维度;

    • DBA : 数据库中每一个特征用它自己和自己的近邻的加权和表示;

    • QE : 使用饭就的 top-k 近邻 和原始查询图像再进行一次检索;

    • k-reciprocal : 编码K个倒数最近邻,增强检索精度。

    特别值得一提的是,为了降低用户选择不同算法和超参数配置的难度,PyRetri提供了自动化的配置搜索工具,可根据用户的输入搜索空间和搜索脚本,自动选择最优的算法流程。

    03

    结果

    作者在基于内容的图像检索(CBIR)和行人重识别(ReID)常用数据集 Oxford5k、CUB-200-2011、Indoor、Caltech101、Market-1501上进行了实验。

    上表列出了通过搜索配置得到的前三个算法配置和每个数据集上的baseline方案结果的比较,可见使用官方推荐的配置工具,大大提高了检索mAP!

    使用 PyRetri 检索时各阶段用时比较:

    可见每幅图像平均时间还不到 8ms

    以下是在ReID问题上的实验结果:

    PyRetri 较好的复现了经典论文的结果,而且如果使用自动搜索配置的方法,能大幅提高精度!超过原方案10个百分点之多

    论文地址:

    https://arxiv.org/abs/2005.02154

    代码地址:

    https://github.com/PyRetri/PyRetri

    模型下载:

    官方不仅开源了代码,也提供了在ImageNet、Places365、Market-1501、DukeMTMC-reID数据集上的预训练模型,可惜国内无法下载。

    CV君已经将其搬运到了百度云,在我爱计算机视觉公众号后台回复“PyRetri”,即可收到下载链接。

    END

    备注:检索

    图像与视频检索交流群

    图像检索、视频检索、视频搜索、最近邻搜索等技术,

    若已为CV君其他账号好友请直接私信。

    我爱计算机视觉

    微信号:aicvml

    QQ群:805388940

    微博知乎:@我爱计算机视觉

    投稿:amos@52cv.net

    网站:www.52cv.net

    在看,让更多人看到  

    展开全文
  • Win10系统下的 pytorch 安装前言1. 安装版本2. 安装命令3. 测试代码 欢迎学习交流! zengf.hou@bit.edu.cn 前言 Window 系统下的python的安装并不友好,也许是因为“墙”的存在,很多原本非常容易安装的,在...
  • 本文将介绍如何在Windows系统中使用Anaconda安装pytorch库。 在百度搜索pytorch或者直接点击链接pytorch到pytorch的官方页面。前提是已经安装Window版本的Anaconda。 点击首页的Get Start按钮进入pytorch的版本...
  • 自主学习库:用于构建强化学习代理的PyTorch库 autonomous-learning-library是用于PyTorch的面向对象的深度强化学习(DRL)库。 该库的目标是提供必要的组件,以快速构建和评估新颖的强化学习代理,并提供现代DRL...
  • StudioGAN是一个Pytorch库,为有条件/无条件图像生成提供了代表性的生成对抗网络(GAN)的实现。 StudioGAN旨在为现代GAN提供一个完全相同的场所,以便机器学习研究人员可以轻松比较和分析新想法。 特征 PyTorch的...
  • 本文来自:机器之心 作者:杜伟、陈萍近日,机器之心在 GitHub 上看到了一个非常有意义的项目 PyTorch-StudioGAN,它是一个 PyTorch ,提供了条件 / 无条件...
  • TorchUtils是一个pytorch库,其中包含几个有用的工具以及一些最新的培训方法或技巧。 (工作正在进行中) 待办事项:整理代码库 使用pytorch 1.6重新编写仓库(因为PyTorch 1.6现在支持许多工具功能或技巧) 进口 ...
  • python安装pytorch库

    千次阅读 2020-06-30 12:17:17
    pytorch官网给的地址 如图所示,官网给的地址是下面的,但是下载起来巨慢,老是read time out 超时 这里要注意一点,那个windows10系统不支持cuda 后来我开始注意到镜像,下载国内的源文件,听说速度很快。但是自己...
  • Ἀνατομή是一个PyTorch库,用于分析神经网络的内部表示 该项目正在积极开发中,代码库可能会更改。 安装 anatome要求 Python>=3.8.0 PyTorch>=1.6.0 torchvision>=0.7.0 在安装PyTorch之后,请按以下步骤...
  • Pytorch库用于端到端的变压器模型训练,推理和服务。一系列出色的图书馆。 图书馆设计 该库的组织方式使得子包包含所有建模,数据结构和数据流类。 在子程序包中,包含所有特定于任务的代码。 可用任务: -经典的...
  • 理解Pytorch Tensor 和神经网络 训练一个小的神经网络来分类图片。 本手册假定你对numpy有一个基本的了解。 注意: 确保你的测试环境已经安装了torch 和 torchvision 包 Pytorch是什么? Pytoch...
  • 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI到底是怎样的一个bug,能让95%的Pytorch库中招,就连特斯拉AI总监深受困扰?还别说,这个bug虽小,但有够“狡猾”的。这...
  • pytorch最顶级的包,以及tensor(具体什么是tensor后面会说) torch.nn torch下包含用于搭建神经网络的modules和可用于继承的类的一个子包 torch.autograd torch下包含所有梯度运算的子包 torch.nn....
  • segmentation_models_pytorch库学习

    千次阅读 2020-10-20 10:22:33
    的主要功能是: 高级API(只需两行即可创建神经网络) 用于二分类和多类分割的7种模型架构(包括传奇的Unet) 每种架构有57种可用的编码器 所有编码器均具有预训练的权重,以实现更快更好的
  • PyTorch框架中有一个非常重要且好用的包torchvision。 torchvision包主要由3个子包组成,分别是: torchvision.datasets(目前流行的数据集); torchvision.models(目前流行的模型结构); -torchvision....
  • 它与 , , , 和您可能使用的任何其他基于PyTorch保持兼容。 要了解更多信息,请参见我们的白皮书: 概述 : TaskDataset和转换从任何PyTorch数据集创建几个次任务。 :用于计算机视觉和少量学习的模型,...
  • Face Recognition Using Pytorch Python 3.7 3.6 3.5 Status This is a repository for Inception Resnet (V1) models in pytorch, pretrained on VGGFace2 and CASIA-Webface. Pytorch model ...
  • 此仓库给出了一个使用简单的强化学习方法击败Lunar ... 该代理使用pytorch库结合使用CEM和神经网络。 您可以使用此按钮快速启动此项目并在云上运行 您可以在此处查阅随附的“中型”文章,以逐步了解如何制作代理: :

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,193
精华内容 2,477
关键字:

pytorch库