41 explicit Tensor(
const std::vector<T>& data,
const std::vector<size_t>& shape,
42 DeviceType device = DeviceType::CPU,
43 DataType dtype = DataType::Float64)
44 : impl_(std::make_shared<
TensorImpl>(data, shape, device, dtype)) {}
56 std::vector<T> converted_data(impl_->numel());
57 LMP_DISPATCH_ALL_TYPES(impl_->type(), [&] {
58 std::unique_ptr<scalar_t[]> original_data = std::make_unique<scalar_t[]>(numel());
59 ops::copy_stub()(device(), DeviceType::CPU, data(),
60 original_data.get(), numel(), type(), type());
62 for (size_t i = 0; i < impl_->numel(); ++i) {
63 converted_data[i] = static_cast<T>(original_data[i]);
66 return converted_data;