ERROR org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner - Failed to calculate output shapes for op onehot

Hi, I am a newbie. I am trying to run org.deeplearning4j.modelimportexamples.tf.advanced.bert.BertInferenceExample.java, and got the Error:

16:55:05.429 [main] DEBUG org.nd4j.imports.graphmapper.tf.TFGraphMapper - Skipping op IteratorV2 of type IteratorV2 due to op filter
16:55:05.456 [main] INFO org.nd4j.linalg.factory.Nd4jBackend - Loaded [CpuBackend] backend
16:55:05.961 [main] INFO org.nd4j.nativeblas.NativeOpsHolder - Number of threads used for linear algebra: 8
16:55:05.962 [main] INFO org.nd4j.linalg.cpu.nativecpu.CpuNDArrayFactory - Binary level Generic x86 optimization level AVX512
16:55:05.973 [main] INFO org.nd4j.nativeblas.Nd4jBlas - Number of threads used for OpenMP BLAS: 8
16:55:05.979 [main] INFO org.nd4j.linalg.api.ops.executioner.DefaultOpExecutioner - Backend used: [CPU]; OS: [Windows 11]
16:55:05.979 [main] INFO org.nd4j.linalg.api.ops.executioner.DefaultOpExecutioner - Cores: [16]; Memory: [7.9GB];
16:55:05.979 [main] INFO org.nd4j.linalg.api.ops.executioner.DefaultOpExecutioner - Blas vendor: [OPENBLAS]
16:55:05.981 [main] INFO org.nd4j.linalg.cpu.nativecpu.CpuBackend - Backend build information:
GCC: “12.1.0”
STD version: 201103L
DEFAULT_ENGINE: samediff::ENGINE_CPU
HAVE_FLATBUFFERS
HAVE_OPENBLAS
16:55:06.610 [main] DEBUG org.nd4j.imports.graphmapper.tf.TFGraphMapper - Importing op IteratorGetNext using override {IteratorGetNext=org.deeplearning4j.modelimportexamples.tf.advanced.bert.BertInferenceExample$$Lambda$7/0x0000000800c05a30@460ebd80}
16:55:06.769 [main] WARN org.nd4j.imports.converters.ImportClassMapping - Duplicate TF op mapping found for op Pow: org.nd4j.linalg.api.ops.impl.scalar.Pow vs org.nd4j.linalg.api.ops.impl.transforms.custom.Pow
16:55:06.774 [main] WARN org.nd4j.imports.converters.ImportClassMapping - Duplicate TF op mapping found for op FloorMod: org.nd4j.linalg.api.ops.impl.transforms.pairwise.arithmetic.FModOp vs org.nd4j.linalg.api.ops.impl.transforms.pairwise.arithmetic.FloorModOp
16:55:10.433 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.433 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.433 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.434 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.434 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.434 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.434 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.435 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.435 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.435 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.435 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.435 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.435 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.436 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.436 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.436 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.436 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.436 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.436 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.437 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.437 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.437 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.437 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.437 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.437 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.437 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.437 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.438 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.438 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.438 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.438 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.438 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.438 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.438 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.439 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.439 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.439 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform
16:55:10.439 [main] WARN org.nd4j.autodiff.functions.DifferentialFunction - No fields found for property name dtype for class org.nd4j.linalg.api.ops.random.custom.DistributionUniform

Running inference on the test dataset. This might take a while … depending on your hardware
16:55:10.616 [main] INFO org.nd4j.autodiff.samediff.SameDiff - Creating new InferenceSession for thread 1
Error at [D:/a/deeplearning4j/deeplearning4j/libnd4j/include/ops/declarable/generic/parity_ops/onehot.cpp:87:0]:
OneHot: depth must be positive value
16:55:10.715 [main] ERROR org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner - Failed to calculate output shapes for op onehot. Attempted to execute with 4 inputs, 0 outputs, 2 targs, 2 iargs, 0 bargs and 0 dargs. Inputs: [(INT,[512],c), (INT,,c), (FLOAT,,c), (FLOAT,,c)]. Input var names: [bert/embeddings/Reshape_2, bert/embeddings/one_hot/depth, bert/embeddings/one_hot/on_value, bert/embeddings/one_hot/off_value]. Output var names: [bert/embeddings/one_hot] - Please see above message (printed out from c++) for a possible cause of error.
Exception in thread “main” java.lang.RuntimeException: Op onehot with name bert/embeddings/one_hot failed to execute. Here is the error from c++: Op validation failed
at org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner.calculateOutputShape(NativeOpExecutioner.java:1672)
at org.nd4j.linalg.api.ops.DynamicCustomOp.calculateOutputShape(DynamicCustomOp.java:696)
at org.nd4j.autodiff.samediff.internal.InferenceSession.getAndParameterizeOp(InferenceSession.java:1363)
at org.nd4j.autodiff.samediff.internal.InferenceSession.getAndParameterizeOp(InferenceSession.java:68)
at org.nd4j.autodiff.samediff.internal.AbstractSession.output(AbstractSession.java:531)
at org.nd4j.autodiff.samediff.SameDiff.directExecHelper(SameDiff.java:2927)
at org.nd4j.autodiff.samediff.SameDiff.directExecHelper(SameDiff.java:2890)
at org.nd4j.autodiff.samediff.SameDiff.evaluateHelper(SameDiff.java:2387)
at org.nd4j.autodiff.samediff.SameDiff.evaluate(SameDiff.java:2296)
at org.nd4j.autodiff.samediff.config.EvaluationConfig.exec(EvaluationConfig.java:197)
at org.deeplearning4j.modelimportexamples.tf.advanced.bert.BertInferenceExample.main(BertInferenceExample.java:107)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:131)

@bob_ye I need to port this over to the new model import yet. Do you have a BERT model you want to import or were just trying the examples?

Hi, agibsonccc. Thanks for your quick response. First I just want to try the examples.

@bob_ye release is coming out soon after that I’ll update this. Newer models should work. We have the omnihub zoo and I need to add some huggingface models there: GitHub - KonduitAI/omnihub-zoo: Contains samediff and deeplearning4j pretrained models

Unfortunately accompanying tokenizers are not there yet. I’ll hopefully wrap that up soon. Sorry about that. If you have a BERT model you want to import using the newer API I"m happy to help it working for you. We’ve had folks using BERT for years just fine. That’s just unfortunately an example that hasn’t been updated.

Hi, Agibsonccc. It is great to hear that new release soon! You are doing great job! Anyway, I can wait for that. Thanks so much.