Python3 рдХрд╛ рдЕрдзреНрдпрдпрди, рдореИрдВрдиреЗ PyBrain рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛)ред рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред

рдЕрдм рдореИрдВ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рдХрд╣рд╛ рдерд╛, рдореИрдВрдиреЗ рдЕрднреА рдЕрдЬрдЧрд░ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣рд░ рдЪреАрдЬ рдХреЛ рд╕рддреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реАрдЦрдирд╛ рддрд░реАрдХрд╛ рд╣реИ, рдФрд░ рд╡рд╣ рд╢реЛрдХ рдордирд╛ рд░рд╣рд╛ рд╣реИред
рдХреГрддреНрд░рд┐рдо рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ (рдПрдПрдирдПрди) рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ - рд╡рд░реНрдЧреАрдХрд░рдг рд╕реЗ рдкрд╣рд▓реЗ рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ: рд▓реИрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдЕрдХреНрд╖рд░реЛрдВ рдХреА рдорд╛рдиреНрдпрддрд╛ред
рдпрд╣ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд▓рдЧрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрдИ рдмрд╛рд░ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ:
"рдХреГрддреНрд░рд┐рдо рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреНрдпрд╛ рд╣реИрдВ?" ,
"рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рдЪрд░рд┐рддреНрд░ рдкрд╣рдЪрд╛рди" ,
рдЖрджрд┐редрд▓реЗрдХрд┐рди рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдЬрдЧрд░ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╣реИред рдпрд╛рдиреА рдЬрдЯрд┐рд▓ рдФрд░ рдЕрдкрд░рд┐рдЪрд┐рдд рдкрд░ рддреБрд░рдВрдд рд╕реАрдЦреЗрдВред рддреЛ рд╣рдо рдХрдИ рд░реЗрдХ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛ рдмрд╛рд░ рдкрд╛рдПрдВрдЧреЗ, рдЬреЛ рд╣рдореЗрдВ "рдХреНрдпреЛрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?" рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреАрдн рдХреА рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЦреЛрджрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рд╣реЗрдмреНрд░реИрдЯреИрдЯ рдХреЗ рддрд╣рдд рдЖрдкрдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ: рдХреИрд╕реЗ
PyQt4 рдкрд░ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╡рд░рдг,
argparse рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ
PyBrain !
рд╣рдм рдкрд░ рдФрд░ рдпрд╣рд╛рдВ рди рдХреЗрд╡рд▓ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдПрдПрдирдПрди рдХреЛ рд▓рд┐рдЦрдирд╛ / рдмрдирд╛рдирд╛ / рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╕реЗрдЯ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдп рджреЛ рдЙрдк-рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ:
- рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░реЗрдВ;
- рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг ANNред
рд╣рдо рдЗрд╕реЗ рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рдХрд░реЗрдВрдЧреЗред рддреЛ рдЙрджрдп рдкрд░ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдбреЗрдЯрд╛ рдХреА рддреИрдпрд╛рд░реА
рд╕рдВрджрд░реНрдн рдХреА рд╢рд░реНрддреЗрдВ
рдЖрдЗрдП рдХрд╛рд░реНрдп рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдВ: рдкрддреНрд░ рдХреА рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░, рдХрд╣реЗрдВрдЧреЗ, 64 рд╕реЗ 64 рдкрд┐рдХреНрд╕реЗрд▓ (рдПрдПрдирдПрди рд╕реЗ рдХреБрд▓ 4096 рдЗрдирдкреБрдЯ)ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрди рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рдПрдХ рдЬрдирд░реЗрдЯрд░ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рд╣рдо рдЗрд╕реЗ, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЕрдЬрдЧрд░ рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗред
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ:
- рд▓реЛрдЕрд░рдХреЗрд╕ рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░
- рдЕрдкрд░рдХреЗрд╕ рдореЗрдВ рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░
- рдЕрдХреНрд╖рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдХрд╛рд░ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рд╡реИрдХрд▓реНрдкрд┐рдХ)
- рд╢реИрд▓реА рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреА рд╣реИ (рд╡рд┐рднрд┐рдиреНрди рдлреЛрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдПрдХ рдЬрдирд░реЗрдЯрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдЗрдирдкреБрдЯ рд╣реИрдВ:
- рдЕрдХреНрд╖рд░реЛрдВ рдХреА рд╕реВрдЪреА, рдЬреИрд╕реЗ рдПрдмреАрд╕реА рдпрд╛ рдПрдлрдПрдХреНрд╕ (рд░реЗрдВрдЬ)
- рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ 40
- рдлрд╝реЙрдиреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛
- рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдкрде рдЬрд╣рд╛рдВ рдЙрддреНрдкрдиреНрди рдЪрд┐рддреНрд░ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗ
рдПрдХ рдЫрд╡рд┐ рд╣реЗрд░рдлреЗрд░ рд╡рд┐рдзрд┐ рдвреВрдБрдврдирд╛
рдЬрдирд░реЗрдЯрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдЬрдЧрд░ рдореЗрдВ рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рд┐рдПред Google рдиреЗ рд╣рдорд╛рд░реА рдмрд╣реБрдд рдорджрдж рдирд╣реАрдВ рдХреАред рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдпрд╛ рддреЛ рдкрд╛рдпрдерди рдЗрдореЗрдЬрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП - рд╕рдВрдХреНрд╖рд┐рдкреНрдд
рдЬрдирд╣рд┐рдд рдпрд╛рдЪрд┐рдХрд╛ , рдпрд╛
PyGame ред
рдХреЗрд╡рд▓ рдпрд╣рд╛рдБ рджреБрд░реНрднрд╛рдЧреНрдп рд╣реИред рдкрд╣рд▓рд╛ рдХреЗрд╡рд▓ python2 рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рдЖрдЦрд┐рд░реА рд░рд┐рд▓реАрдЬрд╝ 2009 рдореЗрдВ рдереАред рд╣рд╛рд▓рд╛рдВрдХрд┐ github.com рдкрд░
рддреАрд╕рд░реЗ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛
рдХрд╛рдВрдЯрд╛ рд╣реИ ред рдореИрдиреБрдЕрд▓ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред
PyGame рдПрдХ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореИрдиреБрдЕрд▓ рдЗрд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкрдврд╝рддрд╛ рд╣реИред рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рддрд╕реНрд╡реАрд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдирд╛рдЦреВрдиреЛрдВ рдХреЛ рд╣рдереМрдбрд╝рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрд╕реНрдХреЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реИред
рдЕрднреА рддрдХ рдЧреБрдЧрд▓реА рдХреАред рдкрд╛рдЗрдердирдордЧрд┐рдХ рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдпреВрдирд┐рдХреНрд╕ рдЬреИрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╣реИред рдФрд░ рдлрд┐рд░ рдпрд╣ рдореБрдЭ рдкрд░ dawned!
PyQt4 !
рдореИрдВ Qt4 рд╕реЗ рдХрд╛рдлреА рдкрд░рд┐рдЪрд┐рдд рд╣реВрдВ, рдореИрдВрдиреЗ C ++ / Qt рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрд╛ рд╣реИред рд╣рд╛рдВ, рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрд╡рд┐рд╕ рдЪрд╛рдХреВ рдХреА рддрд░рд╣ рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдмреАрдпрд░ рдХреА рдПрдХ рдмреЛрддрд▓ рдЦреЛрд▓реЗрдВрдЧреЗ, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд▓рдХрдбрд╝реА рдХреЗ рдЯреБрдХрдбрд╝реЗ рд╕реЗ рдПрдХ рд╕реБрдВрджрд░ рдЖрдХреГрддрд┐ рдХрд╛рдЯ рджреА рдЬрд╛рдПрдЧреАред рдореБрдЦреНрдп рдмрд╛рдд рдЪрд╛рдХреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИред Qt рдФрд░ рд╕реНрдЯреЙрдк рдкрд░ред
Habr├й рдХреА рдЦреЛрдЬ рдиреЗ рд╣рдореЗрдВ
PyQt рдкрд░ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рджреАред рдЦреИрд░, рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ - рд╣рдо рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗред
рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдмрдЪрдд рд▓реЗрдЦрди
рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ PyQt4 рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ, рдкрд╛рдардХ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ - рдореИрдВ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛ред рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд рдкрд╛рд░рд┐рдд рдХрд░ рджреВрдВрдЧрд╛ред
рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ PyQt4 рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП "рдордЫрд▓реА" рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред
app = QApplication([])
рд╕рд╛рде рд▓рд╛рдЗрди рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЙрд╕реЗ рдордд рднреВрд▓рдирд╛ред рдореЗрд░реЗ рдмрд┐рдирд╛, рдЕрдЬрдЧрд░ SIGFAULT рдХреЗ рд╕рд╛рде рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рдЪреЗрддрд╛рд╡рдиреА рдФрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдЕрдм "рд▓реЙрдЬрд┐рдХ" рдХреЛ рд╡рд░реНрдХрд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рд╕реЗ рднрд░реЗрдВред рд╕рд╣реЗрдЬреЗрдВ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рджрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдХреЛ рдмрдЪрд╛рдПрдЧрд╛ред
def save(png_file, letter = 'A', font = "Arial", size = 40, align = Qt.AlignCenter): img = QImage(64,64, QImage.Format_RGB32) img.fill(Qt.white) p = QPainter(img) p.setPen(Qt.black) p.setFont(QFont(font,size)) p.drawText(img.rect(), align, letter) p.end() img.save(png_file)
рдлрд╝рдВрдХреНрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд╛рдордЧреНрд░реА рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реВрдБрдЧрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, QImage рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЕрдкрдиреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ / рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рд▓рдЪреАрд▓рд╛ рдЙрдкрдХрд░рдгред рд╕рдлреЗрдж рд░рдВрдЧ 64 рдХреА рдкреВрд░реА рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП 64 рдкрд┐рдХреНрд╕реЗрд▓ рд╕реЗ рднрд░рд╛ рд╣реИред
рдлрд┐рд░ QPainter рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП img рд▓рд┐рдВрдХ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд░реНрдЧ рдЖрдкрдХреЛ QPaintDevice рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдХреЗ рдХреИрдирд╡рд╛рд╕ рдкрд░, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдпрд╛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдФрд░ рдРрд╕реЗ рд╣реА рдПрдХ рд╡рд░реНрдЧ рд╣реИ QImageред
рдХрд╛рд▓реА рдХрд▓рдо, рдлрд╝реЙрдиреНрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдкрддреНрд░ рдЦреАрдВрдЪреЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ 40 рд╣реИ (рдЬреЛ рд▓рдЧрднрдЧ рдкреВрд░реЗ рдЫрд╡рд┐ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрддрд╛ рд╣реИ) рдФрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред
рдареАрдХ рд╣реИ, рддреЛ рдЫрд╡рд┐ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рдЫреВ рдордВрддрд░ рд╣реЛ рдЧрдпрд╛
рдмрд╣реБрдд рдХрдо рдмрдЪрд╛ рд╣реИред рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкред
рдпрд╣ рд╣реЗрдб-рдСрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрджрд┐ рдПрдХ рдЭреБрдВрдб рдХреЗ рд╕рд╛рде, рдпрд╛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рдХреЛ рд╣рд╛рд░реНрдб-рд╕реЗрдЯрд┐рдВрдЧ рдХрд░рдХреЗ), рдпрд╛ рдЖрдк
рдЧреЗрдЯрдЯреЙрдк рдпрд╛
рдЖрд░реНрдЧрдкрд░реНрд╕ рдЬреИрд╕реЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдиреНрдирдд рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рд╣рдо рдЕрдзреНрдпрдпрди рдХрд░реЗрдВрдЧреЗред
рд╣рдорд╛рд░реЗ рдЗрдирдкреБрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ: рдлрд╝реЙрдиреНрдЯ, рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░, рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд╣рд╛рдВ рд╕рдорд╛рдкреНрдд рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдбрдВрдк рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдм рдХреЗ рд▓рд┐рдП рд╕рдВрд░реЗрдЦрдг рдмреЗрд╣рддрд░ рд╕рдордп рддрдХ рдЫреЛрдбрд╝ рджреЗрдВред
рдЗрд╕ рдореИрдиреБрдЕрд▓ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
p = argparse.ArgumentParser(description='Symbols image generator') p.add_argument('-f','--font', default='Arial', help='Font name, default=Arial') p.add_argument('-s','--size', type=int, default=40, help='Font size, default=40') p.add_argument('-d','--dir', default='.', help='Output directory, default=current') p.add_argument('letters', help='Array of letters(abc) or range (az)') args = p.parse_args()
рдЗрд╕ рддрд░рд╣ рд╣рдо рдЕрдкрдиреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ,
argparse рдореЙрдбреНрдпреВрд▓ рдмрд╛рдХреА рдХреА рджреЗрдЦрднрд╛рд▓ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдЬреЛ рдкрд╕рдВрдж рдЖрдпрд╛ рд╡рд╣ рдерд╛
рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрддреНрдкрд╛рджрдиред рд╣рдорд╛рд░реА рд╕реВрдЪреА рдореЗрдВ рдХрд┐рд╕ рддрд░реНрдХ рдореЗрдВ рдПрдХ рдФрд░ рддрд░реНрдХ (
-рдПрдЪ) рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ ред рдЙрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдФрд░ рдЖрд▓рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрдж рдФрд░ рдЕрдиреНрдп рджрд╕реНрддрд╛рд╡реЗрдЬ рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ред рдпрд╣
рдЕрд░реНрдЧрдкрд░реНрд╕ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдПрдХ рдмрд┐рдВрджреБ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдорджрдж, рд╣рдореЗрдВ рдпрд╣ рдорд┐рд▓рддрд╛ рд╣реИ:
рдЙрдкрдпреЛрдЧ: gen_pic.py [-h] [-f FONT] [-s рдЖрдХрд╛рд░] [-d DIR] рдкрддреНрд░
рдкреНрд░рддреАрдХ рдЫрд╡рд┐ рдЬрдирд░реЗрдЯрд░
рд╕реНрдерд┐рддрд┐ рд╕рдВрдмрдВрдзреА рддрд░реНрдХ:
рдЕрдХреНрд╖рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (abc) рдпрд╛ рд░реЗрдВрдЬ (az)
рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ:
-h, --help рдпрд╣ рдорджрдж рд╕рдВрджреЗрд╢ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ
-f рдлреЙрдВрдЯ, --font рдлреЙрдВрдЯ рдлрд╝реЙрдиреНрдЯ рдирд╛рдо, рдбрд┐рдлрд╝реЙрд▓реНрдЯ = рдПрд░рд┐рдпрд▓
-S SIZE, - рдЖрдХрд╛рд░ рдЖрдХрд╛рд░ рдлрд╝реЙрдиреНрдЯ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ = 40
-d DIR, --dir DIR рдЖрдЙрдЯрдкреБрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА, рдбрд┐рдлрд╝реЙрд▓реНрдЯ = рдХрд░рдВрдЯ
рдЕрдм рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрде рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЕрдХреНрд╖рд░реЛрдВ рдХреА рд╕реАрдорд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ! рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ
os ,
os.path рдФрд░
re рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
if os.path.exists(args.dir): os.mkdir(args.dir) if re.match('^([az]-[az])|([AZ]-[AZ])$', args.letters): begin = args.letters[0] end = args.letters[2] if (ord(end)-ord(begin))>26: print("Error using letters. Only AZ or az available, not Az.") p.print_help() return letters = [chr(a) for a in range(ord(begin),ord(end)+1)] else: letters = args.letters
рдЦреИрд░ рдпрд╣рд╛рдБред рдпрд╣ рдПрдХ рдЪрдХреНрд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдФрд░ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рдмрджрд▓реЗ рд╕рднреА рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред
рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢ - рд╣рдо рд╕реЗрд╡ () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдмрдВрдзрди рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ saveWrap () рдХрд╣реЗрдВрдЧреЗред рдХрд┐рддрдирд╛ рдореВрд▓ рд╣реИ, рд╣реИ рди? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рднреА рдЕрд▓реМрдХрд┐рдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдмрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ () рдлрд╝рдВрдХреНрд╢рдиред
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдкреВрд░реЗ рдЬрдирд░реЗрдЯрд░ рдиреЗ рд╣рдореЗрдВ рдХреЗрд╡рд▓ 55 рд▓рд╛рдЗрдиреЗрдВ рд▓реАрдВ (рдХреЛрдб рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдпрд╣ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИ?
рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдЬрдЧрд░ рдХреЗ рдЧреБрд░реБ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрд╡рд╕рд░ рдорд┐рд▓реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ? рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреЛрдб рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИред рд╕реАрдзреА рдЖрдБрдЦ рдЖрдирдиреНрджрд┐рдд рдХрд░рддреА рд╣реИред
рдПрдПрдирдПрди рд╡рд┐рдХрд╛рд╕
рдЕрдм рдПрдПрдирдПрди рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
PyBrain рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд
рд╣реЛрдВ ред
PyBrain рдФрд░ Python3 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдпрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди 3 рдХреЗ рддрд╣рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ PyBrain рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдЖрдк
рдпрд╣рд╛рдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рдореБрдЭреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╣реБрдд рдмрдВрджрд░рдЧрд╛рд╣ рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝реЗ рдорд┐рд▓реЗред
рдореИрдВ рдЙрд╕ рдЬрдЧрд╣ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдмрд╣реБрдд рдЦреБрд╢ рдерд╛ рдЬрд╣рд╛рдБ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрд╛рд╣рд░ рдЧрд┐рд░рд╛ рдерд╛:
# FIXME: рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ NaN рдХреЗ рдЙрддреНрдкрд╛рджрди рд╕реЗ arac рд░рдЦрддреА рд╣реИред рдореИрдВ рдирд╣реАрдВ
# рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ __str__ рд╡рд┐рдзрд┐
# ndarray рд╡рд░реНрдЧ рдХреБрдЫ рдареАрдХ рдХрд░рддрд╛ рд╣реИ,
# str (рдЖрдЙрдЯрд░)
рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ рдкрд╛рдпрдерди 3 рдореЗрдВ рдпрд╣ рд╣реИрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЗрдирдкреБрдЯ рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 0 рд╕реЗ 1 рддрдХ рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдЪрдордХ рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдХ рдЫрд╡рд┐ (рдЧреНрд░реЗ рдЯрди рдореЗрдВ) рд╣реИред
рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдПрдПрдирдПрди рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рдХрд┐ рд╕реАрдорд┐рдд рдЕрдХреНрд╖рд░реЛрдВ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ рдкрд╣рдЪрд╛рди рдХрд░реЗрдЧрд╛ред рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдлрд╝реЙрдиреНрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдЗрди рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЙрдиреНрдЯ (рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯ) рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
A, B, C, D, Z рдЕрдХреНрд╖рд░ рд▓реЗрдВ
редрдЪреВрдБрдХрд┐ рд╣рдорд╛рд░рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдХреНрд╖рд░ рд╕реАрдЦреЗрдЧрд╛, рдЬрд┐рдирдХреА рдЫрд╡рд┐рдпрд╛рдБ
64 рд╕реЗ 64 рдкрд┐рдХреНрд╕реЗрд▓ рдЖрдХрд╛рд░ рдХреА рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЗрдирдкреБрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛
4096 рд╣реЛрдЧреА ред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрд░рдорд╢рдГ 5 рдкрд╣рдЪрд╛рдирдиреЗ рдпреЛрдЧреНрдп рдкрддреНрд░ рд╣реЛрдВрдЧреЗ, рдФрд░
рдиреЗрдЯрд╡рд░реНрдХ рдЖрдЙрдЯрдкреБрдЯ рдХреА
рд╕рдВрдЦреНрдпрд╛ рдкрд╛рдВрдЪ рд╣реИ ред
рдЕрдм рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдореЗрдВ рдЫрд┐рдкреА рд╣реБрдИ рдкрд░рддреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХрд┐рддрдирд╛?
рдореИрдВрдиреЗ рдЫрд┐рдкреА рдкрд░рддреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ:
net = buildNetwork(64 * 64, 5)
64 рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд┐рдкреА рд╣реБрдИ рдкрд░рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЫрд┐рдкреА рд╣реБрдИ рдкрд░рдд рд╕реЙрдлреНрдЯрдореИрдХреНрд╕рд▓реЗрдпрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреАрдЬреЗрдВ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:
net = buildNetwork(64 * 64, 8 * 8, 5, hiddenclass=SoftmaxLayer)
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ,
рд▓реЗрдЦ рдиреЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛, рд▓реЗрдХрд┐рди рдХреЛрдИ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рдЗрд╕ рджреЛрд╖ рдХреЛ рдареАрдХ рдХрд░реВрдВрдЧрд╛ред
рдмрд┐рд▓реНрдб рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд╛рдЗрдХрдЬрд╝ ()BuildNetwork () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рдлреАрдбрдлрд╝реЙрд░рд╡рд░реНрдб рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рдореНрди рдкреНрд░рд╛рд░реВрдк рд╣реИ:
pybrain.tools.shortcuts.buildNetwork(*layers, **options)
рдкрд░рддреЗрдВ - рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдпрд╛ рдЯрдкрд▓ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рдд рдореЗрдВ рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИ
рд╡рд┐рдХрд▓реНрдк "
рдирд╛рдо = рд╡реИрд▓ " рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ = рд╕рддреНрдп) - рдЫрд┐рдкреА рд╣реБрдИ рдкрд░рддреЛрдВ рдореЗрдВ рдСрдлрд╕реЗрдЯ рд╢реБрд░реВ рдХрд░реЗрдВ
outputbias (рдбрд┐рдлрд╝реЙрд▓реНрдЯ = рд╕рддреНрдп) - рдЖрдЙрдЯрдкреБрдЯ рдкрд░рдд рдореЗрдВ рдСрдлрд╕реЗрдЯ рд╢реБрд░реВ рдХрд░реЗрдВ
hiddenclass рдФрд░
outclass - рдХреНрд░рдорд╢рдГ рдЫреБрдкреА рд╣реБрдИ рдкрд░рддреЛрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░рдд рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдиреНрдпреВрд░реЙрдирд▓реЗрдпрд░ рд╡рд░реНрдЧ рдХрд╛ рд╡рдВрд╢рдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдореВрд▓реНрдп рдЧреЙрд╕рд┐рдпрди рд▓реЗрдпрд░, рд▓рд┐рдирд┐рдпрд░рд▓реЗрдпрд░, рдПрд▓рдПрд╕рдЯреАрдПрдордПрд▓рдпрд░, рдПрдордбреАрдПрд▓рдПрд╕рдЯреАрдПрдордПрд▓рдпрд░, рд╕рд┐рдЧреНрдорд╛рдпреЙрд▓реЗрдпрд░, рд╕реЙрдлреНрдЯрдореИрдХреНрд╕рд▓реЗрдпрд░, рддрдиреНрд╣реЗрд▓рд░ рд╣реИрдВред
рдпрджрд┐
рдЖрд╡рд░реНрддрдХ рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ RecurrentNetwork рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрдиреНрдпрдерд╛ FeedForwardNetworkред
рдпрджрд┐
рддреЗрдЬрд╝ рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рддреЗрдЬрд╝
arac рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЕрдЬрдЧрд░ рдореЗрдВ PyBrain рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдЧрд╛ред
рдЬреЛ рд▓реЛрдЧ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╡реЗ
рдмреНрд░реЗрдирдбреИрдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
buildNetwork () рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдХреЙрд▓ рдХреЛ рд╕рд╣реА /
рдЕрдирд╕реБрдирд╛ рдХрд░рдХреЗ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред
ANN рдкреНрд░рд╢рд┐рдХреНрд╖рдг
рддреЛ, рдпрд╣ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд▓реЗрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП
gen_pic.py рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдкрддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛:
./gen_pic.py -d ./learn -f FreeMono ABCDZ
/gen_pic.py -d/learn -f Times ABCDZ
./gen_pic.py -d ./learn -f Arial ABCDZ
/gen_pic.py -d/test -f DroidMono ABCDZ
/gen_pic.py -d/test -f Sans ABCDZ
рдПрдХ рддрд╕реНрд╡реАрд░ рд╕реЗ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЖрд░рдЬреАрдмреА рд░рдВрдЧреЛрдВ рдХреЛ рдЧреНрд░реЗ рдЯреЛрди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдореБрдЭреЗ рдЗрд╕реЗ рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рдЫреЛрдбрд╝ рджреЗрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рдХреЛрдИ рднреА рдЕрднреА рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ
get_data () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ
brain.py рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЦреБрдж
init_brain () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдирдореВрдирд╛, рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ, рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЯреНрд░реЗрдирд░ рдкреНрд░рдХрд╛рд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡рдпрдВ рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдПрдХ рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдореБрдЦреНрдп рд▓рд╛рдЗрдиреЗрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИрдВ (рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкреВрд░рд╛ рдХреЛрдб рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):
def init_brain(learn_data, epochs, TrainerClass=BackpropTrainer): ... net = buildNetwork(64 * 64, 5, hiddenclass=LinearLayer)
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдордЭрд╛рдПрдБ рдХрд╣рд╛рдБред
ClassificationDataSet - рд╡рд░реНрдЧреАрдХрд░рдг рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛рд╕реЗрдЯред рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдФрд░ рд╡рд░реНрдЧ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ (рдЯреНрд░рд╛рдВрд╕ [рдЖрдЙрдЯ]) рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирдореВрдирд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред
_ConvertToOneOfMany () рдлрд╝рдВрдХреНрд╢рди рдЖрдЙрдЯрдкреБрдЯ рд▓реЗрдпрд░ рдХреЗ рдорд╛рдиреЛрдВ рдореЗрдВ рдЗрдиреНрд╣реАрдВ рдХреНрд▓рд╛рд╕ рдирдВрдмрд░реЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ "рд╢рд┐рдХреНрд╖рдХ" рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ (рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрдВрд╕реЛрд▓ рдкрд░ рдордзреНрдпрд╡рд░реНрддреА рдЧрдгрдирд╛рдУрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛)ред
рд╣рдо рд╢рд┐рдХреНрд╖рдХ рдХреЛ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реЗрдЯ (рд╕реЗрдЯрдбреЗрдЯрд╛ ()) рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ (trainUntilConvergence ()), рдЬреЛ рдпрд╛ рддреЛ рддрдм рддрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рджреЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рдЬрдм рддрдХ рдХрд┐ рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдпреБрдЧ рдирд╣реАрдВ рдЖ рдЬрд╛рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рддреЛ, рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдХреЛрдб рд▓рд┐рдЦрд╛ рдФрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЬреЗрдирд░реЗрдЯрд░, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрд╕ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЖрдЬ, рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрд╡рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдХреНрд╖реЗрддреНрд░ рд╣реИ, рдкреНрд░рд┐рдп% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо%! рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИ, рдЬрд╣рд╛рдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИ, рдХреНрдпрд╛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ ...
рдореИрдВ
рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рджреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдХреЛрдВ -
рдмреИрдХрдкреНрд░реЙрдкрдЯреНрд░реЗрдирд░ рдФрд░
рдЖрд░рдкреАрдкреНрд░реЛрдорд┐рдирд╕рдЯреНрд░реНрд░реЗрдирд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред
рдмреИрдХрдкреНрд░реЙрдкрдЯреНрд░реЗрдирд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдЧрддрд┐ рдЦрд░рд╛рдм рд╣реИ, рдмрд╣реБрдд рдзреАрд░реЗ-рдзреАрд░реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддреА рд╣реИред рдХрд┐рд╕ рд╡рдЬрд╣ рд╕реЗ, рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
Brain.py рдореЗрдВ рдПрдХ рд▓рд╛рдЗрди
рдмрджрд▓рдХрд░ рдЖрдк
RPropMinusTrainer рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣реИ рдФрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рдореИрдВ рдпрд╣ рднреА рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рднреА
100% рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ , рд╢рд╛рдпрдж рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдкрд░рддреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХреЛрдИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдордЭ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди 3 рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рд░реНрдп рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИ: рдпрд╣рд╛рдВ рдЖрдк рд╕реВрдЪрд┐рдпреЛрдВ рдФрд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (os рдФрд░ os.path рдореЙрдбреНрдпреВрд▓ )ред
рдЬреЛ рд▓реЛрдЧ рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдмрд╛рдд
рдХрд╣реВрдВрдЧрд╛ -
рдмреНрд░реЗрдирдбреИрдо рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдпрджрд┐ рдЖрдк рдЕрдХреНрд╖рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рджреВрд╕рд░реЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕реБрдзрд╛рд░ рдЫреЛрдЯреЗ рдФрд░ рд╕рд░рд▓ рд╣реИрдВред
рдпрджрд┐ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ - рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЗрдВ рд▓рд┐рдЦреЗрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЦреБрдж рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛, рдХрд╣рд╛рдВ рдФрд░ рдХреИрд╕реЗред
рд╕рдордп рд╣реЛрдЧрд╛, рд╢рд╛рдпрдж рдореИрдВ рдЕрдзрд┐рдХ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдмрдирд╛рдКрдВрдЧрд╛, рдореИрдВ рдЕрдзрд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреВрдВрдЧрд╛ред
рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕реНрдкреЙрдЗрд▓рд░ рдореЗрдВ рд╕реЛрд░реНрд╕ рдХреЛрдб рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред
Gen_pic.py рдлрд╝рд╛рдЗрд▓ рдХреЛрдб рдмреНрд░реЗрдирдбреИрдо рдлрд╝рд╛рдЗрд▓ рдХреЛрдб PyBrain рдХреЗ рд╕рд╛рде рдЗрд╕ рдкрд░рд┐рдЪрд┐рдд рдкрд░ рдЖрдЬ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЬрд▓реНрдж рдорд┐рд▓рддреЗ рд╣реИрдВ!
рдЕрджреНрдпрддрди: рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд
рдЕрдЦрдВрдб рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ред