Haskell Grenade Auto Coder Model

I would like to create a network for Autoencoder with a deep grenade learning library written in Haskell. He must learn to represent 265 input bits with a 200 bit layer. So I declare a type:

type Auto = 
  Network
    '[ FullyConnected 265 200, Relu, FullyConnected 200 265, Relu]
    '[ 'D1 265, 'D1 200, 'D1 265]

However, when I try to create a random network for this type

randomAuto :: MonadRandom m => m Auto
randomAuto = randomNetwork

I get an error like type:

Could not deduce (Layer Relu ('D1 200) ('D1 265)) arising from a use of ‘randomNetwork’

This is certainly because a single instance of Reludimension 1 is declared as

KnownNat i => Layer Relu (D1 i) (D1 i)

the input and output are required to be the same size.

But how do you create an autocoder with this library?

+4
source share
1 answer

, "" ( ) . , relu:

type Auto = 
  Network
    '[ FullyConnected 265 200, Relu, FullyConnected 200 265, Relu]
    '[ 'D1 265, 'D1 200, 'D1 200, 'D1 265, 'D1 265]
+2

Source: https://habr.com/ru/post/1685262/


All Articles