1
tensorflow
オブジェクト検出モデルを作成し、tensorflow
サービングを使用して配信しました。私はサービングモデルをテストするためにPythonクライアントを作成しました。そして、それはすべての予測を受け取るのに約40msの時間がかかります。 Java Tensorflow Serving Prediction Clientが遅すぎる
t1 = datetime.datetime.now()
result = stub.Predict(request, 60.0) # 60 secs timeout
t2 = datetime.datetime.now()
print ((t2 - t1).microseconds/1000)
は今、私の問題は、私は
java
に同じことを行うとき、それは450の500ミリ秒にあまりにも多くの時間(約10倍)かかります。
ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 9000)
.usePlaintext(true)
.build();
PredictionServiceGrpc.PredictionServiceBlockingStub stub = PredictionServiceGrpc.newBlockingStub(channel);
......
Instant pre = Instant.now();
Predict.PredictResponse response = stub.predict(request);
Instant curr = Instant.now();
System.out.println("time " + ChronoUnit.MILLIS.between(pre,curr));
誰でも問題の解決に手伝ってもらえますか?ありがとうございました。
言語としてのJavaは、最初は非常に遅いです。それは非常に速くなる "ウォームアップ"後にのみです。これがあなたのプログラムの最初のgRPC呼び出しであれば、Javaが "暖かい"ではないので、あなたが言及するほど遅いと簡単に信じています。その後の呼び出しは速くなければなりません.JITが十分にコンパイルした後には、Pythonよりも高速になると思います。 –