Comments (4)
I can actually fix this by commenting out this line, which creates a FlatAxis
when constructing a ShapedAxis
for a 1D array. That appears to preserve the necessary shape information that's needed by maybe_reshape
. But that change breaks other things, unfortunately. For example, indexing a matrix with nested component axis like here no longer works, since the presence of the ShapedAxis
triggers calling maybe_reshape
, which can't figure out the necessary size of the nested component axis.
from componentarrays.jl.
OK, I attempted to fix this issue by introducing a Shaped1DAxis
type in this PR: #249. It fixes the issue described here, but breaks some relatively minor things (IMHO). The most serious issue appears to be indexing a ComponentIndex
with multiple symbols: https://github.com/dingraha/ComponentArrays.jl/blob/0db92aec69fac664524cc95a8f5fa1d3a605ce93/test/runtests.jl#L362, but that already didn't work with multi-dimensional ShapedAxis
.
from componentarrays.jl.
Now almost everything works with #249. The things that are broken:
- Creating a
ComponentArray
with an emptyNamedTuple
is not identical to creating one with an emptyArray
, like this, as seen here:
ComponentArray(a = T[], b = (;)) == ComponentVector{T}(a = T[], b = T[])
- As mentioned above, indexing a
ComponentIndex
with multiple symbols doesn't work when one of the indices refers to aShapedAxis
, as seen here. IIUC that used to work when the index was one-dimensional (and was thus converted into aFlatAxis
, but did not work for multi-dimensionalShapedAxis
, and still doesn't.
from componentarrays.jl.
Managed to fix the test for indexing a ComponentIndex
with multiple symbols. Now the only broken test in #249 is the "empty NamedTuple
vs empty Array
one, which is relatively minor IMHO.
from componentarrays.jl.
Related Issues (20)
- vcat ambiguity with SparseArrays method HOT 2
- add missing LinearAlgebra methods on GPU
- Problem with `Zygote.hessian` HOT 1
- `lmul!` fails with Component Array on GPU
- Incorrect gradient type. HOT 2
- Scalar indexing on GPU when computing `Zygote.gradient` of `dot(x::CA, x::CA)`
- Method ambiguities reported by Aqua
- getting "Only homogeneous arrays are allowed" error for Vector{SVector} HOT 4
- How to get index range of subarray? HOT 3
- Extend KeepIndex to Vector indices HOT 1
- Nine broken tests for Test Summary: | Pass Broken Total Time Broadcasting | 30 9 39 7.2s HOT 1
- The ComponentArray type that can specify the properties of the ComponentArray object
- `Diagonal(ComponentArray)` scalar indexing error HOT 1
- ComponentVectors are not stack-able HOT 10
- ComponentArray errors with `findall`
- Can't index component array with shaped components with subset of keys HOT 2
- FR: Preserve CA-ness when indexing component matrix with shaped components HOT 1
- Get rid of `ComponentMatrix` and higher-order `ComponentArray`s? HOT 12
- Missing reduced_index
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from componentarrays.jl.