Bu, çok yerel bir soru olduğunu düşünüyorsanız, lütfen kapatmak için oy kullanın. Ben caffe2 github depo aramış, aynı soruyu soran an issue açıldı yazarı caffe2::Tensor ve caffe2::CUDAContext, üzerine doxygen belgelerini okuyun ve hatta caffe2 source code geçirdi, iyi anlamak görünüyor, çünkü caffe2_ccp_tutorials deposunda başka sorunu açıldı ve spesifik olarak tensor.h
, context_gpu.h
ve context_gpu.cc
.caffe2 Tensor atama, yapım ya da kopyalama
Şu anda caffe2 cihaz belleğinin bir tensöre kopyalanmasına izin vermediğini anlıyorum. Bunu başarmak için kütüphaneyi genişletmek ve bir çekme talebi yapmak istiyorum. Bunun arkasındaki nedenim, cihaz belleğinde çalışan cv::cuda::*
yöntemlerini kullanarak tüm görüntü ön işleme işlemlerini gerçekleştirdiğimden dolayı, gpu üzerinde ön işlemeyi gerçekleştirmenin bir problem olduğunu düşünüyorum. ve sonra ağa ana bilgisayardan cihaza yeniden yüklenmesini sağlayın.
Tensor<Context>
yapıcıları baktığımızda belki sadece
template<class SrcContext , class ContextForCopy >
Tensor (const Tensor<SrcContext> &src, ContextForCopy *context)
İstediğimi elde olabileceğini görebiliyorum, ama nasıl <ContextForCopy>
ayarlayın ve sonra inşaat için kullanmak hiçbir fikrim yok.
Bundan başka, I doğru boyutlarla Tensörü oluşturur ve daha sonra belki
template <typename T>
T* mutable_data()
I atayabilir kullanarak/veri kopyalama görüyoruz. Verilerin kendisi std::vector<cv::cuda::GpuMat
'da saklanır, bu yüzden yinelemeliyim, sonra da aygıtın tahsis ettiği verilere erişmek için cuda::PtrStepSz
or cuda::PtrStep
kullanın. Bu, caffe2::Tensor<CUDAContext>
'a kopyalamak/atamak istediğim verilerle aynı.
Tensor<CPUContext>
Tensor<CUDAContext>
kopyalanır nasıl içten öğrenmek için çalışıyorum, ama kullanılan yöntem
CopyFrom
olduğunu düşünüyorum rağmen, onu anlamaya olamaz. Oldukça sürpriz kimsenin henüz bu görev haline tükendi am
TensorCPU tensor_cpu(...);
TensorCUDA tensor_cuda = workspace.CreateBlob("input")->GetMutable<TensorCUDA>();
tensor_cuda->ResizeLike(tensor_cpu);
tensor_cuda->ShareData(tensor_cpu);
ve kısa bir arama verimleri tek open issue nerede yazar (@peterneher) soruyor: önce de belirtildiği gibi olağan örnekleri, CPU dan GPU kopyalamak aynı şeyi az ya da çok.