Simon Shi的小站

人工智能,机器学习 学习记录


  • Home

  • About

  • Tags

  • Categories

  • Archives

AIs -- GPT

Posted on 2023-06-01 | In GPT
GPT2模型详解_zhurui_xiaozhuzaizai的博客-CSDN博客 GitHub - lencx/ChatGPT: 🔮 ChatGPT Desktop Application (Mac, Windows and Linux)
Read more »

Tensorflow权重迁移至Pytorch

Posted on 2023-05-05 | In DNN_platform
Tensorflow权重迁移至Pytorch_tensorflow权重转pytorch_古月萝北的博客-CSDN博客 Conv2D层Tensorflow的数据维度为(B,H,W,C), 而Pytorch的数据维度为(B,C,H,W), 因此二者卷积层的权重矩阵也是不一样的。Pytorch的为(out_channels,in_channels,H,W), Tensorflow的为(H,W,in_channels,out_channels), 因此权重迁移时需要转置权重矩阵。 此外,如果卷积带有bias,layer.get_weights()返回长度为2的列表,第一个元素为权重矩阵,第二个元素为bias. 12345678910111213141516171819202122class Conv2dWithName(nn.Module): def __init__(self,in_planes, out_planes, kernel_size=3, stride=1,padding=0, groups=1, use_bias=True, dilation=1,name=None): ...
Read more »

(pytorch) libtorch Models deploy

Posted on 2023-05-05 | In DNN_Platform , pytorch , c++
深度学习模型热更新及libtorch显存管理
Read more »

Caffe、Tensorflow和Pytorch通道维度顺序小结

Posted on 2023-05-04 | In DNM_Platform
Caffe、Tensorflow和Pytorch通道维度顺序小结N: batch; C: channel H: height W: width Caffe 的Blob通道顺序是:NCHW; Tensorflow的tensor通道顺序:默认是NHWC, 也支持NCHW,使用cuDNN会更快; Pytorch中tensor的通道顺序:NCHW TensorRT中的tensor 通道顺序: NCHW numpy image: H x W x Ctorch image: C X H X W 目前世面上深度学习框架比较多,常用的有三大类:Caffe、Tensorflow和Pytorch,这三种深度学习框架都主要在英伟达显卡上面进行训练和测试,很奇怪的是,它们之间的通道维度顺序并没有保持一致,在多个框架中替换着使用,很容易让人混淆了,所以做一个小结。 Caffe 的通道顺序是NCHW; Tensorflow的通道顺序默认是NHWC(但可以设置成NCHW),NHWC 的访存局部性更好(每三个输入像素即可得到一个输出像素),NCHW 则必须等所有通道输入准备好才能得到最终输出结果,需要占用较大的临时 ...
Read more »

PB(tf) to Pth(Torch)

Posted on 2023-05-04 | In DNN_platform
[已经验证], 需要根据网络模块修改 将tensorpack的inference改为pytorch_.pb转换为.pth_云端一散仙的博客-CSDN博客 将pb文件转为pth文件 相关的文件 123456789101112131415161718192021import torchfrom collections import OrderedDictimport tensorflow as tffrom tensorflow.python.framework import tensor_utildef view_params(): pb_file = 'ocr/checkpoint/text_recognition_377500.pb' graph = tf.Graph() with graph.as_default(): with tf.gfile.FastGFile(pb_file, 'rb') as f: graph_def = tf.GraphDef() graph_def.ParseFromStri ...
Read more »

LibPyTorch Doc

Posted on 2023-05-04 | In DNN_Platform , PyTorch
Tensor初始化123456789101112131415161718192021222324252627//1 数组 -> Tensorint data[10] = {3,4,6}torch::Tensor x_data = torch::from_blob(data,{3},torch::kFloat)//2 vector -> Tensorstd::vector<float> std_vector = {3,4,6};torch::Tensor vector_data = torch::from_brob(std_vector.data(),{3},torch::kFloat);//3 Tensor liketorch::Tensor x = torch::zeros({3,4});torch::Tensor x_zeros = torch::zeros_like(x);torch::Tensor x_ones = torch::ones_like(x); ...
Read more »

