<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Apache Singa: singa::Metric Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Apache Singa
   </div>
   <div id="projectbrief">A General Distributed Deep Learning Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacesinga.html">singa</a></li><li class="navelem"><a class="el" href="classsinga_1_1Metric.html">Metric</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classsinga_1_1Metric-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">singa::Metric Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>The base metric class, which declares the APIs for computing the performance evaluation metrics given the prediction of the model and the ground truth, i.e., the target.  
 <a href="classsinga_1_1Metric.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="metric_8h_source.html">metric.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for singa::Metric:</div>
<div class="dyncontent">
<div class="center"><img src="classsinga_1_1Metric__inherit__graph.png" border="0" usemap="#singa_1_1Metric_inherit__map" alt="Inheritance graph"/></div>
<!-- MAP 0 -->
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a62178144c6f4b219bd1f403716862d9b"><td class="memItemLeft" align="right" valign="top"><a id="a62178144c6f4b219bd1f403716862d9b"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>ToDevice</b> (std::shared_ptr&lt; <a class="el" href="classsinga_1_1Device.html">Device</a> &gt; device)</td></tr>
<tr class="separator:a62178144c6f4b219bd1f403716862d9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76de5dfdcaef7166babb1f4a4757dde5"><td class="memItemLeft" align="right" valign="top"><a id="a76de5dfdcaef7166babb1f4a4757dde5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>Setup</b> (const string &amp;conf)</td></tr>
<tr class="separator:a76de5dfdcaef7166babb1f4a4757dde5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d5f2debebaedd389a59a2ee18068175"><td class="memItemLeft" align="right" valign="top"><a id="a0d5f2debebaedd389a59a2ee18068175"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1Metric.html#a0d5f2debebaedd389a59a2ee18068175">Setup</a> (const MetricConf &amp;conf)</td></tr>
<tr class="memdesc:a0d5f2debebaedd389a59a2ee18068175"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set meta fields from user configurations. <br /></td></tr>
<tr class="separator:a0d5f2debebaedd389a59a2ee18068175"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b054fad66714476b2477248f80faeab"><td class="memItemLeft" align="right" valign="top"><a id="a4b054fad66714476b2477248f80faeab"></a>
virtual <a class="el" href="classsinga_1_1Tensor.html">Tensor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1Metric.html#a4b054fad66714476b2477248f80faeab">Forward</a> (const <a class="el" href="classsinga_1_1Tensor.html">Tensor</a> &amp;prediction, const <a class="el" href="classsinga_1_1Tensor.html">Tensor</a> &amp;target)=0</td></tr>
<tr class="memdesc:a4b054fad66714476b2477248f80faeab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the metric for each data sample. <br /></td></tr>
<tr class="separator:a4b054fad66714476b2477248f80faeab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed1195424d9e3dcbf14517b09733c172"><td class="memItemLeft" align="right" valign="top"><a id="aed1195424d9e3dcbf14517b09733c172"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1Metric.html#aed1195424d9e3dcbf14517b09733c172">Evaluate</a> (const <a class="el" href="classsinga_1_1Tensor.html">Tensor</a> &amp;prediction, const <a class="el" href="classsinga_1_1Tensor.html">Tensor</a> &amp;target)</td></tr>
<tr class="memdesc:aed1195424d9e3dcbf14517b09733c172"><td class="mdescLeft">&#160;</td><td class="mdescRight">Comptue the metric value averaged over all samples (in a batch) <br /></td></tr>
<tr class="separator:aed1195424d9e3dcbf14517b09733c172"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The base metric class, which declares the APIs for computing the performance evaluation metrics given the prediction of the model and the ground truth, i.e., the target. </p>
<p>The target type is a template argument. For data samples with a single label, T could be 1-d tenor (or vector&lt;int&gt;); If each data sample has multiple labels, T could be vector&lt;vector&lt;int&gt;&gt;, one vector per sample. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>/home/moaz/incubator-singa/include/singa/model/<a class="el" href="metric_8h_source.html">metric.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Apr 22 2019 12:27:05 for Apache Singa by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
