自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 C++ fp32转bf16

111111111111

2023-04-12 15:41:51 574

原创 c++ vector 元素互换

1111111111111111111111111111111111111111

2023-01-28 11:24:54 395

原创 注册工厂模式解释

需求:有若干个基类和它们的具体类,要设计一个统一的接口来实例化它们,且要用名字来取,方便管理。同一基类的子类注册到同一个工厂为什么要有注册模板类?不能用工厂直接注册吗?如果是这样,注册的内容是什么?是具体或抽象类吗?这样背离了通过一统一接口创建需要一个东西,把所有的类抽象一下,这就是注册模板类。2.为什么注册模板类需要有父类?不同的基类如果要注册到同一个工厂里,就要求工厂是模板工厂。注册...

2021-10-20 19:38:13 435

原创 c++数据保存方法

下面展示一些 内联代码片。class Tensor {public: Tensor() = default; void setTempData(void* data, std::size_t data_size) { temp_data_.resize(data_size); std::memcpy(temp_data_.data(), data, data_size); } const std::vector<char>& getTempData

2021-07-26 11:33:52 2370

原创 在C++中如何手写onnx slice算子

slice 算子简介slice算子是对一个张量的某些轴进行切片获取数据。例如一个张量A的维度是 [d0, d1, d2,… di-1, di, di+1, … dn],如果对其第i轴进行切片(在此轴切取的数量为x),则操作后获得的张量维度为 [d0, d1, d2,… di-1, x, di+1, … dn]这种操作可以对多个轴进行操作,且每个轴可以指定starts index, ends index, steps(如果是2,则跳着2取数据,例如1,3,5,…)在python中,可以通过以下

2021-07-07 17:50:26 3442

原创 c++打印enum class

enum class A {a = 1,b = 2,c = 3};enum class B {d = 4,e = 5,f = 6};template <typename T>auto PrintNum(T const value)-> typename std::underlying_type<T>::type { return static_cast<typename std::underlying_type<T>::typ

2021-06-21 16:09:37 1912

原创 c++类的大小

如果没有虚函数,则类的大小等于成员变量所占的空间,不论有多少个函数都不会占用类的空间。class A {private: int32_t i = 0; // size = 4; int32_t j = 0; // size = 8; int plus (int a, int b) { return a+b;} void change_i (int a, int b) { i = a+b;}public: A() = default; ~A();};int main(

2021-06-13 16:35:51 99

原创 c++类多继承地址偏移

以下代码运行结果是:0x55c9167f3e700x55c9167f3e780x55c9167f3e70如以下代码所示,Input 类分别继承IOpAttrs 和 IInput ,进行static cast的时候,Input指针的地址只会和IOpAttrs 对齐,而和IInput 差8个字节。原因是IOpAttrs 内包含虚函数,而虚函数表会占8个字节。class IOpAttrs {public: virtual ~IOpAttrs() = default;protected: I

2021-06-13 16:02:58 278

原创 使用Gtest + Cmake做单元测试

第一步:下载googletest包到一个文件夹下,下载googletest文件包:git clone http://github.com/google/googletest.git第二步:编写CMakeLists.txt准备要测试的代码位test_.cpp 注意,不能直接叫test.cpp,因为这个名字被保留了。cmake_minimum_required(VERSION 3.14)project(my_project)set(CMAKE_CXX_STANDARD 11)add_subdir

2021-06-08 15:31:29 851 2

原创 使用C++构建一个简单的卷积网络,并保存为ONNX模型

#include <iostream>#include <fstream>#include"onnx.pb.h"#include<string>using namespace std;int main(){onnx::GraphProto *graph = new onnx::GraphProto;graph->set_name("torch-jit-export");onnx::NodeProto* node1 = graph->add_

2021-04-06 19:38:35 623

原创 用python 接口写一个简单的ONNX卷积网络

用ONNX python 接口写一个简单的卷积网络本文提供初学者一个简单的案例,使用onnx python接口,构建一个输入shape为[1,1,3,3],输出为[1,3,3,3]的单一卷积网络。卷积的权重全为1,偏置全为2。构建ONNX模型的代码import onnx import numpy as npimport onnxruntimeinput = onnx.helper.make_tensor_value_info("input",onnx.TensorProto.FLOAT,[1,1

2021-04-06 13:42:39 552

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除