In[]:=
net=CloudGet[CloudObject["https://www.wolframcloud.com/obj/nikm/LinePrediction.wlnet"]]
Out[]=
In[]:=
lines=Catenate@CloudGet@CloudObject["https://www.wolframcloud.com/obj/nikm/Lines"];
In[]:=
autoEncoder[net_]:=NetGraph[{​​"encode"->NetExtract[net,{"vae","Net","encoder"}],​​"decode"->NetExtract[net,{"vae","Net","decoder"}]​​},​​{NetPort["Input"]->"encode",NetPort[{"encode","Mean"}]->"decode"->NetPort["Output"]},​​"Input"->NetEncoder[{"Image",{32,32},ColorSpace->"Grayscale"}],"Output"->NetDecoder["Image"]​​]​​extractPredict[net_]:=NetGraph[{​​"encode"->NetExtract[net,{"vae","Net","encoder"}],​​"predict"->NetExtract[net,{"prediction","predict"}],​​"decode"->NetExtract[net,{"vae","Net","decoder"}]​​},​​{NetPort["Input"]->"encode",NetPort[{"encode","Mean"}]->"predict"->"decode"->NetPort["Output"]},​​"Input"->NetEncoder[{"Image",{32,32},ColorSpace->"Grayscale"}],"Output"->NetDecoder["Image"]​​]
In[]:=
ae=autoEncoder[net];
In[]:=
predict=extractPredict[net];
In[]:=
img=ImageAdd@@RandomChoice[lines,2]
Out[]=
In[]:=
Column[{x,y}=Flatten@ImagePartition[img,32]]
Out[]=
In[]:=
GraphicsColumn[NestList[predict[#]["Output"]&,x,10]]
Out[]=