рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдЪрдп :: program_options

рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП, рдореИрдВ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реВрдВ, рдФрд░ рдЕрдЪрд╛рдирдХ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЕрдиреНрдп, рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдкрд░ рднреНрд░рдо рдФрд░ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЙрд▓рдЭрд╛рдПрдВрдЧреЗред рддрдм рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддреА рд╣реИред рд╕рдмрд╕реЗ рдмреБрд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рд░ рдмрд╛рд░ рд╣рдо рддрд░реНрдХ рдкрд╛рд░реНрд╕рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдердХ рдЧрдП рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдмреВрд╕реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ program_options рдкреИрдХреЗрдЬ C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдЙрдкрд╛рдп рдирд╣реАрдВ рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореИрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдиреНрдпрддрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рд╣реИред рдХреБрдЫ рдбреЗрдЯрд╛ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди .dat (рдбреЗрдЯрд╛) рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЗрдВ; рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЗрдВ .trn (рдЯреНрд░реЗрди) рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди .prs (рдкреИрд░рд╛рдореАрдЯрд░) рдХреЗ рд╕рд╛рде рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╛рдЗрд▓реЗрдВред рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдорд╛рдиреНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ: рдЯреНрд░реЗрди (рдЯреНрд░реЗрди), рдкрд╣рдЪрд╛рди (рдкрд╣рдЪрд╛рди), рд╕реНрдХреЛрд░ (рдорд╛рдиреНрдпрддрд╛ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди)ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╢рд┐рдХреНрд╖рдг, рдорд╛рдиреНрдпрддрд╛, рдореВрд▓реНрдпрд╛рдВрдХрди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЙрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджрд┐рдЦрддреА рд╣реИ:

recognizer --type=train --input=train.dat --info=train.trn --output=best.prs recognizer --type=recognize --input=test1.dat --input=test2.dat --params=best.prs --output=./ recognizer --type=score --ethanol=test1_expected.trn --test=test1.trn --output=scores.txt recognizer --type=score --ethanol=test2_expected.trn --test=test2.trn --output=scores.txt 

рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдлрд┐рд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдорд╛рдиреНрдпрддрд╛ рдкрд░рд┐рдгрд╛рдо рдХреА рддреБрд▓рдирд╛ рдорд╛рдирдХ рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред Program_options рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЗрд╕ рд╕рднреА рддрд░реНрдХ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ:

  po::options_description desc("General options"); std::string task_type; desc.add_options() ("help,h", "Show help") ("type,t", po::value<std::string>(&task_type), "Select task: train, recognize, score") ; po::options_description train_desc("Train options"); train_desc.add_options() ("input,I", po::value<std::string>(), "Input .dat file") ("info,i", po::value<std::string>(), "Input .trn file") ("output,O", po::value<std::string>(), "Output parameters file .prs") ; po::options_description recognize_desc("Recognize options"); recognize_desc.add_options() ("input,I", po::value<std::vector<std::string> >(), "Input .dat file") ("params,p", po::value<std::string>(), "Input .prs file") ("output,O", po::value<std::string>(), "Output directory") ; po::options_description score_desc("Score options"); score_desc.add_options() ("ethanol,e", po::value<std::string>(), "Etalon .trn file") ("test,t", po::value<std::string>(), "Testing .trn file") ("output,O", po::value<std::string>(), "Output comparison file") ; 

рдорд╛рдиреНрдп рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдореМрдЦрд┐рдХ рд╡рд┐рд╡рд░рдг рдФрд░ рдХреБрдЫ рд╕рдореВрд╣ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рддрд░реНрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдЧрд▓рдд рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдЖрдкрдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╕рдореВрд╣реАрдХрд░рдг рдЖрдкрдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдЗрдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реЗрдЦрд╛ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

  ("input,I", po::value<std::string>(), "Input .dat file") 

рдкрд╣рд▓рд╛ рддрд░реНрдХ рдЗрдирдкреБрдЯ рд╣реИ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ: рдЗрдирдкреБрдЯ рддрд░реНрдХ рдХрд╛ рд▓рдВрдмрд╛ рдирд╛рдо рд╣реИ, рдореИрдВ рдЫреЛрдЯрд╛ рд╣реВрдВ (рдХреЗрд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ)ред рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд :: program_options рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рд╣рдореЗрд╢рд╛ рдПрдХрд▓-рдЕрдХреНрд╖рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЖрдк, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдПрдХ рд▓рдВрдмреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

  --input=train.dat 

рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рддрд░реНрдХ, рдХрдо рдкрдардиреАрдп, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ:

  -Itrain.dat 

рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдкреЛ :: рдорд╛рди <std :: string> () рддрд░реНрдХ рдорд╛рди рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЪрд┐рдиреНрд╣ рдмрд░рд╛рдмрд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╡рд╛рд▓рд╛ рднрд╛рдЧ) рдФрд░ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛрдиреЗ рдкрд░ рдХреЛрдИ рдорд╛рди рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрд▓ рд╕рдорддреБрд▓реНрдп рд╣реИрдВ:

  recognizer --help recognizer -h 

рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдкрд╣рдЪрд╛рди рд╕рдореВрд╣ рдореЗрдВ, рдЗрдирдкреБрдЯ рддрд░реНрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ:

  po::value<std::vector<std::string> >() 

std :: рд╡реЗрдХреНрдЯрд░ <std :: string> рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рддрд░реНрдХреЛрдВ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝рд╛рдЗрд▓ рдкрд╣рдЪрд╛рди рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  recognizer --type=recognize -itest1.dat -itest2.dat -pbest.prs -O./ 

рддреАрд╕рд░рд╛ рдФрд░ рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд┐рд╡рд░рдг рд╣реИред рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдмрд┐рдВрджреБ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдкрдХреЛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рд▓рд┐рдЦрдиреЗ рдХреЗ рдЫрд╣ рдорд╣реАрдиреЗ рдмрд╛рдж рдХреБрдЫ рдФрд░ рдЧрд┐рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдорджрдж рдЖрдЙрдЯрдкреБрдЯ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

 me@my: ./recognizer -h General options: -h [ --help ] Show help -t [ --type ] arg Select task: train, recognize, score Train options: -I [ --input ] arg Input .dat file -i [ --info ] arg Input .trn file -O [ --output ] arg Output parameters file .prs Recognize options: -I [ --input ] arg Input .dat file -p [ --params ] arg Input .prs file -O [ --output ] arg Output directory Score options: -e [ --ethanol ] arg Etalon .trn file -t [ --test ] arg Testing .trn file -O [ --output ] arg Output comparison file 

рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЙрд╕ рдХрд╛рд░реНрдп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

  namespace po = boost::program_options; po::variables_map vm; po::parsed_options parsed = po::command_line_parser(ac, av).options(desc).allow_unregistered().run(); po::store(parsed, vm); po::notify(vm); 

рд╣рдо рдХреЗрд╡рд▓ рддрд░реНрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред Allow_unregistered рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдХреЗ рдмрд┐рдирд╛ :: program_options рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╢рдкрде рд▓реЗрдВрдЧреЗ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдорджрджред рдЗрд╕ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, task_type рд╡реИрд░рд┐рдПрдмрд▓ рднрд░ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдк "рд╕реНрд╡рд┐рдЪ" рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

  if(task_type == "train") { desc.add(train_desc); po::store(po::parse_command_line(ac,av,desc), vm); train(vm); } else if(task_type == "recognize") { //... else { desc.add(train_desc).add(recognize_desc).add(score_desc); std::cout << desc << std::endl; } 

рдЙрдкрдпреБрдХреНрдд рд╕рдореВрд╣ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рдЕрдкрд╡рд╛рдж рдХреЗ рдмрд┐рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реАрдПрдо рдЪрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬреА рдФрд░ рдмрдврд╝рд╛рд╡рд╛ :: рдореВрд▓реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рд╕реА рднреА рд╢рдмреНрджрдХреЛрд╢ рд╣реИред рдорджрдж, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓рдЧрднрдЧ рдореБрдлреНрдд рд╣реИред

рдЖрдЗрдП рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░реЗрди (vm) рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рд╢рдмреНрджрдХреЛрд╢ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

  void train(const po::variables_map& vm) { std::string input_path, info_path, output_path; if (vm.count("input")) { input_path = vm["input"].as<std::string>(); } if(vm.count("info")) { info_path = vm["info"].as<std::string>(); } if(vm.count("output")) { output_path = vm["output"].as<std::string>(); } //... } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рддрд░реНрдХреЛрдВ рдХреЛ рдЙрдирдХреЗ рдкреВрд░реНрдг рдирд╛рдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдкрд╛рд░рд┐рдд рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВред рддреБрд▓рдирд╛ "рдЬрд╛рдирдХрд╛рд░реА, рдореИрдВ" рдФрд░ рд╕рд┐рд░реНрдл "рдЬрд╛рдирдХрд╛рд░реА"ред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рдкрд╛рд╕реНрдЯрдмрд┐рди рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреЛ рд▓реЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреАрдЪ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╡реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓реЗ рдЧрдП рд╣реИрдВред

рдлрд╛рдпрджреЗ:

рдиреБрдХрд╕рд╛рди:

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


All Articles