Merge pull request #21566 from TolyaTalamanov:at/gapi-modeling-tool_fix_handling_fp16_precision
[G-API] Pipeline modeling tool - Fix generating FP16 Mat * Fix handling fp16 precision * Disable preproc in case FP16 input inside IE backend * Fix isApplicableForResize function
This commit is contained in:
committed by
GitHub
parent
57d3002ee1
commit
08356007c9
@@ -28,11 +28,8 @@ private:
|
||||
|
||||
DummySource::DummySource(const double latency,
|
||||
const OutputDescr& output)
|
||||
: m_latency(latency), m_mat(output.dims, output.precision) {
|
||||
if (output.dims.size() == 1) {
|
||||
//FIXME: Well-known 1D mat WA
|
||||
m_mat.dims = 1;
|
||||
}
|
||||
: m_latency(latency) {
|
||||
utils::createNDMat(m_mat, output.dims, output.precision);
|
||||
utils::generateRandom(m_mat);
|
||||
}
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ struct DummyCall {
|
||||
std::shared_ptr<DummyState>& state,
|
||||
const cv::GCompileArgs& /*args*/) {
|
||||
state.reset(new DummyState{});
|
||||
state->mat.create(output.dims, output.precision);
|
||||
utils::createNDMat(state->mat, output.dims, output.precision);
|
||||
utils::generateRandom(state->mat);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,16 @@ struct OutputDescr {
|
||||
};
|
||||
|
||||
namespace utils {
|
||||
|
||||
inline void createNDMat(cv::Mat& mat, const std::vector<int>& dims, int depth) {
|
||||
GAPI_Assert(!dims.empty());
|
||||
mat.create(dims, depth);
|
||||
if (dims.size() == 1) {
|
||||
//FIXME: Well-known 1D mat WA
|
||||
mat.dims = 1;
|
||||
}
|
||||
}
|
||||
|
||||
inline void generateRandom(cv::Mat& out) {
|
||||
switch (out.depth()) {
|
||||
case CV_8U:
|
||||
@@ -23,7 +33,12 @@ inline void generateRandom(cv::Mat& out) {
|
||||
cv::randu(out, 0.f, 1.f);
|
||||
break;
|
||||
case CV_16F: {
|
||||
cv::Mat fp32_mat(out.size(), CV_MAKETYPE(CV_32F, out.channels()));
|
||||
std::vector<int> dims;
|
||||
for (int i = 0; i < out.size.dims(); ++i) {
|
||||
dims.push_back(out.size[i]);
|
||||
}
|
||||
cv::Mat fp32_mat;
|
||||
createNDMat(fp32_mat, dims, CV_32F);
|
||||
cv::randu(fp32_mat, 0.f, 1.f);
|
||||
fp32_mat.convertTo(out, out.type());
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user