-
Notifications
You must be signed in to change notification settings - Fork 621
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
0.27调用tensorflow的pb模型崩溃(可以加载模型,推理时崩溃) #3173
Comments
Can you provide a mini-reproduce project? Does it wither older version? Do you have code that works for TFJava? |
使用的是KichangKim/DeepDanbooru github上的项目,tags v3-20211112-sgd-e28, 然后根据djl文档的转化成pb模型
模型参数不是正确的,是我测试的,但是tfjava会提醒我参数错误,djl这样推理就会程序崩溃 因为参数是python代码,我还没有完全掌握转成djl 的写法,所有使用了前置后置使用python代码实现,模型使用djl实现
// NDList list=output.getDataAsNDList(translatorContext.getNDManager()); 加载模型代码: python的图片前置后置操作是按照KichangKim/DeepDanbooru 代码写的 |
有人能帮忙看看吗?或者有社区地址什么的吗?微信群或者qq群? |
Can you provide your .pb or converted saved model bundle file? |
模型地址https://github.com/KichangKim/DeepDanbooru/tags, 使用的v3-20211112-sgd-e28 这个tag,然后使用djl官方的代码转成的.pb |
I looked into this model, it seems broken after converted to SavedModelBunndle, I use the following TFJava code to run it:
I got the following error:
You might need work with TFJava team to troubleshoot this issue I use the following DJL code, it running as expect (the same error as TFJava):
|
By the way, you are using image classification model the following code should work for you if you fix your model issue:
|
#3173 (comment) model = tf.keras.models.load_model(r"E:\Download\model-resnet_custom_v3.h5", compile=False)model = tf.saved_model.load(r"E:\Download\deepdanbooru-v3-20211112")
def load_image_for_evaluate(
def transform_and_pad_image(
yz : int =0.5 #生成的标签可信度阈值 |
#3173 (comment) from typing import Optional, Any class Processing(object):
_service = Processing() def preprocess(inputs: Input) -> Output: def postprocess(inputs: Input) -> Output: def handle(inputs: Input) -> Optional[Output]: djl调用python处理图片代码
// NDList list=output.getDataAsNDList(translatorContext.getNDManager()); 推理代码 |
这个是加载模型的代码 |
The exception comes from TFJava code:
I think you'd better ask TFjava github to solve this issue first. |
Description
0.27调用tensorflow的pb模型崩溃(可以加载模型,推理时崩溃)
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.tensorflow.internal.c_api.global.tensorflow.TF_SessionRun(Lorg/tensorflow/internal/c_api/TF_Session;Lorg/tensorflow/internal/c_api/TF_Buffer;Lorg/tensorflow/internal/c_api/TF_Output;Lorg/bytedeco/javacpp/PointerPointer;ILorg/tensorflow/internal/c_api/TF_Output;Lorg/bytedeco/javacpp/PointerPointer;ILorg/bytedeco/javacpp/PointerPointer;ILorg/tensorflow/internal/c_api/TF_Buffer;Lorg/tensorflow/internal/c_api/TF_Status;)V+0
j ai.djl.tensorflow.engine.javacpp.JavacppUtils.runSession(Lorg/tensorflow/internal/c_api/TF_Session;Lorg/tensorflow/proto/framework/RunOptions;[Lorg/tensorflow/internal/c_api/TF_Tensor;[Lorg/tensorflow/internal/c_api/TF_Operation;[I[Lorg/tensorflow/internal/c_api/TF_Operation;[I[Lorg/tensorflow/internal/c_api/TF_Operation;)[Lorg/tensorflow/internal/c_api/TF_Tensor;+270
j ai.djl.tensorflow.engine.TfSymbolBlock.forwardInternal(Lai/djl/training/ParameterStore;Lai/djl/ndarray/NDList;ZLai/djl/util/PairList;)Lai/djl/ndarray/NDList;+202
j ai.djl.nn.AbstractBaseBlock.forward(Lai/djl/training/ParameterStore;Lai/djl/ndarray/NDList;ZLai/djl/util/PairList;)Lai/djl/ndarray/NDList;+36
j ai.djl.nn.Block.forward(Lai/djl/training/ParameterStore;Lai/djl/ndarray/NDList;Z)Lai/djl/ndarray/NDList;+5
j ai.djl.inference.Predictor.predictInternal(Lai/djl/translate/TranslatorContext;Lai/djl/ndarray/NDList;)Lai/djl/ndarray/NDList;+21
j ai.djl.inference.Predictor.batchPredict(Ljava/util/List;)Ljava/util/List;+133
j ai.djl.inference.Predictor.predict(Ljava/lang/Object;)Ljava/lang/Object;+5
j com.fly.ai.wdtag.WdTagService.detect(Lai/djl/modality/cv/Image;)Lai/djl/modality/Classifications;+17
j com.fly.ai.wdtag.WdTagService.tag(Lai/djl/modality/cv/Image;)Lai/djl/modality/Classifications;+2
j com.fly.ai.wdtag.WdTagService.tag(Ljava/io/InputStream;)Lai/djl/modality/Classifications;+10
j com.fly.ai.wdtag.WdTagController.tag(Lorg/springframework/web/multipart/MultipartFile;)Ljava/util/List;+10
v ~StubRoutines::call_stub
J 2923 jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@17.0.8 (0 bytes) @ 0x000001712a9e2327 [0x000001712a9e22a0+0x0000000000000087]
J 2922 c1 jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@17.0.8 (137 bytes) @ 0x000001712a9e31cc [0x000001712a9e2e80+0x000000000000034c]
J 2373 c1 jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@17.0.8 (10 bytes) @ 0x000001712a8f7564 [0x000001712a8f7520+0x0000000000000044]
J 2399 c1 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@17.0.8 (65 bytes) @ 0x000001712a90266c [0x000001712a902560+0x000000000000010c]
j org.springframework.web.method.support.InvocableHandlerMethod.doInvoke([Ljava/lang/Object;)Ljava/lang/Object;+28
j org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(Lorg/springframework/web/context/request/NativeWebRequest;Lorg/springframework/web/method/support/ModelAndViewContainer;[Ljava/lang/Object;)Ljava/lang/Object;+54
j org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(Lorg/springframework/web/context/request/ServletWebRequest;Lorg/springframework/web/method/support/ModelAndViewContainer;[Ljava/lang/Object;)V+4
j org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/web/method/HandlerMethod;)Lorg/springframework/web/servlet/ModelAndView;+244
j org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/web/method/HandlerMethod;)Lorg/springframework/web/servlet/ModelAndView;+81
j org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/Object;)Lorg/springframework/web/servlet/ModelAndView;+7
j org.springframework.web.servlet.DispatcherServlet.doDispatch(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+259
j org.springframework.web.servlet.DispatcherServlet.doService(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+241
j org.springframework.web.servlet.FrameworkServlet.processRequest(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+71
j org.springframework.web.servlet.FrameworkServlet.doPost(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+3
j javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+149
j org.springframework.web.servlet.FrameworkServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+33
j javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+36
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+304
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.apache.tomcat.websocket.server.WsFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+21
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.web.filter.RequestContextFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+21
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.web.filter.FormContentFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+38
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+53
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.apache.catalina.core.StandardWrapperValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+694
j org.apache.catalina.core.StandardContextValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+169
j org.apache.catalina.authenticator.AuthenticatorBase.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+260
j org.apache.catalina.core.StandardHostValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+128
j org.apache.catalina.valves.ErrorReportValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+6
j org.apache.catalina.core.StandardEngineValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+59
j org.apache.catalina.connector.CoyoteAdapter.service(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V+203
j org.apache.coyote.http11.Http11Processor.service(Lorg/apache/tomcat/util/net/SocketWrapperBase;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+796
j org.apache.coyote.AbstractProcessorLight.process(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+170
j org.apache.coyote.AbstractProtocol$ConnectionHandler.process(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+495
j org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun()V+216
j org.apache.tomcat.util.net.SocketProcessorBase.run()V+21
j org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(Lorg/apache/tomcat/util/threads/ThreadPoolExecutor$Worker;)V+92
j org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run()V+5
j org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run()V+4
j java.lang.Thread.run()V+11 java.base@17.0.8
v ~StubRoutines::call_stub
.h5文件和.pb 转化后的文件在python里调用正常
使用tensorflow的java代码,也是正常的
python 3.10.4
tensorflow 2.16.1
The text was updated successfully, but these errors were encountered: