  Massive amounts of data are expected to be generated by the billions of
objects that form the Internet of Things (IoT). A variety of automated services
such as monitoring will largely depend on the use of different Machine Learning
(ML) algorithms. Traditionally, ML models are processed by centralized cloud
data centers, where IoT readings are offloaded to the cloud via multiple
networking hops in the access, metro, and core layers. This approach will
inevitably lead to excessive networking power consumptions as well as
Quality-of-Service (QoS) degradation such as increased latency. Instead, in
this paper, we propose a distributed ML approach where the processing can take
place in intermediary devices such as IoT nodes and fog servers in addition to
the cloud. We abstract the ML models into Virtual Service Requests (VSRs) to
represent multiple interconnected layers of a Deep Neural Network (DNN). Using
Mixed Integer Linear Programming (MILP), we design an optimization model that
allocates the layers of a DNN in a Cloud/Fog Network (CFN) in an energy
efficient way. We evaluate the impact of DNN input distribution on the
performance of the CFN and compare the energy efficiency of this approach to
the baseline where all layers of DNNs are processed in the centralized Cloud
Data Center (CDC).
