# NamedTuple from the ComponentArray

**URL:** <https://discourse.julialang.org/t/namedtuple-from-the-componentarray/132000>\
**Category:** Machine Learning\
**Tags:** question\
**Created:** [September 1, 2025, 7:13am UTC](https://discourse.julialang.org/t/namedtuple-from-the-componentarray/132000 "2025-09-01T07:13:12Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![IBArbitrary](https://avatars.discourse-cdn.com/v4/letter/i/9de053/32.png) [@IBArbitrary](https://discourse.julialang.org/u/IBArbitrary)\
**Post date:** [September 1, 2025, 7:13am UTC](https://discourse.julialang.org/t/namedtuple-from-the-componentarray/132000/1 "2025-09-01T07:13:12Z")

</div>

I am using `Lux.jl` and I want to access the flattened parameter vector. I use `ComponentArrays.jl` to achieve this. Now, if I have a flattened model vector `m0`, how do I get the ps back from this?

```julia
# flattened vector from the ps
ca = ComponentArray(ps)
m0 = getdata(ca)

```

In this case how do I get back `ps` from `m0`, given I still have a copy of the `ca`?

---

<div class="post-metadata">

**Author:** ![avikpal](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/avikpal/32/6550_2.png) [@avikpal](https://discourse.julialang.org/u/avikpal)\
**Post date:** [September 1, 2025, 6:49pm UTC](https://discourse.julialang.org/t/namedtuple-from-the-componentarray/132000/2 "2025-09-01T18:49:15Z")

</div>

`NamedTuple(ca)` should be able to do this

---

<div class="post-metadata">

**Author:** ![johnb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnb/32/44115_2.png) [@johnb](https://discourse.julialang.org/u/johnb)\
**Post date:** [September 3, 2025, 7:24pm UTC](https://discourse.julialang.org/t/namedtuple-from-the-componentarray/132000/3 "2025-09-03T19:24:07Z")

</div>

I’ve been using `destructure()` from Optimisers.jl for something similar.  
([direct link to api info](https://fluxml.ai/Optimisers.jl/stable/api/#Optimisers.destructure))

```julia
flat_vector, restructuring_function = destructure(ca)

new_ca = restructuring_function(flat_vector)

```

---

<div class="post-metadata">

**Author:** ![IBArbitrary](https://avatars.discourse-cdn.com/v4/letter/i/9de053/32.png) [@IBArbitrary](https://discourse.julialang.org/u/IBArbitrary)\
**Post date:** [September 11, 2025, 6:36am UTC](https://discourse.julialang.org/t/namedtuple-from-the-componentarray/132000/4 "2025-09-11T06:36:28Z")

</div>

Thanks, both the options are helpful!
