рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░! рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдВрдХрд┐рдд рд╕рдЪрд╛рди рджреНрд╡рд╛рд░рд╛ "TensorFlow Tutorial: 10 рдорд┐рдирдЯ рдкреНрд░реИрдХреНрдЯрд┐рдХрд▓ рдЯреЗрдирд╕рдлрд╝реНрд▓реЛ рд╕рдмрдХ рдлреЙрд░ рдХреНрд╡рд┐рдХ рд▓рд░реНрдирд░реНрд╕" рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдБред
рдпрд╣ TensorFlow рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреА рдмреБрдирд┐рдпрд╛рджреА рд╕рдордЭ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╣реИ рдФрд░ TensorFlow рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЗ рдкрд╛рд╕ TensorFlow рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдЗрд╕реЗ рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкрд╛рда рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рд╣рдо рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдореВрд▓ рдмрд╛рддреЗрдВ рд╕рдордЭрд╛рддреЗ рд╣реИрдВ, рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рд╣рдо рдПрдХ рд░реЗрдЦреАрдп рдкреНрд░рддрд┐рдЧрдорди рдореЙрдбрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред
рднрд╛рдЧ 1. рдЯреЗрдВрд╕реЛрд░рдлреНрд▓реЛ рдореВрд▓ рдмрд╛рддреЗрдВ
TensorFlow рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рдПрдХ рдЧреНрд░рд╛рдл рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИред TensorFlow рдореЗрдВ рдбреЗрдЯрд╛ n- рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ - рджрд╕рд┐рдпреЛрдВред рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛ (рджрд╕рд┐рдпреЛрдВ) рдФрд░ рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдмрдирд╛ рд╣реИред
рдЧреНрд░рд╛рдл рдХреЗ рдиреЛрдбреНрд╕ рдореЗрдВ рдЧрдгрд┐рддреАрдп рд╕рдВрдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВред
рдЧреНрд░рд╛рдлрд╝ рдХреЗ рдХрд┐рдирд╛рд░реЗ рджрд╕рд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмреАрдЪ "рдкреНрд░рд╡рд╛рд╣" рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рдФрд░ рдкрд╣рд▓реВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ TensorFlow рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИред TensorFlow рдореЗрдВ, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЬреЛ рдЖрдк рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛рддреЗ рд╕рдордп, рдЪрд░ рдХрд╛ рдХреЛрдИ рдЕрд░реНрде рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдмрд╛рдж рдореЗрдВ, рдЬрдм рдЖрдкрдиреЗ рдПрдХ рдкреВрд░реНрдг рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛рдпрд╛, рддреЛ рдЖрдк рдЗрд╕реЗ рдПрдХ рд╕рддреНрд░ рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЪрд░ рдХрд┐рд╕реА рднреА рдорд╛рди рдкрд░ рдЪрд▓реЗрдВрдЧреЗред
рдЪрд▓реЛ рдХрд░рдХреЗ рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЬрдЧрд░ рдЪрд▓рд╛рдПрдБ рдФрд░ TensorFlow рдЖрдпрд╛рдд рдХрд░реЗрдВ:
~$ python Python 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> >>>import tensorflow as tf
рдПрдХ рдЧреНрд░рд╛рдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рдСрдкрд░реЗрд╢рди рдПрдХ рд╕рддреНрд░ рдореЗрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЧреНрд░рд╛рдл рдФрд░ рд╕рддреНрд░ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреНрд░рд╛рдл рдФрд░ рдПрдХ рдирд┐рд░реНрдорд╛рдг рд╕реНрдерд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рддреНрд░ рдХреЛ рд╕рдордЭреЛред
1.1ред TensorFlow рдореЗрдВ рд░реЗрдЦрд╛рдВрдХрди
рдПрдХ рдЧреНрд░рд╛рдл TensorFlow рдХрд╛ рдЖрдзрд╛рд░ рд╣реИ, рд╕рднреА рдЧрдгрдирд╛ (рд╕рдВрдЪрд╛рд▓рди), рдЪрд░ рдЧреНрд░рд╛рдл рдкрд░ рд╣реИрдВред рдХреЛрдб рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рд╣реЛрддрд╛ рд╣реИ рд╡рд╣ TensorFlow рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреНрд░рд╛рдлрд╝ рдкрд░ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рдЧреНрд░рд╛рдл рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
graph = tf.get_default_graph()
рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕ рдХреЙрд▓рдо рдореЗрдВ рд╕рднреА рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
graph.get_operations()
рдЖрдкрдХрд╛ рдЧреНрд░рд╛рдл рдЕрдм рдЦрд╛рд▓реА рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХрд╛ рдирд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдирд┐рдореНрди рдХреЛрдб рдЪрд▓рд╛рдПрдБ:
for op in graph.get_operations(): print(op.name)
рдЖрдЙрдЯрдкреБрдЯ рдлрд┐рд░ рд╕реЗ рд░рд┐рдХреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрдирдХреЗ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
1.2ред TensorFlow рдореЗрдВ рд╕рддреНрд░
рдЧреНрд░рд╛рдл рдХреЗрд╡рд▓ рдЧрдгрдирд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдХреЛрдИ рдЪрд░, рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рд╣рдо рд╕рддреНрд░ рдореЗрдВ рдЧреНрд░рд╛рдл рдпрд╛ рдЧреНрд░рд╛рдл рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдирд╣реАрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВред
рдЖрдк рдЗрд╕ рддрд░рд╣ рдПрдХ рд╕рддреНрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
sess=tf.Session() ... your code ... ... your code ... sess.close()
рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдПрдХ рд╕рддреНрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдпрд╛ рдЗрд╕рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ... рдмреНрд▓реЙрдХ рдХреЗ рд░реВрдк рдореЗрдВ , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣:
with tf.Session() as sess: sess.run(f)
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рд╕рддреНрд░ рдХреЛ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
1.3ред TensorFlow рдореЗрдВ рд╕реЗрдВрд╕рд░
TensorFlow рдбреЗрдЯрд╛ рдХреЛ рджрд╕рд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ - рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ numPy рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рдиред
a) рд▓рдЧрд╛рддрд╛рд░ рдРрд╕реЗ рдорд╛рди рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
a=tf.constant(1.0)
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ:
print(a) <tf.Tensor'Const:0' shape=() dtype=float32> print(a) Tensor("Const:0", shape=(), dtype=float32)
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЕрдЬрдЧрд░ред рдЬрдм рддрдХ рдЖрдк рд╕рддреНрд░ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддреЗ рддрдм рдЖрдк рдирд┐рд░рдВрддрд░ рдкреНрд░рд┐рдВрдЯ рдпрд╛ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ:
with tf.Session() as sess: print(sess.run(a))
рдпрд╣ рдХреЛрдб 1.0 рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛
рдЦ) рдЪрд░ рднреА рджрд╕рд┐рдпреЛрдВ рд╣реИрдВ рдЬреЛ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЪрд░ рдХреА рддрд░рд╣ рд╣реИрдВ:
>>>b = tf.Variable(2.0,name="test_var") >>>b <tensorflow.python.ops.variables.Variable object at 0x7f37ebda1990>
рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЪрд░ рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, TensorFlow рдореЗрдВ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рднреА рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди TensorFlow рд╕рднреА рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдПрдХ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
init_op = tf.global_variables_initializer()
рдЪрд░ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдм рдЖрдкрдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдСрдкрд░реЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
with tf.Session() as sess: sess.run(init_op) print(sess.run(b))
рдпрд╣ рдХреЛрдб 2.0 рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛
рдпрджрд┐ рдЖрдк рдЕрдм рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдСрдкрд░реЗрд╢рди рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ
graph = tf.get_default_graph() for op in graph.get_operations(): print(op.name)
рдЖрдкрдХреЛ рдирд┐рдореНрди рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓реЗрдЧрд╛:
Const test_var/initial_value test_var test_var/Assign test_var/read init
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдордиреЗ "рдП" рдХреЛ рдХрд╛рд╕реНрдЯ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдЪрд╛рд░реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдЗрд╕реА рддрд░рд╣, рд╡реЗрд░рд┐рдПрдмрд▓ b рдХреЗ рд▓рд┐рдП, рдХрдИ test_var рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ TensorFlow рдЧреНрд░рд╛рдл рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдЬреИрд╕реЗ test_var / initial_value, test_var / read, рдЖрджрд┐ред рдЖрдк TensorBoard рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ TensorFlow рдЧреНрд░рд╛рдл рдФрд░ рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред ред
рдЧ) рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡реЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рддрдм рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ рдЬрдм рдХреЛрдб рдХреЛ рд╕рддреНрд░ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╖ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░реНрд╕ рдХреЗ рдирд╛рдо рдФрд░ рдЙрдирдХреЗ рдЕрд░реНрде рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
a = tf.placeholder("float") b = tf.placeholder("float") y = tf.multiply(a, b) fd = {a: 2, b: 3} with tf.Session() as sess: print(sess.run(y, fd))
рдпрд╣ рдХреЛрдб 6.0 рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛
1.4ред TensorFlow рдореЗрдВ рдЙрдкрдХрд░рдг
TensorFlow рдореЗрдВ GPU, CPU рдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдЕрдкрдирд╛ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдЙрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЪреБрдирдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЖрдк рдЕрдкрдирд╛ рдХреЛрдб рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕реЛрдЪрдиреЗ рд╡рд╛рд▓реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЯреАрдПрдл рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрдм рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рддреЛ рдпрд╣рд╛рдБ рдПрдХ рдкреВрд░реА рддрд╕реНрд╡реАрд░ рд╣реИ рдХрд┐ TensorFlow рдореЗрдВ рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ:

