Pytorch C++ 随机分布与定义变量

pytorch c++ 环境搭建,点击

#include <torch/script.h>
#include <ATen/ATen.h>
#include <iostream>
#include <memory>

using namespace std;
using namespace at;

int main(int argc, const char* argv[])
{
    at::Tensor one = at::ones({2,2}, at::kInt);
    std::cout<< "at::Tensor one is\n" << one << std::endl;
    std::cout<< "at::Tensor one size is " << one.sizes() << std::endl;
    std::cout<< "at::Tensor one dtype is " << one.dtype() << std::endl;
    std::cout<< "------------------------" << std::endl;

    at::Tensor zero = at::zeros({2,2}, at::kInt);
    std::cout<< "at::Tensor zero is\n" << zero << std::endl;
    std::cout<< "at::Tensor zero size is " << zero.sizes() << std::endl;
    std::cout<< "at::Tensor zero dtype is " << zero.dtype() << std::endl;
    std::cout<< "------------------------" << std::endl;

    torch::Tensor t_one = at::ones({2,2}, torch::kInt);
    std::cout<< "torch::Tensor one is\n" << t_one << std::endl;
    std::cout<< "torch::Tensor one size is " << t_one.sizes() << std::endl;
    std::cout<< "torch::Tensor one dtype is " << t_one.dtype() << std::endl;
    std::cout<< "------------------------" << std::endl;

    torch::Tensor t_zero = at::zeros({2,2}, torch::kInt);
    std::cout<< "torch::Tensor zero is\n" << t_zero << std::endl;
    std::cout<< "torch::Tensor zero size is " << t_zero.sizes() << std::endl;
    std::cout<< "torch::Tensor zero dtype is " << t_zero.dtype() << std::endl;
    std::cout<< "------------------------" << std::endl;

    torch::Tensor gaussian = torch::randn({2,2}, torch::kFloat32);    //标准的高斯分布
    std::cout<< "torch::Tensor gaussian is\n" << gaussian << std::endl;
    std::cout<< "torch::Tensor gaussian size is " << gaussian.sizes() << std::endl;
    std::cout<< "torch::Tensor gaussian dtype is " << gaussian.dtype() << std::endl;
    std::cout<< "------------------------" << std::endl;

    torch::Tensor uniform = torch::rand({2,2}, torch::kFloat32);   //0-1的随机分布
    std::cout<< "torch::Tensor uniform is\n" << uniform << std::endl;
    std::cout<< "torch::Tensor uniform size is " << uniform.sizes() << std::endl;
    std::cout<< "torch::Tensor uniform dtype is " << uniform.dtype() << std::endl;
    std::cout<< "------------------------" << std::endl;

    auto c = gaussian + uniform;
    std::cout<< "torch::Tensor c is\n" << c << std::endl;
    std::cout<< "torch::Tensor c size is " << c.sizes() << std::endl;
    std::cout<< "torch::Tensor c dtype is " << c.dtype() << std::endl;
    std::cout<< "------------------------" << std::endl;

    std::cout<< "ok\n";
    return 1;
}

编译并执行

make clean
make
./bin/demo

输出结果

rose@rose-machine:~/pytorch_c++/test$ ./bin/demo 
at::Tensor one is
 1  1
 1  1
[ CPUIntType{2,2} ]
at::Tensor one size is [2, 2]
at::Tensor one dtype is int
------------------------
at::Tensor zero is
 0  0
 0  0
[ CPUIntType{2,2} ]
at::Tensor zero size is [2, 2]
at::Tensor zero dtype is int
------------------------
torch::Tensor one is
 1  1
 1  1
[ CPUIntType{2,2} ]
torch::Tensor one size is [2, 2]
torch::Tensor one dtype is int
------------------------
torch::Tensor zero is
 0  0
 0  0
[ CPUIntType{2,2} ]
torch::Tensor zero size is [2, 2]
torch::Tensor zero dtype is int
------------------------
torch::Tensor gaussian is
 0.4986 -0.4284
-0.0741 -0.7684
[ Variable[CPUFloatType]{2,2} ]
torch::Tensor gaussian size is [2, 2]
torch::Tensor gaussian dtype is float
------------------------
torch::Tensor uniform is
 0.7840  0.3166
 0.1904  0.2926
[ Variable[CPUFloatType]{2,2} ]
torch::Tensor uniform size is [2, 2]
torch::Tensor uniform dtype is float
------------------------
torch::Tensor c is
 1.2827 -0.1118
 0.1163 -0.4759
[ Variable[CPUFloatType]{2,2} ]
torch::Tensor c size is [2, 2]
torch::Tensor c dtype is float
------------------------
ok

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值