Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
libnvinfer-samples / usr / src / tensorrt / samples / sampleINT8 / int8_caffe.patch
Size: Mime:
diff --git a/src/caffe/layers/data_layer.cpp b/src/caffe/layers/data_layer.cpp
index 66e6301..da615e5 100644
--- a/src/caffe/layers/data_layer.cpp
+++ b/src/caffe/layers/data_layer.cpp
@@ -99,6 +99,26 @@ void DataLayer<Dtype>::load_batch(Batch<Dtype>* batch) {
   }
   timer.Stop();
   batch_timer.Stop();
+#define LOG_BATCHES_FOR_INT8_TESTING 1
+#if LOG_BATCHES_FOR_INT8_TESTING
+  static int sBatchId = 0;
+  char* batch_dump_dir = getenv("TENSORRT_INT8_BATCH_DIRECTORY");
+  if(batch_dump_dir != 0)
+  {
+    char buffer[1000];
+    sprintf(buffer, "batches/batch%d", sBatchId++);
+    FILE* file = fopen(buffer, "w");    
+    if(file==0)
+      abort();
+
+    int s[4] = { top_shape[0], top_shape[1], top_shape[2], top_shape[3] };
+    fwrite(s, sizeof(int), 4, file);
+    fwrite(top_data, sizeof(float), top_shape[0]*top_shape[1]*top_shape[2]*top_shape[3], file);
+    fwrite(&top_label[0], sizeof(int), top_shape[0], file);
+    fclose(file);
+  }
+#endif
+
   DLOG(INFO) << "Prefetch batch: " << batch_timer.MilliSeconds() << " ms.";
   DLOG(INFO) << "     Read time: " << read_time / 1000 << " ms.";
   DLOG(INFO) << "Transform time: " << trans_time / 1000 << " ms."; | fromdos