Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.apache.felix.scr.annotations.sling.SlingServlet;
- import org.apache.sling.api.SlingHttpServletRequest;
- import org.apache.sling.api.SlingHttpServletResponse;
- import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.tensorflow.*;
- import java.io.IOException;
- import java.util.Arrays;
- /**
- * Created by alse on 12/17/17.
- */
- @SlingServlet(paths={"/services/tftest"})
- public class TensorflowBasicOperationServlet extends SlingSafeMethodsServlet {
- static private final Logger logger = LoggerFactory.getLogger(TensorflowBasicOperationServlet.class);
- @Override
- protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {
- response.setContentType("text/html");
- response.setCharacterEncoding("utf-8");
- // Create a new graph
- GraphBuilder g = new GraphBuilder(new Graph());
- // Basic constant operations
- Output a = g.constant("a", 1);
- Output b = g.constant("b", 3);
- // add sub mul and div operations
- Output c = g.add(a, b);
- Output d = g.sub(a, b);
- Output e = g.mul(a, b);
- Output f = g.div(a, b);
- // create a new session and run the operations
- Session s = new Session(g.graph);
- response.getWriter().println(s.runner().fetch(c.op().name()).run().get(0).intValue());
- response.getWriter().println(s.runner().fetch(d.op().name()).run().get(0).intValue());
- response.getWriter().println(s.runner().fetch(e.op().name()).run().get(0).intValue());
- response.getWriter().println(s.runner().fetch(f.op().name()).run().get(0).intValue());
- // matrix multiplication
- float[][] X = new float[][]{new float[]{1,2,3}};
- float[][] Y = new float[][]{new float[]{4}, new float[]{5}, new float[]{6}};
- Output h = g.constant("h", X);
- Output i = g.constant("i", Y);
- Output j = g.matmul(i, h);
- response.getWriter().println(s.runner().fetch(j.op().name()).run().get(0).toString());
- // using placeholder
- Output k = g.placeholder("k", DataType.INT32);
- Output l = g.add(c, k);
- // create a tensor to store the value for k
- Tensor k_value = Tensor.create(10);
- // now feed the value for the placeholder and compute l
- response.getWriter().println(s.runner().feed("k", k_value).fetch(l.op().name()).run().get(0).intValue());
- response.getWriter().println("Testing done!");
- s.close();
- }
- }
Add Comment
Please, Sign In to add comment