aboutsummaryrefslogtreecommitdiff
path: root/utils/GraphUtils.h
diff options
context:
space:
mode:
authorIsabella Gottardi <isabella.gottardi@arm.com>2017-11-03 12:11:55 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:35:24 +0000
commita4c6188262d6d9f75f019e437f8190bdd56e604d (patch)
tree6abdf95cea0e1bdffca342386f899734604cc992 /utils/GraphUtils.h
parentd621bca4e963555a99be4328c8d49d1813789649 (diff)
downloadComputeLibrary-a4c6188262d6d9f75f019e437f8190bdd56e604d.tar.gz
COMPMID-657 - Add PPMAccessor and TopNPredictionsAccessor to GoogleNet
Change-Id: Ib6f2f9e73043d2c59b2698c243fb1a9f51c526e9 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/94363 Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com> Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Diffstat (limited to 'utils/GraphUtils.h')
-rw-r--r--utils/GraphUtils.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/utils/GraphUtils.h b/utils/GraphUtils.h
index 39b3f115bd..d7d5cd6778 100644
--- a/utils/GraphUtils.h
+++ b/utils/GraphUtils.h
@@ -175,6 +175,72 @@ public:
private:
const std::string _filename;
};
+
+/** Generates appropriate weights accessor according to the specified path
+ *
+ * @note If path is empty will generate a DummyAccessor else will generate a NumPyBinLoader
+ *
+ * @param[in] path Path to the data files
+ * @param[in] data_file Relative path to the data files from path
+ *
+ * @return An appropriate tensor accessor
+ */
+inline std::unique_ptr<graph::ITensorAccessor> get_weights_accessor(const std::string &path, const std::string &data_file)
+{
+ if(path.empty())
+ {
+ return arm_compute::support::cpp14::make_unique<DummyAccessor>();
+ }
+ else
+ {
+ return arm_compute::support::cpp14::make_unique<NumPyBinLoader>(path + data_file);
+ }
+}
+
+/** Generates appropriate input accessor according to the specified ppm_path
+ *
+ * @note If ppm_path is empty will generate a DummyAccessor else will generate a PPMAccessor
+ *
+ * @param[in] ppm_path Path to PPM file
+ * @param[in] mean_r Red mean value to be subtracted from red channel
+ * @param[in] mean_g Green mean value to be subtracted from green channel
+ * @param[in] mean_b Blue mean value to be subtracted from blue channel
+ *
+ * @return An appropriate tensor accessor
+ */
+inline std::unique_ptr<graph::ITensorAccessor> get_input_accessor(const std::string &ppm_path, float mean_r, float mean_g, float mean_b)
+{
+ if(ppm_path.empty())
+ {
+ return arm_compute::support::cpp14::make_unique<DummyAccessor>();
+ }
+ else
+ {
+ return arm_compute::support::cpp14::make_unique<PPMAccessor>(ppm_path, true, mean_r, mean_g, mean_b);
+ }
+}
+
+/** Generates appropriate output accessor according to the specified labels_path
+ *
+ * @note If labels_path is empty will generate a DummyAccessor else will generate a TopNPredictionsAccessor
+ *
+ * @param[in] labels_path Path to labels text file
+ * @param[in] top_n (Optional) Number of output classes to print
+ * @param[out] output_stream (Optional) Output stream
+ *
+ * @return An appropriate tensor accessor
+ */
+inline std::unique_ptr<graph::ITensorAccessor> get_output_accessor(const std::string &labels_path, size_t top_n = 5, std::ostream &output_stream = std::cout)
+{
+ if(labels_path.empty())
+ {
+ return arm_compute::support::cpp14::make_unique<DummyAccessor>();
+ }
+ else
+ {
+ return arm_compute::support::cpp14::make_unique<TopNPredictionsAccessor>(labels_path, top_n, output_stream);
+ }
+}
} // namespace graph_utils
} // namespace arm_compute