2785 switch (command_type) {
2788 default:
return false;
2790 int32 indexes_multi_index = command.arg2;
2793 const MultiIndexSplitInfo &split_info =
split_info_[indexes_multi_index];
2794 if (split_info.splits.empty())
2800 std::vector<NnetComputation::Command> split_commands(
2801 split_info.splits.size());
2802 for (
size_t i = 0;
i < split_info.splits.size();
i++) {
2803 const SingleSplitInfo &split = split_info.splits[
i];
2804 NnetComputation::Command &command_out = split_commands[
i];
2805 command_out.alpha = command.alpha;
2807 command.arg1, split.offset, split.size, 0, -1);
2809 split.first_value, split.min_second_value,
2810 split.second_value_range, 0, -1);
2812 if (split.second_value_offsets.empty()) {
2814 switch (command_type) {
2823 std::swap(command_out.arg1, command_out.arg2);
2827 std::swap(command_out.arg1, command_out.arg2);
2836 switch (command_type) {
2852 command_out.command_type =
kAddRows;
2853 std::swap(command_out.arg1, command_out.arg2);
2855 std::vector<int32> indexes(split.second_value_range, -1);
2856 for (
int32 i = 0;
i < split.size;
i++) {
2861 indexes[split.second_value_offsets[
i]] =
i;
2867 KALDI_ERR <<
"Code error: un-handled case.";
2871 command = split_commands[0];
2873 for (
size_t i = 1;
i < split_commands.size();
i++) {
CommandType
CommandType is an enum that describes the category of the command used in the NnetComputation.
std::vector< std::pair< int32, NnetComputation::Command > > new_commands_
void swap(basic_filebuf< CharT, Traits > &x, basic_filebuf< CharT, Traits > &y)
std::vector< Command > commands
int32 NewSubMatrix(int32 base_submatrix, int32 row_offset, int32 num_rows, int32 col_offset, int32 num_cols)
Convenience function used when adding new sub-matrices.
#define KALDI_ASSERT(cond)
NnetComputation * computation_
std::vector< std::vector< int32 > > indexes
std::vector< MultiIndexSplitInfo > split_info_