public abstract class Decoder extends AbstractBlock
Decoder
is an abstract block that be can used as decoder in encoder-decoder architecture.
This abstraction, along with Encoder
, comes into play in the EncoderDecoder
class, and facilitate implementing encoder-decoder models for different tasks and inputs.Modifier and Type | Field and Description |
---|---|
protected Block |
block |
inputNames, inputShapes
Constructor and Description |
---|
Decoder(Block block)
Constructs a new instance of
Decoder with the given block. |
Modifier and Type | Method and Description |
---|---|
NDList |
forward(ParameterStore parameterStore,
NDList inputs,
boolean training,
ai.djl.util.PairList<java.lang.String,java.lang.Object> params)
Applies the operating function of the block once.
|
BlockList |
getChildren()
Returns a list of all the children of the block.
|
java.util.List<Parameter> |
getDirectParameters()
Returns a list of all the direct parameters of the block.
|
Shape[] |
getOutputShapes(NDManager manager,
Shape[] inputShapes)
Returns the expected output shapes of the block for the specified input shapes.
|
Shape |
getParameterShape(java.lang.String name,
Shape[] inputShapes)
Returns the shape of the specified direct parameter of this block given the shapes of the
input to the block.
|
Shape[] |
initialize(NDManager manager,
DataType dataType,
Shape... inputShapes)
Initializes the parameters of the block.
|
abstract void |
initState(NDList encoderStates)
Sets the state of the encoder as the initial state of the decoder.
|
void |
loadParameters(NDManager manager,
java.io.DataInputStream is)
Loads the parameters from the given input stream.
|
void |
saveParameters(java.io.DataOutputStream os)
Writes the parameters of the block to the given outputStream.
|
beforeInitialize, cast, clear, describeInput, getParameters, isInitialized, readInputShapes, saveInputShapes, setInitializer, setInitializer
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forward, validateLayout
protected Block block
public Decoder(Block block)
Decoder
with the given block. Use this constructor if
you are planning to use pre-trained embeddings that don't need further training.block
- the block to be used to decodepublic abstract void initState(NDList encoderStates)
encoderStates
- the states of the encoderpublic NDList forward(ParameterStore parameterStore, NDList inputs, boolean training, ai.djl.util.PairList<java.lang.String,java.lang.Object> params)
parameterStore
- the parameter storeinputs
- the input NDListtraining
- true for a training forward passparams
- optional parameterspublic Shape[] initialize(NDManager manager, DataType dataType, Shape... inputShapes)
manager
- the NDManager to initialize the parametersdataType
- the datatype of the parametersinputShapes
- the shapes of the inputs to the blockpublic BlockList getChildren()
public java.util.List<Parameter> getDirectParameters()
Parameter
public Shape getParameterShape(java.lang.String name, Shape[] inputShapes)
name
- the name of the parameterinputShapes
- the shapes of the input to the blockpublic Shape[] getOutputShapes(NDManager manager, Shape[] inputShapes)
manager
- an NDManagerinputShapes
- the shapes of the inputspublic void saveParameters(java.io.DataOutputStream os) throws java.io.IOException
os
- the outputstream to save the parameters tojava.io.IOException
- if an I/O error occurspublic void loadParameters(NDManager manager, java.io.DataInputStream is) throws java.io.IOException, MalformedModelException
manager
- an NDManager to create the parameter arraysis
- the inputstream that stream the parameter valuesjava.io.IOException
- if an I/O error occursMalformedModelException
- if the model file is corrupted or unsupported