nnet-optimize.cc File Reference

`#include <iomanip>`

`#include "nnet3/nnet-optimize.h"`

`#include "nnet3/nnet-optimize-utils.h"`

`#include "nnet3/nnet-utils.h"`

`#include "base/timer.h"`

Include dependency graph for nnet-optimize.cc:

Go to the source code of this file.

## Namespaces | |

kaldi | |

This code computes Goodness of Pronunciation (GOP) and extracts phone-level pronunciation feature for mispronunciations detection tasks, the reference: | |

kaldi::nnet3 | |

## Functions | |

void | MoveSizingCommands (const Nnet &nnet, NnetComputation *computation) |

This optimization moves commands that allocate and zero matrices to as late as possible, and moves commands that deallocate matrices to as early as possible. More... | |

void | RemoveUnnecessaryZeroing (const Nnet &nnet, NnetComputation *computation) |

This optimization function removes, where possible, commands of type type kSetConst. More... | |

static void | ComputeCommandPairs (const std::pair< std::vector< int32 >, std::vector< int32 > > &lists, std::vector< std::pair< int32, int32 > > *pairs) |

void | RemoveUnnecessaryAllocation (const Nnet &nnet, NnetComputation *computation) |

This optimization detects cases where we deallocate a matrix, and then later allocate another matrix of the same size; and replaces them with commands of type kAllocFromOther or kAllocFromOtherZeroed. More... | |

void | VariableMergingOptimization (const NnetOptimizeOptions &config, const Nnet &nnet, NnetComputation *computation) |

This wraps class VariableMergingOptimizer in a simplified interface. More... | |

void | ConvertAdditionToAssignment (const Nnet &nnet, NnetComputation *computation) |

This converts addition operations (things with Add in their names) to copy operations (things with Copy in their names). More... | |

int32 | MaxOutputTimeInRequest (const ComputationRequest &request) |

void | Optimize (const NnetOptimizeOptions &config, const Nnet &nnet, int32 max_output_time_in_request, NnetComputation *computation) |

This is the top-level function for optimizing a computation. More... | |

static void | SplitComputationIntoSegments (const NnetComputation &computation, std::vector< std::pair< int32, int32 > > *segments) |

Split the computation up into segments bounded by kNoOperationMarker. More... | |

void | ConsolidateIoOperations (const Nnet &nnet, NnetComputation *computation) |

This optimization puts the input operations (kAcceptInput) and output operations (kProvideOutput) at the very beginning or end of segments of computation, respectively. More... | |