当前位置: 首页 > article >正文

行业人工智能研究-Python自监督方式学习图像表示算法

学术界人工智能研究落后于工业界

摘要

  • 行业或工业界在人工智能研究上超出学术界,并占据着大量的计算力,数据集和人才
  • 诱人的薪水和明朗的预期吸引大量人才离开学术界,涌入行业或工业界
  • 即使,比如Meta开源其人工智能模型,众多学者或专家仍然无法对其核心部分一探究竟。
  • 行业或工业界和学术界需要互惠互利,因为学术界从事底层基础理论研究,行业界在此基础上开始研发顶尖技术。
  • 中国,美国和德国都在加速人工智能研究。

各国AI研究

在这里插入图片描述

行业人工智能研究

摘要

  • 自监督方式学习图像表示算法应用于图像分割网络语义分割
  • 随机配置网络算法
  • 炉温预测模型
  • 非侵入式负载监控算法模型
  • 时间序列处理随机配置网络算法

Python自监督方式学习图像表示算法

图像视觉转换

import math
import numpy as np
import torch
import torch.nn as nn
import fastcore.all as fc
from PIL import Image
from functools import partial
from torchvision.transforms import RandomResizedCrop, RandomHorizontalFlip, Compose, ToTensor, ToPILImage

让我们创建一个大小为 224x224 且补丁大小为 16 的图像

img_size = 224
patch_size = 32

加载数据

imgs = fc.L(fc.Path("coco/val2017/").glob("*.jpg"))
imgs #(#5000) [Path('coco/val2017/000000182611.jpg'),Path('coco/val2017/000000335177.jpg'),Path('coco/val2017/000000278705.jpg'),Path('coco/val2017/000000463618.jpg'),Path('coco/val2017/000000568981.jpg'),Path('coco/val2017/000000092416.jpg'),Path('coco/val2017/000000173830.jpg'),Path('coco/val2017/000000476215.jpg'),Path('coco/val2017/000000479126.jpg'),Path('coco/val2017/000000570664.jpg')...]

转换

def transforms(img_size):
    return Compose([RandomResizedCrop(size=img_size, scale=[0.4, 1], ratio=[0.75, 1.33], interpolation=2), 
                    RandomHorizontalFlip(p=0.5), 
                    ToTensor()])

def load_img(img_loc, transforms):
    img = Image.open(img_loc)
    return transforms(img)

load_img = partial(load_img, transforms=transforms(img_size=img_size))
img = load_img(imgs[1])
img.shape #torch.Size([3, 224, 224])

创建图像补丁

imgp = img.unfold(1, patch_size, patch_size).unfold(2, patch_size, patch_size).permute((0, 3, 4, 1, 2)).flatten(3).permute((3, 0, 1, 2))
imgp.shape #torch.Size([49, 3, 32, 32])
fig, ax = plt.subplots(figsize=(4, 4), nrows=7, ncols=7)
for n, i in enumerate(imgp):
    ax.flat[n].imshow(ToPILImage()(i))
    ax.flat[n].axis("off")
plt.show()

创建屏蔽标记

tokens = imgp.shape[0]
mask_ratio = 0.75
mask_count = int(tokens* mask_ratio)
tokens, mask_count #(49, 36)
mask_idx = torch.randperm(tokens)[:mask_count]
mask = torch.zeros(tokens).long()
mask[mask_idx] = 1
mask
#tensor([1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1,
#        0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1,
#        0])
fig, ax = plt.subplots(figsize=(4, 4), nrows=7, ncols=7)
for n, i in enumerate(imgp):
    if mask[n] == 1:
        i = torch.zeros(3, 32, 32)
    ax.flat[n].imshow(ToPILImage()(i))
    ax.flat[n].axis("off")
plt.show()

为每个非屏蔽标记创建嵌入向量。

input_tokens = imgp[~mask.bool(), ...].flatten(1)
input_tokens.shape 
imgp[~mask.bool(), ...].shape 

👉更新:亚图跨际


http://www.kler.cn/a/319521.html

相关文章:

  • 代码随想录第二十一天| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树
  • npm list @types/node 命令用于列出当前项目中 @types/node 包及其依赖关系
  • 第一个 Flutter 项目(1)共46节
  • 【Linux】-学习笔记03
  • OpenGL ES 共享上下文实现多线程渲染
  • ctfshow-web入门-SSTI(web361-web368)上
  • mysql表逆向实体类
  • Linux 基础IO 2
  • 网络原理之IP协议(网络层)
  • java线程Thread的组名是main就是在主线程吗?
  • LeetCode 每周算法 6(图论、回溯)
  • react:React Hook函数
  • MySQL篇(存储引擎)(持续更新迭代)
  • 杂牌鼠标侧键设置
  • C++:AB5 点击消除
  • 基于大数据的电子产品需求数据分析系统的设计与实现(Python Vue Flask Mysql)
  • 每日一题|2306. 公司命名|哈希映射、集合运算
  • FastAPI挂载静态资源
  • 单词记忆的化境:用思想的流水去淹没坚硬的石块
  • 【网络安全】网络基础第一阶段——第四节:网络协议基础---- VRRP与网络架构设计
  • 三种springboot启动时加载方式
  • 使用Renesas R7FA8D1BH (Cortex®-M85)和微信小程序App数据传输
  • 黑盒测试 | 挖掘.NET程序中的反序列化漏洞
  • 统信服务器操作系统【d版系统上Ansible工具】配置方法
  • MySQL:表的约束
  • 2.Seata 1.5.2 集成Springcloud-alibaba