TF <--> Torch

Posted on 2023-04-20 | In Torch , TF
将Pytorch卷积层权重转到Tensorflow中上面刚刚说了在Pytorch的卷积层中,kernel weights存储格式是[kernel_number, kernel_channel, kernel_height, kernel_width],但在Tensorflow的卷积层中kernel weights存储格式是[kernel_height, kernel_width, kernel_channel, kernel_number]。还有就是在卷积层中如果使用了bias那么bias weights是不需要处理的,因为卷积的bias weights只有一个维度,所以Pytorch和Tensorflow中存储的格式是一样的(后面测试也能验证这个结论)。 在下面代码中: 分别使用Pytorch和Tensorflow的Keras模块创建了卷积层 获取Pytorch创建卷积层的kernel weight以及bias weight 使用numpy对kernel weight的进行transpose处理 将转换后的权重载入到tensorflow的卷积层中 将之前创建的数据分别传入Pytor ...
Read more »

NLP - NN Archtecture

Posted on 2023-04-13
基础架构 纯 Encoder 模型(例如 BERT),又称自编码 (auto-encoding) Transformer 模型;适用于只需要理解输入语义的任务,例如句子分类、命名实体识别; 纯 Decoder 模型(例如 GPT),又称自回归 (auto-regressive) Transformer 模型;适用于生成式任务,例如文本生成; Encoder-Decoder 模型(例如 BART、T5),又称 Seq2Seq (sequence-to-sequence) Transformer 模型。适用于需要基于输入的生成式任务,例如翻译、摘要。 一个完整的AI应用包含了4个重要的环节: 第一个环节是关于大语言模型(LLM),这是大家在AI体系中接触最多的部分;第二个环节是与模型相关的Embedding;第三个环节是向量数据库;最后一个环节是Promote Engineer(AI提示词(Prompt))。 基础模块EmbedddingMutil-Head AttentionFeed ForwardAdd & Norm模型seq2seq Transforme ...
Read more »

C++调用python(VS 环境)

Posted on 2023-04-09 | In dev , c++
[TOC] 参考资料:验证Pass,其它博客都丢三落四 1、环境配置 IDE工具安装(VS studio为例) MINGW g++64位版本安装 path环境配置 python(64位版本)环境目录 include文件夹:里面是一些C语言代码头文件。其中将存放着供C语言调用的函数的定义。 libs文件夹:里面是一些 .lib文件。关于存放的内容: .lib可能存着函数具体的实现,也可能是存着索引 dll中函数实现的信息。由于这里的 .lib文件相对较小,而且目录里有 dll,所以存放的内容我想是后者。 dll文件:存着函数的具体实现 2、创建项目VS Studio 建立一个C++控制台应用 3)配置路径将 include文件夹加入 :项目右键设置—>【C/C++】附加包含目录 (头文件目录): 将 libs文件夹加入:链接器–常规–附加库目录 : 将所有 dll拷贝到工程目录下:【其它资料都没这一步,导致花费很多时间在此问题排查上】 4、项目运行123456789101112#include <Python.h>int main(){ ...
Read more »

C++ 算法实现

Posted on 2023-04-09
Contents: [TOC] 排列GO 排列组合 组合todo lower_bound头文件:algorithm lower_bound()返回值是一个迭代器,返回指向大于等于key的第一个值的位置;没找到就返回last位置 对象:有序数组或容器 12345678910#include <algorithm>#include <iostream>using namespace std;int main(){ int a[]={1,2,3,4,5,7,8,9}; printf("%d",lower_bound(a,a+8,6) - a); // a = a.begin() return 0; } 输出为 5
Read more »
1…789…29

Simon Shi

286 posts
132 categories
243 tags
RSS
© 2024 Simon Shi
Powered by Hexo
|
Theme — NexT.Muse v5.1.4