diff --git a/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/tensor_utils.cu b/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/tensor_utils.cu
index 13ef262bac301e35d7c3e6306a3706dfe79a68a2..282a0cbb68de4f033b46cdc5c4a8ad69aa1f20c0 100644
--- a/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/tensor_utils.cu
+++ b/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/tensor_utils.cu
@@ -329,12 +329,18 @@ extern "C"{
   void initTensorData(void* tensor_ptr, void* data_ptr, size_t size_in_bytes){
 
     Tensor* tensor = (Tensor*) tensor_ptr;
-  
-    if(tensor->size_in_bytes != size_in_bytes){
+
+    size_t host_size_in_bytes = tensor->num_elems * 4;
+    //if(tensor->size_in_bytes != size_in_bytes){
+    if(host_size_in_bytes != size_in_bytes){
       ERROR("The destination and source sizes don't match");
     }
   
     std::memcpy(tensor->host_data, data_ptr, size_in_bytes);
+
+    changeTensorPlacement(tensor, HOST);
+
+    tensor->cur_type = float_type;
   }
 
 		      
@@ -428,7 +434,7 @@ extern "C"{
 
 
 
-bool ONLINE_PROFILING = false;
+bool ONLINE_PROFILING = false; // true;
 
 
 void convertToFP16(struct Tensor* tensor){