SWu opened a new issue #9109: URL: https://github.com/apache/tvm/issues/9109
The implementation of `cross_entropy_with_logits` seems to be incorrect: https://github.com/apache/tvm/blob/main/python/tvm/relay/op/nn/_nn.py#L912 It should be something like: ``` -topi.sum(topi.nn.log_softmax(x) * y) / x.shape[0] ``` However, if I naively try to make the change above, I get the following error when trying to compile a model using it: ``` tvm._ffi.base.TVMError: Traceback (most recent call last): [bt] (8) /usr/tvm/build/libtvm.so(tvm::relay::ExprFunctor<void (tvm::relay::Expr const&)>::VisitExpr(tvm::relay::Expr const&)+0x8a) [0x7f22047564ba] [bt] (7) /usr/tvm/build/libtvm.so(tvm::relay::vm::VMFunctionCompiler::VisitExpr_(tvm::relay::CallNode const*)+0x3be) [0x7f22048d981e] [bt] (6) /usr/tvm/build/libtvm.so(tvm::relay::OpMatch<void>::operator()(tvm::relay::Call const&)+0xef) [0x7f22048d88ff] [bt] (5) /usr/tvm/build/libtvm.so(tvm::relay::vm::VMFunctionCompiler::VisitExpr_(tvm::relay::CallNode const*)::{lambda(tvm::Array<tvm::relay::Expr, void> const&, tvm::Attrs const&, tvm::Array<tvm::relay::Type, void> const&)#1}::operator()(tvm::Array<tvm::relay::Expr, void> const&, tvm::Attrs const&, tvm::Array<tvm::relay::Type, void> const&) const+0x13a) [0x7f22048d740a] [bt] (4) /usr/tvm/build/libtvm.so(tvm::relay::vm::VMFunctionCompiler::EmitInvokeTVMOp(tvm::relay::Function const&, tvm::relay::Expr const&, tvm::relay::Expr const&)+0x9eb) [0x7f22048d6d8b] [bt] (3) /usr/tvm/build/libtvm.so(tvm::relay::CompileEngineImpl::Lower(tvm::relay::CCacheKey const&)+0x20) [0x7f220487e9a0] [bt] (2) /usr/tvm/build/libtvm.so(tvm::relay::CompileEngineImpl::LowerInternal(tvm::relay::CCacheKey const&)+0x329) [0x7f220487deb9] [bt] (1) /usr/tvm/build/libtvm.so(tvm::relay::ScheduleGetter::Create(tvm::relay::Function const&)+0xef2) [0x7f220487d412] [bt] (0) /usr/tvm/build/libtvm.so(+0xb8b2fb) [0x7f2204a272fb] File "/usr/tvm/python/tvm/_ffi/_ctypes/function.py", line 72, in cfun rv = local_pyfunc(*pyargs) File "/usr/tvm/python/tvm/relay/op/_reduce.py", line 31, in _schedule_reduce return topi.generic.schedule_reduce(outs) File "<decorator-gen-92>", line 2, in schedule_reduce File "/usr/tvm/python/tvm/target.py", line 299, in dispatch_func return generic_func_node(*args) File "/usr/tvm/python/tvm/target.py", line 161, in __call__ return _api_internal._GenericFuncCallFunc(self, *args) File "/usr/tvm/python/tvm/_ffi/_ctypes/function.py", line 207, in __call__ raise get_last_ffi_error() [bt] (3) /usr/tvm/build/libtvm.so(TVMFuncCall+0x61) [0x7f2204a2bbb1] [bt] (2) /usr/tvm/build/libtvm.so(+0x4c4fbf) [0x7f2204360fbf] [bt] (1) /usr/tvm/build/libtvm.so(tvm::GenericFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const+0x112) [0x7f2204360da2] [bt] (0) /usr/tvm/build/libtvm.so(+0xb8b2fb) [0x7f2204a272fb] File "/usr/tvm/python/tvm/_ffi/_ctypes/function.py", line 72, in cfun rv = local_pyfunc(*pyargs) File "/usr/tvm/topi/python/topi/x86/reduction.py", line 119, in schedule_reduce traverse_after_reduce(outs[0].op) File "/usr/tvm/topi/python/topi/x86/reduction.py", line 100, in traverse_after_reduce traverse_after_reduce(tensor.op) File "/usr/tvm/topi/python/topi/x86/reduction.py", line 100, in traverse_after_reduce traverse_after_reduce(tensor.op) File "/usr/tvm/topi/python/topi/x86/reduction.py", line 105, in traverse_after_reduce traverse_before_reduce(tensor.op) File "/usr/tvm/topi/python/topi/x86/reduction.py", line 88, in traverse_before_reduce traverse_before_reduce(tensor.op) File "/usr/tvm/topi/python/topi/x86/reduction.py", line 90, in traverse_before_reduce raise RuntimeError("Unsupported operator: %s" % operator.tag) RuntimeError: Unsupported operator: log_softmax_output ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
