alseambusher

TensorflowBasicOperationServlet.java

Dec 17th, 2017
14,037
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.58 KB | None | 0 0
  1. import org.apache.felix.scr.annotations.sling.SlingServlet;
  2. import org.apache.sling.api.SlingHttpServletRequest;
  3. import org.apache.sling.api.SlingHttpServletResponse;
  4. import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.tensorflow.*;
  8.  
  9. import java.io.IOException;
  10. import java.util.Arrays;
  11.  
  12. /**
  13.  * Created by alse on 12/17/17.
  14.  */
  15.  
  16. @SlingServlet(paths={"/services/tftest"})
  17. public class TensorflowBasicOperationServlet extends SlingSafeMethodsServlet {
  18.     static private final Logger logger = LoggerFactory.getLogger(TensorflowBasicOperationServlet.class);
  19.  
  20.     @Override
  21.     protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {
  22.         response.setContentType("text/html");
  23.         response.setCharacterEncoding("utf-8");
  24.  
  25.         // Create a new graph
  26.         GraphBuilder g = new GraphBuilder(new Graph());
  27.  
  28.         // Basic constant operations
  29.         Output a = g.constant("a", 1);
  30.         Output b = g.constant("b", 3);
  31.  
  32.         // add sub mul and div operations
  33.         Output c = g.add(a, b);
  34.         Output d = g.sub(a, b);
  35.         Output e = g.mul(a, b);
  36.         Output f = g.div(a, b);
  37.  
  38.         // create a new session and run the operations
  39.         Session s =  new Session(g.graph);
  40.         response.getWriter().println(s.runner().fetch(c.op().name()).run().get(0).intValue());
  41.         response.getWriter().println(s.runner().fetch(d.op().name()).run().get(0).intValue());
  42.         response.getWriter().println(s.runner().fetch(e.op().name()).run().get(0).intValue());
  43.         response.getWriter().println(s.runner().fetch(f.op().name()).run().get(0).intValue());
  44.  
  45.         // matrix multiplication
  46.         float[][] X = new float[][]{new float[]{1,2,3}};
  47.         float[][] Y = new float[][]{new float[]{4}, new float[]{5}, new float[]{6}};
  48.  
  49.         Output h = g.constant("h", X);
  50.         Output i = g.constant("i", Y);
  51.  
  52.         Output j = g.matmul(i, h);
  53.         response.getWriter().println(s.runner().fetch(j.op().name()).run().get(0).toString());
  54.  
  55.  
  56.         // using placeholder
  57.         Output k = g.placeholder("k", DataType.INT32);
  58.         Output l = g.add(c, k);
  59.  
  60.         // create a tensor to store the value for k
  61.         Tensor k_value = Tensor.create(10);
  62.  
  63.         // now feed the value for the placeholder and compute l
  64.         response.getWriter().println(s.runner().feed("k", k_value).fetch(l.op().name()).run().get(0).intValue());
  65.         response.getWriter().println("Testing done!");
  66.  
  67.         s.close();
  68.     }
  69.  
  70. }
Add Comment
Please, Sign In to add comment