@Aditya_Kumar
Thanks for your reply.  So I tried following your code structure:
#include <torch/script.h>
#include <torch/torch.h>
#include <ATen/Tensor.h>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <memory>
#include <iomanip>

std::string type2str(int type) {
    std::string r;

    uchar depth = type & CV_MAT_DEPTH_MASK;
    uchar chans = 1 + (type >> CV_CN_SHIFT);

    switch (depth) {
    case CV_8U:  r = "8U"; break;
    case CV_8S:  r = "8S"; break;
    case CV_16U: r = "16U"; break;
    case CV_16S: r = "16S"; break;
    case CV_32S: r = "32S"; break;
    case CV_32F: r = "32F"; break;
    case CV_64F: r = "64F"; break;
    default:     r = "User"; break;
    }

    r += "C";
    r += (chans + '0');

    return r;
}

int main(int argc, const char* argv[]) {


    // Load up GPU stuff
    torch::DeviceType device_type;
    if (torch::cuda::is_available()) {
        std::cout << "CUDA available! Training on GPU." << std::endl;
        device_type = torch::kCUDA;
    }
    else {
        std::cout << "Training on CPU." << std::endl;
        device_type = torch::kCPU;
    }
    torch::Device device(device_type);
    torch::data::transforms::Normalize<> normalize_transform({ 0.485, 0.456, 0.406 }, { 0.229, 0.224, 0.225 });
    torch::jit::script::Module module;
    std::cout << "Attempting to load resnet model.." << std::endl;
    try {
        // Deserialize the ScriptModule from a file using torch::jit::load().
        module = torch::jit::load("C:\\PyTorchPictureTest\\Model\\traced_resnet_model.pt");
        std::cout << "Successfully loaded resnet model" << std::endl;

        module.to(at::kCUDA);
        std::cout << "Moved model to gpu" << std::endl;

        // load image and transform
        cv::Mat image;
        image = cv::imread("C:\\PyTorchPictureTest\\dog.jpg", cv::IMREAD_COLOR);

        std::cout << image.size << "\n" << std::endl;
        std::cout << image.cols << "\n" << std::endl;
        std::cout << image.rows << "\n" << std::endl;
        std::cout << type2str(image.type()) << "\n" << std::endl;

        cv::cvtColor(image, image, cv::COLOR_BGR2RGB);
        cv::Mat img_float;
        image.convertTo(img_float, CV_32FC3, 1.0f / 255.0f);
        cv::resize(img_float, img_float, cv::Size(224, 224), cv::INTER_NEAREST);

        auto img_tensor = torch::from_blob(img_float.data, { img_float.rows, img_float.cols, 3 }).to(torch::kCUDA);
        img_tensor = img_tensor.permute({ 2, 0, 1 });
        std::cout << img_tensor.sizes() << '\n';
        
        torch::Tensor img_tensor_norm = normalize_transform(img_tensor).unsqueeze_(0);

        std::vector<torch::jit::IValue> inputs;
        inputs.push_back(img_tensor_norm.to(at::kCUDA));
        torch::Tensor out_tensor = module.forward(inputs).toTensor();
        std::cout << out_tensor << '\n';
    }
    catch (const c10::Error & e) {
        std::cerr << "error loading the model\n";
        return -1;
    }

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

I seem to be getting an error on this line:
torch::Tensor img_tensor_norm = normalize_transform(img_tensor).unsqueeze_(0);

Error:
<Information not available, no symbols loaded for c10.dll>
“expected device cuda:0 but got device cpu”