Andrei Zhabinski
Andrei Zhabinski
The short answer is that higher-order derivatives are not supported. A more detailed answer is that Yota indeed can compute higher-order derivatives for a well-behaved subset of functions and their...
```julia gradtape(gf1, tape1.ops[5].args[4]) ``` In this case, `gradtape` expects a list of appropriate values, e.g. numbers, arrays, functions, etc., but instead you provide a `Variable` object. For example, `gradtape(x ->...
Clip is indeed not implemented yet. Since not too many people are working on this project at the moment, the only viable solution I can propose is to [add this...
1. I don't remember any specific reason why I used `flipweights(w)` instead of `flipped` keyword argument, so it indeed may be a better solution. 2. To add a new operation,...
Can you please run the following and then repeat the experiment? ```julia @eval function ONNX.onnx_slice( data::AbstractArray, starts::VecOrMat{Int}, ends::VecOrMat{Int}, axes::Vector{Int}=Int[], steps::Vector{Int}=Int[]) @show starts @show ends @show axes @show steps axes =...
It turns out, Slice has a pretty complicated rules for preprocessing of the indexes, including clamping of the `ends` array: > The clamping for the adjusted ends[i] depends on the...
Ah, right, for Julia we need to clamp to 1 from below, not to 0. I.e. ```julia # current ends = [clamp(e, 0, dims[axes[i]]) for (i, e) in enumerate(ends)] #...
Redefining `dims` as a local variable shouldn't affect the global scope, but your guess about `axes` seems to be correct: `dims` is indexed as 1:ndims (Julia style), so the `axes`,...
Nailed it. Try this one: ```julia function onnx_slice( data::AbstractArray, starts::VecOrMat{Int}, ends::VecOrMat{Int}, axes::Vector{Int}=Int[], steps::Vector{Int}=Int[]) shape = size(data) starts = starts .+ 1 axes = isempty(axes) ? collect(1:ndims(data)) : axes .+ 1...
Hi there! I don't think we need to implement all operators first. In fact, I believe ~20-30% of operators will be enough to onboard ~90% of modern ML models, so...