23.02
|
Go to the documentation of this file.
7 #include <common/include/ProfilingGuid.hpp>
26 const std::string& layerName,
27 unsigned int slotIndex,
34 std::vector<unsigned int> strides(numDims, 0);
35 strides[numDims - 1] = inputShape[numDims - 1];
37 for (
unsigned int i = 2; i <= numDims; i++)
39 strides[numDims - i] = strides[numDims - i + 1] * inputShape[numDims - i];
43 os <<
"\"layerGuid\": " << guid <<
", ";
44 os <<
"\"layerName\": \"" << layerName <<
"\", ";
45 os <<
"\"outputSlot\": " << slotIndex <<
", ";
49 for (
unsigned int i = 0; i < numDims; i++)
60 <<
static_cast<float>(*std::min_element(inputData, inputData + numElements)) <<
", ";
63 <<
static_cast<float>(*std::max_element(inputData, inputData + numElements)) <<
", ";
67 for (
unsigned int i = 0; i < numElements; i++)
69 for (
unsigned int j = 0; j < numDims; j++)
71 if (i % strides[j] == 0)
77 os << static_cast<float>(inputData[i]);
79 for (
unsigned int j = 0; j < numDims; j++)
81 if ((i + 1) % strides[j] == 0)
87 if (i != numElements - 1)
93 os <<
" }" << std::endl;
100 const std::string& layerName,
101 unsigned int slotIndex,
106 fs::path tmpDir = fs::temp_directory_path();
107 std::ofstream out(tmpDir.generic_string() +
"/ArmNNIntermediateLayerOutputs/" + layerName +
".numpy");
108 PrintOutput<T>(inputInfo, inputData, guid, layerName, slotIndex, out);
113 PrintOutput<T>(inputInfo, inputData, guid, layerName, slotIndex, std::cout);
118 const BFloat16* inputData,
120 const std::string& layerName,
121 unsigned int slotIndex,
124 template void Debug<Half>(
const TensorInfo& inputInfo,
125 const Half* inputData,
127 const std::string& layerName,
128 unsigned int slotIndex,
132 const float* inputData,
134 const std::string& layerName,
135 unsigned int slotIndex,
139 const uint8_t* inputData,
141 const std::string& layerName,
142 unsigned int slotIndex,
146 const int8_t* inputData,
148 const std::string& layerName,
149 unsigned int slotIndex,
153 const int16_t* inputData,
155 const std::string& layerName,
156 unsigned int slotIndex,
160 const int32_t* inputData,
162 const std::string& layerName,
163 unsigned int slotIndex,
void PrintOutput(const TensorInfo &inputInfo, const T *inputData, LayerGuid guid, const std::string &layerName, unsigned int slotIndex, std::ostream &os)
template void Debug< int32_t >(const TensorInfo &inputInfo, const int32_t *inputData, LayerGuid guid, const std::string &layerName, unsigned int slotIndex, bool outputsToFile)
template void Debug< int8_t >(const TensorInfo &inputInfo, const int8_t *inputData, LayerGuid guid, const std::string &layerName, unsigned int slotIndex, bool outputsToFile)
Copyright (c) 2021 ARM Limited and Contributors.
template void Debug< uint8_t >(const TensorInfo &inputInfo, const uint8_t *inputData, LayerGuid guid, const std::string &layerName, unsigned int slotIndex, bool outputsToFile)
void Debug(const TensorInfo &inputInfo, const T *inputData, LayerGuid guid, const std::string &layerName, unsigned int slotIndex, bool outputsToFile)
template void Debug< float >(const TensorInfo &inputInfo, const float *inputData, LayerGuid guid, const std::string &layerName, unsigned int slotIndex, bool outputsToFile)
unsigned int GetNumDimensions() const
unsigned int GetNumElements() const
template void Debug< Half >(const TensorInfo &inputInfo, const Half *inputData, LayerGuid guid, const std::string &layerName, unsigned int slotIndex, bool outputsToFile)
const TensorShape & GetShape() const
template void Debug< BFloat16 >(const TensorInfo &inputInfo, const BFloat16 *inputData, LayerGuid guid, const std::string &layerName, unsigned int slotIndex, bool outputsToFile)
template void Debug< int16_t >(const TensorInfo &inputInfo, const int16_t *inputData, LayerGuid guid, const std::string &layerName, unsigned int slotIndex, bool outputsToFile)
arm::pipe::ProfilingGuid LayerGuid
Define LayerGuid type.