I looks like you don't have any trainable parameter in you input encoding and that part is at the beginning of the net. You can simply move it in a custom Function encoder.
This is a version doing that (and also showcasing some shortcuts for specifiying layers in a NetChain)
net = NetInitialize @ NetChain[
{256, Ramp, 16, Ramp, 16, {}},
"Input" -> NetEncoder[{"Function", IntegerDigits[#, 2, 8]&, {8}}],
"Output" -> "Real"
]
net[1]
(* -0.0137619 *)
net[{1, 2, 3}]
(* {-0.0137619, -0.0934901, -0.0568687} *)
The final empty list is a length zero array that represent a scalar output which I assumed is what you were looking for with the final 1
.