# Chain multiple Chains in Flux

**URL:** <https://discourse.julialang.org/t/chain-multiple-chains-in-flux/44743>\
**Category:** General Usage\
**Tags:** question, flux\
**Created:** [August 11, 2020, 1:04pm UTC](https://discourse.julialang.org/t/chain-multiple-chains-in-flux/44743 "2020-08-11T13:04:47Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![SubhadityaMukherjee](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/subhadityamukherjee/32/15983_2.png) [@SubhadityaMukherjee](https://discourse.julialang.org/u/SubhadityaMukherjee)\
**Post date:** [August 11, 2020, 1:04pm UTC](https://discourse.julialang.org/t/chain-multiple-chains-in-flux/44743/1 "2020-08-11T13:04:47Z")

</div>

Hello!  
Is there any way to Chain multiple chains in Flux?  
Say for example I want to reformat my model from multiple uses of the same layers with different parameters as follows.

```julia
function conv_block(in_channels, out_channels)
   (Conv((3,3), in_channels => out_channels, relu, pad = (1,1), stride = (1,1)),
    BatchNorm(out_channels))
end

```

Instead of

```julia
 Conv((3, 3), 3 => 64, relu, pad=(1, 1), stride=(1, 1)),
  BatchNorm(64),
  Conv((3, 3), 64 => 64, relu, pad=(1, 1), stride=(1, 1)),
  BatchNorm(64),

```

which would ultimately be something like this.

```julia
Chain(
    conv_block(3, 128),
    conv_block(128, 256),
)

```

---

<div class="post-metadata">

**Author:** ![tomerarnon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tomerarnon/32/3170_2.png) [@tomerarnon](https://discourse.julialang.org/u/tomerarnon)\
**Post date:** [August 11, 2020, 3:02pm UTC](https://discourse.julialang.org/t/chain-multiple-chains-in-flux/44743/2 "2020-08-11T15:02:56Z")

</div>

You can splat the tuples/`Chains`:

```julia
Chain(
    conv_block(3, 128)...,
    conv_block(128, 256)...,
)

```

You can also define

```julia
 chain(A::Tuple...) = Chain(mapreduce(collect, vcat, A)...)

```

to do

```julia
chain(conv_block(3, 128), conv_block(128, 3))

```

directly.

---

<div class="post-metadata">

**Author:** ![SubhadityaMukherjee](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/subhadityamukherjee/32/15983_2.png) [@SubhadityaMukherjee](https://discourse.julialang.org/u/SubhadityaMukherjee)\
**Post date:** [August 11, 2020, 3:03pm UTC](https://discourse.julialang.org/t/chain-multiple-chains-in-flux/44743/3 "2020-08-11T15:03:58Z")

</div>

OH!  
Thank you so much 🙂
