0
我正在C++中編寫自定義張量流操作,我想知道如何執行一個張量的深度拷貝到另一個張量。換句話說,我需要從一個張量到另一個張量的元素明智的拷貝,這樣他們就不會共享底層的內存緩衝區。Tensorflow C++快速張量深拷貝
我發現的最接近的東西是DeepCopy(在tensor_util.h中定義)。問題是我需要這個操作要快,文件明確指出,此功能尚未針對速度進行了優化:更
// DeepCopy returns a tensor whose contents are a deep copy of the
// contents of 'other'. This function is intended only for
// convenience, not speed.
詳細一點:我使用Tensorflow在GPU上,所以基本上我想要什麼要做的是讓TF啓動一個cudaMemcpy,其中源和目標都是設備指針。 TF確實可以訪問張量指針(tensor.tensor_data()。data()),但是如果你嘗試使用cudaMemcpy(他們必須處理重疊的cuda上下文;不好),你會很快遇到問題。
在此先感謝!
它看起來像當我試圖手動cudaMalloc是我得到的例外由於正交問題。一旦解決了,它就會起作用,儘管我有點用這種方式對TF的內部進行破解。 –