|
1 | 1 | #include <vector> |
| 2 | +#include <torch/tensor.h> |
2 | 3 | #include <ATen/ATen.h> |
3 | 4 | #include <ATen/Functions.h> |
4 | 5 | #include <ATen/cuda/CUDAContext.h> |
@@ -239,7 +240,7 @@ at::Tensor Encoding_Dist_Inference_Forward_CUDA( |
239 | 240 | const at::Tensor STD_) { |
240 | 241 | // const at::Tensor S_, |
241 | 242 | // X \in R^{B, N, D}, C \in R^{K, D}, S \in R^K |
242 | | - auto KD_ = X_.type().tensor({X_.size(0), X_.size(1), C_.size(0)}).zero_(); |
| 243 | + auto KD_ = torch::zeros({X_.size(0), X_.size(1), C_.size(0)}, X_.options()); |
243 | 244 | // E(x), E(x^2) |
244 | 245 | int N = X_.size(0) * X_.size(1); |
245 | 246 | cudaStream_t stream = at::cuda::getCurrentCUDAStream(); |
@@ -301,7 +302,7 @@ std::vector<at::Tensor> Encoding_Dist_Forward_CUDA( |
301 | 302 | double eps) { |
302 | 303 | // const at::Tensor S_, |
303 | 304 | // X \in R^{B, N, D}, C \in R^{K, D}, S \in R^K |
304 | | - auto KD_ = X_.type().tensor({X_.size(0), X_.size(1), C_.size(0)}).zero_(); |
| 305 | + auto KD_ = torch::zeros({X_.size(0), X_.size(1), C_.size(0)}, X_.options()); |
305 | 306 | // E(x), E(x^2) |
306 | 307 | int N = X_.size(0) * X_.size(1); |
307 | 308 | auto SVar_ = (X_.pow(2).sum(0).sum(0).view({1, X_.size(2)}) - |
@@ -373,7 +374,7 @@ at::Tensor AggregateV2_Forward_CUDA( |
373 | 374 | const at::Tensor C_, |
374 | 375 | const at::Tensor STD_) { |
375 | 376 | /* Device tensors */ |
376 | | - auto E_ = A_.type().tensor({A_.size(0), C_.size(0), C_.size(1)}).zero_(); |
| 377 | + auto E_ = torch::zeros({A_.size(0), C_.size(0), C_.size(1)}, A_.options()); |
377 | 378 | // auto IS_ = 1.0f / (S_ + eps).sqrt(); |
378 | 379 | cudaStream_t stream = at::cuda::getCurrentCUDAStream(); |
379 | 380 | // B, K, D |
|
0 commit comments