рднрд╛рдЧ 2. TensorFlow рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде
рдЗрд╕ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рд░реИрдЦрд┐рдХ рдкреНрд░рддрд┐рдЧрдорди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА TensorFlow рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рддрд░рдг рдмрдирд╛рдирд╛:
рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рддрд░рдг рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдорд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП random_normal рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, w 0.01 рдХреЗ рдорд╛рдирдХ рд╡рд┐рдЪрд▓рди рдХреЗ рд╕рд╛рде рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде 784 * 10 рдЖрдпрд╛рдо рдХрд╛ рдПрдХ рдЪрд░ рд╣реИред
w=tf.Variable(tf.random_normal([784, 10], stddev=0.01))
Reduce_mean - рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЗ рдФрд╕рдд рдорд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ
b = tf.Variable([10,20,30,40,50,60],name='t') with tf.Session() as sess: sess.run(tf.initialize_all_variables()) sess.run(tf.reduce_mean(b))
рдпрд╣ рдХреЛрдб 35 рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛
argmax - рдкрд╛рдпрдерди рдореЗрдВ argmax рдХреЗ рд╕рдорд╛рдиред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдЯреЗрдВрд╕рд░ рд╕реЗ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
a=[ [0.1, 0.2, 0.3 ], [20, 2, 3 ] ] b = tf.Variable(a,name='b') with tf.Session() as sess: sess.run(tf.initialize_all_variables()) sess.run(tf.argmax(b,1))
рдПрдХ рд╕рд░рдгреА ([2, 0]) рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдорд╛рди рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рд░реИрдЦрд┐рдХ рдкреНрд░рддрд┐рдЧрдорди рд╕рдорд╕реНрдпрд╛
рд╕рдорд╕реНрдпрд╛ рдХрдерди: рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рд╣реИрдВ, рдЬреЛ рдЙрдирдХреЗ рд╕рд╛рде рдПрдХ рд╕реАрдзреА рд░реЗрдЦрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо 100 рдбреЗрдЯрд╛ рдкреЙрдЗрдВрдЯ рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рдХрд╛ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред
2.1ред рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛рдПрдВ
рдЯреНрд░реЗрдирдПрдХреНрд╕ рдореЗрдВ -1 рдФрд░ 1 рдХреЗ рдмреАрдЪ рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЯреНрд░реЗрди рдореЗрдВ рдЯреНрд░реЗрдирдПрдХреНрд╕ рдХреЗ рдореВрд▓реНрдп рд╕реЗ 3 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдФрд░ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрд░ рд╣реЛрддреЗ рд╣реИрдВ:
import tensorflow as tf import numpy as np trainX = np.linspace(-1, 1, 101) trainY = 3 * trainX + np.random.randn(*trainX.shape) * 0.33
2.2ред рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░
X = tf.placeholder("float") Y = tf.placeholder("float")
2.3ред рдореЛрдбрд▓рд┐рдВрдЧ
рд░реИрдЦрд┐рдХ рдкреНрд░рддрд┐рдЧрдорди рдореЙрдбрд▓ рдХрд╛ рд░реВрдк рд╣реИ
рдпрдореЛрдбреЗрд▓=wтИЧx
- рд╣рдореЗрдВ w рдХреЗ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП w рдХреЛ рд╢реВрдиреНрдп рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбрд▓ рдмрдирд╛рдПрдВред рд╣рдо рд▓рд╛рдЧрдд рд╕рдорд╛рд░реЛрд╣ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
(Y-y__model) ^ 2
(Y-y__model) ^ 2
TensorFlow рдХрдИ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдмрд╛рдж рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдХреА рдЧрдгрдирд╛ рдФрд░ рдЕрджреНрдпрддрди рдХрд░рддреЗ рд╣реИрдВ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рд╛рдЧрдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред 0.01 рдХреА рд╕реАрдЦрдиреЗ рдХреА рдЧрддрд┐ рд╕реЗ рд╣рдорд╛рд░реА рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо GradientDescentOptimizer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд▓рд░реНрдирд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рдЗрд╕ рд▓рд░реНрдирд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХреЛ рд▓реВрдк рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВред
w = tf.Variable(0.0, name="weights") y_model = tf.multiply(X, w) cost = (tf.pow(Y-y_model, 2)) train_op = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
2.4ред рдЯреНрд░реЗрдирд┐рдВрдЧ
рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ, рд╣рдордиреЗ рдХреЗрд╡рд▓ рдПрдХ рдЧреНрд░рд╛рдл рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдХреЛрдИ рдЧрдгрдирд╛ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, TensorFlow рдЪрд░ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдЧреНрд░рд╛рдлрд╝ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рд╕рддреНрд░ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рд╕рднреА рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдСрдкрд░реЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
init = tf.initialize_all_variables() with tf.Session() as sess: sess.run(init) for i in range(100): for (x, y) in zip(trainX, trainY): sess.run(train_op, feed_dict={X: x, Y: y}) print(sess.run(w))
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рд╕рддреНрд░ .run () рдХреЗ рднреАрддрд░ init рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдерд╛ред рдмрд╛рдж рдореЗрдВ рд╣рдо рдЙрд╕реЗ feed_dict рдЦрд┐рд▓рд╛рдХрд░ train_op рдЪрд▓рд╛рддреЗ рд╣реИрдВ ред рдЕрдВрдд рдореЗрдВ, рд╣рдо w (рдлрд┐рд░ рд╕реЗ sess.run ()) рдХреЗ рдорд╛рди рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд▓рдЧрднрдЧ 3 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡реНрдпрд╛рдпрд╛рдо:
рдпрджрд┐ рдЖрдк рдЗрд╕ рдХреЛрдб рдХреЗ рдмрд╛рдж рдПрдХ рдирдпрд╛ рд╕рддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ w рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
with tf.Session() as sess: sess.run(init) print(sess.run(w))
рд╣рд╛рдВ, рдЖрдкрдиреЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭрд╛, 0.0 рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬреИрд╕реЗ рд╣реА рд╣рдордиреЗ рдкрд╣рд▓реЗ рдмрдирд╛рдП рдЧрдП рд╕рддреНрд░ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛, рд╕рднреА рдСрдкрд░реЗрд╢рдиреЛрдВ рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЖрдкрдХреЛ TensorFlow рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рджреЗрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЕрдкрдиреЗ рд╕рд╡рд╛рд▓ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред рдкреВрд░рд╛ рдХреЛрдб рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред