рд╣рд╛рд▓рд╛рдВрдХрд┐ TF 2.0 рдореЗрдВ Eager_execution рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИ, рдореБрдЭреЗ .numpy() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓ рд░рд╣реА рд╣реИрдВ
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ рдЯреАрдПрдл 1.0 рдореЗрдВ рд╕рдВрдЧрддрддрд╛ рдореЛрдб рдореЗрдВ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рд╡рд┐рд╕реНрддрд╛рд░ = [[[ 0, 0, 0],
[4, 71, 141],
[0, 0, 0]],
[[ 83, 25, 85],
[ 90, 190, 143],
[ 4, 141, 49]],
[[ 0, 0, 0],
[ 4, 71, 49],
[ 0, 0, 0]]]
рд╡рд┐рд╕реНрддрд╛рд░ = tf.convert_to_tensor(expt)
рдЕрдкреЗрдХреНрд╖рд┐рдд_рдорд╛рди = expt.numpy ()
рд╡рд┐рд╢реЗрд╖рддрд╛ рддреНрд░реБрдЯрд┐: 'рдЯреЗрдиреНрд╕рд░' рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'рд╕реБрдиреНрди'
TENSORFLOW 2.0 рдХрд╛ CPU рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдгред
@ Mainak431 рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛?
рд╣рд╛рдВред
рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рдерд╛?
.Numpy рдХреЗрд╡рд▓ рдЙрддреНрд╕реБрдХ рдореЛрдб рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдпрджрд┐ рдЖрдк рдЧреНрд░рд╛рдлрд╝ рдореЛрдб рдореЗрдВ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЙрддреНрд╕реБрдХ рдореЛрдб рдореЗрдВ рд╣реИрдВред рдХрд░реЛ, tf.eagerly ()ред рдпрд╣ рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЧреНрд░рд╛рдлрд╝ рдореЛрдб рдореЗрдВ, рдЖрдкрдХреЛ numpy array рдореЗрдВ рдЯреЗрдВрд╕рд░ рдХрд╛ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рддреНрд░ рдореЗрдВ eval рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
@ рдореЗрдирдХ431
рдореЙрдбреНрдпреВрд▓ 'рдЯреЗрдиреНрд╕рд░рдлрд╝реНрд▓реЛ' рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ'
рдореЙрдбреНрдпреВрд▓ 'tensorflow.compat.v1' рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ'
рдореИрдВ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ tensorflow-gpu==2.0.0-alpha0
.numpy() рдореЗрд░реЗ рдПрдХ рдЯреЗрдВрд╕рд░ рдкрд░ 'рдЯреЗрдиреНрд╕рд░' рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'numpy'
tf.eagerly () рдореЙрдбреНрдпреВрд▓ рджреЗрддрд╛ рд╣реИ 'рдЯреЗрдиреНрд╕рд░рдлрд╝реНрд▓реЛ' рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ'
tf.executing_eagerly () рдХреЗ рдмрдЬрд╛рдп tf.eagerly () рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЙрддреНрд╕реБрдХ рдореЛрдб рдореЗрдВ рд╣реВрдВ
рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрд╛ рд╣реИ?
рдпрд╣рд╛рдБ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ ... рдореИрдВ рдЙрддреНрд╕реБрдХ рдореЛрдб рдореЗрдВ рдПрдХ рдХреЗрд░рд╕ рдореЙрдбрд▓ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдПрдХ рдЯреЗрдВрд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИ, рдПрдХ рдИрдЧрд░рдЯреЗрдиреНрд╕рд░ рдирд╣реАрдВ, рдЬреЛ рдУрдкрдирдПрдЖрдИ рдЬрд┐рдо рдХреЗ рд╕рд╛рде рдореБрджреНрджреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ
рдЗрд╕ tf.enable_eager_execution() рдХреЛ рдЪрд▓рд╛рдПрдБ рдФрд░ рдлрд┐рд░ рдЬрдм рдЖрдк tf.executing_eagerly() рдХреЛ рдЖрдЬрд╝рдорд╛рдПрдБ рддреЛ рдЗрд╕реЗ рдЯреНрд░реВ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрд╛рдж рдЖрдк рдореВрд▓реНрдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ.numpy() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
@ рдЖрдХрд╛рд╢ рдирд╛рдЧрд░рд╛рдЬ рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдореБрджреНрджрд╛ рджрд╛рдпрд░ рдХрд┐рдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХреЛрдб рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ (рдФрд░ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЯреАрдПрдл 2.0 рд╣реИ), рд▓реЗрдХрд┐рди рдореБрдЭреЗ "рд▓рд╛рдкрддрд╛ numpy" рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░реЗрдВрдЧреЗ? https://github.com/tensorflow/tensorflow/issues/32842
рдзрдиреНрдпрд╡рд╛рдж!
рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореИрдВ рдПрдХ @tf.function рдХреЗ рдЕрдВрджрд░ .numpy() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ tf.function рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ @tf.function рдбреЗрдХреЛрд░реЗрдЯрд░ .numpy() рдХрд╛рдо рдХреЛ рд╣рдЯрд╛ рджреВрдВред
рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореИрдВ рдПрдХ @tf.function рдХреЗ рдЕрдВрджрд░ .numpy() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ tf.function рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ @tf.function рдбреЗрдХреЛрд░реЗрдЯрд░ .numpy() рдХрд╛рдо рдХреЛ рд╣рдЯрд╛ рджреВрдВред
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, @ tf.function рдиреЗ рдкреВрд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЧреНрд░рд╛рдлрд╝ рдореЛрдб рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛
рдЗрд╕ рд╕реВрддреНрд░ рдореЗрдВ рдПрдХ рднреА рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ =.=
рдореЗрд░реЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдбреЗрдХреЛрд░реЗрдЯрд░ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди .numpy() рдЕрднреА рднреА рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдкреЛрд╕реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИред рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рд╣реИ?
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ tf.compat.v1.enable_eager_execution() рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╕рд╛рдлрд╝ рд╣реЛ рдЧрдИ рд╣реИ (рдкрд┐рдЫрд▓реЗ рдкреЛрд╕реНрдЯрд░ рдХреЗ рд╕рдорд╛рди рд╣реА, рд▓реЗрдХрд┐рди рдпрд╣ рдЯреАрдПрдл 2.0 рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) ...
рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ TF 2.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореЗрд░реЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдбреЗрдХреЛрд░реЗрдЯрд░ рдирд╣реАрдВ рд╣реИ, tf.eagerly () рд╕рд╣реА рд╣реИ рдФрд░ рдореБрдЭреЗ рдЕрднреА рднреА рд╡рд╣реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд┐рд▓рддреА рд╣реИ: 'рдЯреЗрдиреНрд╕рд░' рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'numpy'ред
рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ред
рдореИрдВрдиреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдореЗрд░реЗ рдХрд╕реНрдЯрдо рд▓реЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдбреЗрдХреЛрд░реЗрдЯрд░ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдорд╛рдЗрдХрд▓ рдХреЗ рд╕рдорд╛рдзрд╛рди рджреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ: рд╡рд┐рд╢реЗрд╖рддрд╛ рддреНрд░реБрдЯрд┐: 'рдЯреЗрдиреНрд╕рд░' рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'numpy'
рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЗрд╡рд▓ рддрдм рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬрдм рдореИрдВ рдПрдХ рдореЙрдбрд▓ рдлрд┐рдЯ рдХреЗ рджреМрд░рд╛рди рдЯреЗрдВрд╕рд░ рдХреЛ рд╕реБрдиреНрди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдХрд╛рд░ рдХрд╛ рдореБрджреНрджрд╛ рд▓рдЧрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдЯреЗрдВрд╕рд░
tf.рдЯреЗрдиреНрд╕рд░([[1 3] [0 4]], рдЖрдХрд╛рд░=(2, 2), dtype=int64)
.numpy() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдХрд┐рд╕реА рд╡рд░реНрдЧреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдореАрдЯреНрд░рд┐рдХ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ y_true.numpy() рдФрд░ y_pred.numpy() рджреЛрдиреЛрдВ рдмрдврд╝ рдЬрд╛рддреЗ рд╣реИрдВред
рд╡рд┐рд╢реЗрд╖рддрд╛ рддреНрд░реБрдЯрд┐: 'рдЯреЗрдиреНрд╕рд░' рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'рд╕реБрдиреНрди'ред
рдпрд╣рд╛рдБ рджреЛрдиреЛрдВ y рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
y_true:
рдкреНрд░рд┐рдВрдЯ (y_true): рдЯреЗрдВрд╕рд░ ("рдШрдирд╛_ рд▓рдХреНрд╖реНрдп: 0 ", рдЖрдХрд╛рд░ = (рдХреЛрдИ рдирд╣реАрдВ, рдХреЛрдИ рдирд╣реАрдВ, рдХреЛрдИ рдирд╣реАрдВ), рдбреАрдЯрд╛рдЗрдк = рдлреНрд▓реЛрдЯ 32)
рдкреНрд░рд┐рдВрдЯ (рдкреНрд░рдХрд╛рд░ (y_true)):
y_pred:
рдкреНрд░рд┐рдВрдЯ (y_pred): рдЯреЗрдВрд╕рд░ ("рдШрдирд╛ / рдкрд╣рдЪрд╛рди: 0 ", рдЖрдХрд╛рд░ = (рдХреЛрдИ рдирд╣реАрдВ, рдХреЛрдИ рдирд╣реАрдВ, 6), dtype = рдлреНрд▓реЛрдЯ 32)
рдкреНрд░рд┐рдВрдЯ (рдкреНрд░рдХрд╛рд░ (рдкреВрд░реНрд╡)):
@renatomello рдореБрдЭреЗ рдЖрдкрдХреЗ рдЬреИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдирдпрд╛ рдЕрдВрдХ рдЦреЛрд▓рд╛ рд╣реИ: #35393ред
рдХрд╕реНрдЯрдо рдореАрдЯреНрд░рд┐рдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп @renatomello рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреЛрдИ рдЙрдкрд╛рдп рдорд┐рд▓рд╛?
рдХрд╕реНрдЯрдо рдореАрдЯреНрд░рд┐рдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп @renatomello рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреЛрдИ рдЙрдкрд╛рдп рдорд┐рд▓рд╛?
рдирд╣реАрдВ рдореИрдиреЗ рдирд╣реАрдВред рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рдЯреАрдПрдл/рдХреЗрд░рд╕ рдмреИрдХрдПрдВрдб рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЕрдиреНрдпрдерд╛, рдореБрдЭреЗ рдХреЗрд╡рд▓ рд╕реНрд╡рдпрдВ рдПрдХ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдбреЗрдЯрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рднреАрддрд░ рд░реЗрдЧреЗрдХреНрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЕрдЬрдЧрд░ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП tf.py_function
рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдбреЙрдХреНрд╕ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдереНрд░реЗрдб (рдиреЛрдЯ tf.py_func()
рдЕрдм tf.py_function()
)
рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдХреЛрдб рдмрджрд▓ рджрд┐рдпрд╛
data = fnames.map(process_path)
рдкреНрд░рддрд┐
data = fnames.map(lambda x: tf.py_function(process_path, [x], [tf.string]))
рдХреЛрдб рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рддред
TF2.1 рдореЗрдВ TextVectorization
рдкрд░рдд рдХреЛ рдПрдХ рдмрд╣реБрдд рд╣реА рдХрд╕реНрдЯрдо split
рд╕рд╛рде рдЖрдЬрд╝рдорд╛рддреЗ рд╕рдордп рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ dynamic=True
рдореЗрдВ TextVectorization
рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдкрд╛рд╕ рд╣реЛрдирд╛ рдерд╛ред
рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЗрд╡рд▓ рддрдм рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬрдм рдореИрдВ рдПрдХ рдореЙрдбрд▓ рдлрд┐рдЯ рдХреЗ рджреМрд░рд╛рди рдЯреЗрдВрд╕рд░ рдХреЛ рд╕реБрдиреНрди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдХрд╛рд░ рдХрд╛ рдореБрджреНрджрд╛ рд▓рдЧрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдЯреЗрдВрд╕рд░
tf.рдЯреЗрдиреНрд╕рд░([[1 3] [0 4]], рдЖрдХрд╛рд░=(2, 2), dtype=int64)
.numpy() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдХрд┐рд╕реА рд╡рд░реНрдЧреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдореАрдЯреНрд░рд┐рдХ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ y_true.numpy() рдФрд░ y_pred.numpy() рджреЛрдиреЛрдВ рдмрдврд╝ рдЬрд╛рддреЗ рд╣реИрдВред
рд╡рд┐рд╢реЗрд╖рддрд╛ рддреНрд░реБрдЯрд┐: 'рдЯреЗрдиреНрд╕рд░' рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'рд╕реБрдиреНрди'ред
рдпрд╣рд╛рдБ рджреЛрдиреЛрдВ y рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
y_true:
рдкреНрд░рд┐рдВрдЯ (y_true): рдЯреЗрдВрд╕рд░ ("рдШрдирд╛_ рд▓рдХреНрд╖реНрдп: 0 ", рдЖрдХрд╛рд░ = (рдХреЛрдИ рдирд╣реАрдВ, рдХреЛрдИ рдирд╣реАрдВ, рдХреЛрдИ рдирд╣реАрдВ), рдбреАрдЯрд╛рдЗрдк = рдлреНрд▓реЛрдЯ 32)
рдкреНрд░рд┐рдВрдЯ (рдкреНрд░рдХрд╛рд░ (y_true)):y_pred:
рдкреНрд░рд┐рдВрдЯ (y_pred): рдЯреЗрдВрд╕рд░ ("рдШрдирд╛ / рдкрд╣рдЪрд╛рди: 0 ", рдЖрдХрд╛рд░ = (рдХреЛрдИ рдирд╣реАрдВ, рдХреЛрдИ рдирд╣реАрдВ, 6), dtype = рдлреНрд▓реЛрдЯ 32)
рдкреНрд░рд┐рдВрдЯ (рдкреНрд░рдХрд╛рд░ (рдкреВрд░реНрд╡)):
рдХрд╛рд░рдг рдирд╣реАрдВ рдкрддрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛
experimental_run_tf_function=False
рдореЗрд░реЗ рдореЙрдбрд▓ рдХреЗ рд╕рдВрдХрд▓рди рд╕рдорд╛рд░реЛрд╣ рдореЗрдВред
рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЗрд╡рд▓ рддрдм рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬрдм рдореИрдВ рдПрдХ рдореЙрдбрд▓ рдлрд┐рдЯ рдХреЗ рджреМрд░рд╛рди рдЯреЗрдВрд╕рд░ рдХреЛ рд╕реБрдиреНрди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдХрд╛рд░ рдХрд╛ рдореБрджреНрджрд╛ рд▓рдЧрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдЯреЗрдВрд╕рд░
tf.рдЯреЗрдиреНрд╕рд░([[1 3] [0 4]], рдЖрдХрд╛рд░=(2, 2), dtype=int64)
.numpy() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдХрд┐рд╕реА рд╡рд░реНрдЧреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдореАрдЯреНрд░рд┐рдХ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ y_true.numpy() рдФрд░ y_pred.numpy() рджреЛрдиреЛрдВ рдмрдврд╝ рдЬрд╛рддреЗ рд╣реИрдВред
рд╡рд┐рд╢реЗрд╖рддрд╛ рддреНрд░реБрдЯрд┐: 'рдЯреЗрдиреНрд╕рд░' рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'рд╕реБрдиреНрди'ред
рдпрд╣рд╛рдБ рджреЛрдиреЛрдВ y рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
y_true:
рдкреНрд░рд┐рдВрдЯ (y_true): рдЯреЗрдВрд╕рд░ ("рдШрдирд╛_ рд▓рдХреНрд╖реНрдп: 0 ", рдЖрдХрд╛рд░ = (рдХреЛрдИ рдирд╣реАрдВ, рдХреЛрдИ рдирд╣реАрдВ, рдХреЛрдИ рдирд╣реАрдВ), рдбреАрдЯрд╛рдЗрдк = рдлреНрд▓реЛрдЯ 32)
рдкреНрд░рд┐рдВрдЯ (рдкреНрд░рдХрд╛рд░ (y_true)):
y_pred:
рдкреНрд░рд┐рдВрдЯ (y_pred): рдЯреЗрдВрд╕рд░ ("рдШрдирд╛ / рдкрд╣рдЪрд╛рди: 0 ", рдЖрдХрд╛рд░ = (рдХреЛрдИ рдирд╣реАрдВ, рдХреЛрдИ рдирд╣реАрдВ, 6), dtype = рдлреНрд▓реЛрдЯ 32)
рдкреНрд░рд┐рдВрдЯ (рдкреНрд░рдХрд╛рд░ (рдкреВрд░реНрд╡)):рдХрд╛рд░рдг рдирд╣реАрдВ рдкрддрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛
experimental_run_tf_function=False
рдореЗрд░реЗ рдореЙрдбрд▓ рдХреЗ рд╕рдВрдХрд▓рди рд╕рдорд╛рд░реЛрд╣ рдореЗрдВред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛
TF2.1 рдореЗрдВ
TextVectorization
рдкрд░рдд рдХреЛ рдПрдХ рдмрд╣реБрдд рд╣реА рдХрд╕реНрдЯрдоsplit
рд╕рд╛рде рдЖрдЬрд╝рдорд╛рддреЗ рд╕рдордп рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐dynamic=True
рдореЗрдВTextVectorization
рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдкрд╛рд╕ рд╣реЛрдирд╛ рдерд╛ред
рдЖрдкрдиреЗ рдмрд┐рд▓реНрдХреБрд▓ рдРрд╕рд╛ рдХреИрд╕реЗ рдХрд┐рдпрд╛?
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╕рддреНрд░ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╕рддреНрд░ = tfред рд╕рддреНрд░ ()
рдлрд┐рд░..рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
рдЕрдкреЗрдХреНрд╖рд┐рдд_рдорд╛рди = expt.eval (рд╕рддреНрд░ = рд╕рддреНрд░)
рдкрд░рд┐рдгрд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдкреНрд░рд┐рдВрдЯ (рдЕрдкреЗрдХреНрд╖рд┐рдд_рдорд╛рди)
рдЖрдЙрдЯ [41]:
рд╕рд░рдгреА ([[[ 0, 0, 0],
[4, 71, 141],
[0, 0, 0]]])
рдзрдиреНрдпрд╡рд╛рдж
TF2.1 рдореЗрдВ
TextVectorization
рдкрд░рдд рдХреЛ рдПрдХ рдмрд╣реБрдд рд╣реА рдХрд╕реНрдЯрдоsplit
рд╕рд╛рде рдЖрдЬрд╝рдорд╛рддреЗ рд╕рдордп рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐dynamic=True
рдореЗрдВTextVectorization
рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдкрд╛рд╕ рд╣реЛрдирд╛ рдерд╛редрдЖрдкрдиреЗ рдмрд┐рд▓реНрдХреБрд▓ рдРрд╕рд╛ рдХреИрд╕реЗ рдХрд┐рдпрд╛?
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВред рдореИрдВ рдЕрднреА рднреА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ ML/TF рд╕реАрдЦ рд░рд╣рд╛ рд╣реВрдБ, рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдирд╛ рдЧрд▓рдд рд╣реЛред рдпрд╣ рд╕рдм рдХрд╛рд▓рд╛ рдЬрд╛рджреВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ 'рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛'ред
vectorize_layer = tf.keras.layers.experimental.preprocessing.TextVectorization(
standardize=tf_custom_standardize,
split=tf_custom_split,
max_tokens=len(vocab)+1,
output_mode='int',
dynamic=True
)
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдореЗрд░реЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдореИрдВ @tf.function рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдм рдореИрдВ рдЬрд┐рд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ np.array(yourtensor.to_list())
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдореЗрд░реЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдореИрдВ @tf.function рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдм рдореИрдВ рдЬрд┐рд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ np.array(yourtensor.to_list())
рдореБрдЭреЗ рдпрд╣реА рдорд┐рд▓рддрд╛ рд╣реИ
AttributeError: 'Tensor' object has no attribute 'to_list'
рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдореЗрдВ рдХреЛрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЬрдм рдЯреЗрдВрд╕рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЙрддреНрд╕реБрдХ рдореЛрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ tensor(tensorflow.python.framework.ops.EagerTensor), рд╣рдо tesnsorObj.numpy() рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдпрд╣ рд╡рд┐рдзрд┐ tensorflow/python/framework/ops.py . рдореЗрдВ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИ
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЯреЗрдВрд╕рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрдВрд╕рд░ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП tensorflow.python.framework.ops.Tensor рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рдХреЛрдИ numpy() рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб tensorflow/python/framework/ops.py рдореЗрдВ рднреА рд╣реИред
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/framework/ops.py
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ @ tf.function рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╕рднреА рдЯреЗрдВрд╕рд░ рдСрдмреНрдЬреЗрдХреНрдЯ tensorObj.numpy() рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЙрддреНрд╕реБрдХ рд░рдирд┐рдВрдЧ рдореЛрдб TF2.0 рдореЗрдВ рд▓рдЪреАрд▓рд╛рдкрди рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛ рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдореЗрдВ рдХреЛрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЬрдм рдЯреЗрдВрд╕рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЙрддреНрд╕реБрдХ рдореЛрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ tensor(tensorflow.python.framework.ops.EagerTensor), рд╣рдо tesnsorObj.numpy() рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдпрд╣ рд╡рд┐рдзрд┐ tensorflow/python/framework/ops.py . рдореЗрдВ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИ
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЯреЗрдВрд╕рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрдВрд╕рд░ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП tensorflow.python.framework.ops.Tensor рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рдХреЛрдИ numpy() рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб tensorflow/python/framework/ops.py рдореЗрдВ рднреА рд╣реИред
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/framework/ops.pyрдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ @ tf.function рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╕рднреА рдЯреЗрдВрд╕рд░ рдСрдмреНрдЬреЗрдХреНрдЯ tensorObj.numpy() рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЙрддреНрд╕реБрдХ рд░рдирд┐рдВрдЧ рдореЛрдб TF2.0 рдореЗрдВ рд▓рдЪреАрд▓рд╛рдкрди рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛ рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рд╡рд┐рд╕реНрддреГрдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕реНрдерд┐рд░ 2.1.0 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдпрд╣ рдореБрдЭреЗ #38038 рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЗрд╕реЗ tf-nightly 2.2.0 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
@renatomello рдореИрдВ TF рдкрд░ рдПрдХ рдкреВрд░реНрдг рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рд╣реВрдБред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗред
рдореИрдВ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ_run_functions_eagerly(True) рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рддреНрд░реБрдЯрд┐ AttributeError: 'Tensor' object has no attribute 'numpy'
рд╣рд▓ рдХрд░рддрд╛ рд╣реВрдВред
рдореИрдВ рдЯреАрдПрдл рд╡реЗрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред 2.1 (рд╡рд┐рд╕реНрддреГрдд рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреЗрдВ)ред рдореИрдВ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
import sys
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
import numpy as np
counter=0
class MyDense(layers.Dense):
def __init__(self, units, activation,input_shape):
super().__init__(units=units, activation=activation,input_shape=input_shape)
def call(self, inputs):
global counter
counter += 1
print('\n{}. inputs.numpy()='.format(counter))
if hasattr(inputs,'numpy'):
print('{}'.format(inputs.numpy()))
else:
print('not available.')
return super().call(inputs)
def test(run_eagerly):
print('\n*** *** *** test(run_eagerly={})'.format(run_eagerly))
tf.config.experimental_run_functions_eagerly(run_eagerly)
dim0=256
dim1=24
train = np.arange(dim0*dim1).reshape(dim0,dim1)
label = np.ones(dim0)
model = tf.keras.Sequential()
model.add(MyDense(10,activation='softmax',input_shape=(dim1,)))
model.compile(optimizer=tf.keras.optimizers.SGD(),
loss=tf.keras.losses.SparseCategoricalCrossentropy())
model.fit(train,
label,
batch_size=dim0,
epochs=1)
print("Python version")
print (sys.version)
print("TensorFlow version")
print(tf.__version__)
print('\n\n')
test(False)
test(True)
рдореИрдВ рд╕рдВрдкрд╛рджрдХ рд╕реНрдкрд╛рдЗрдбрд░ рдХреЗ рдХрдВрд╕реЛрд▓ (рд╕реНрдкрд╛рдЗрдбрд░ рд╕рдВрд╕реНрдХрд░рдг 4.0.1) рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рд╕рдВрдмрдВрдзрд┐рдд рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ (
Python version
3.7.6 (default, Jan 8 2020, 19:59:22)
[GCC 7.3.0]
TensorFlow version
2.1.0
*** *** *** test(run_eagerly=False)
1. inputs.numpy()=
not available.
Train on 256 samples
2. inputs.numpy()=
not available.
3. inputs.numpy()=
not available.
256/256 [==============================] - 0s 899us/sample - loss: 6344.8682
*** *** *** test(run_eagerly=True)
4. inputs.numpy()=
not available.
Train on 256 samples
5. inputs.numpy()=
[[2328. 2329. 2330. ... 2349. 2350. 2351.]
[5280. 5281. 5282. ... 5301. 5302. 5303.]
[2208. 2209. 2210. ... 2229. 2230. 2231.]
...
[5160. 5161. 5162. ... 5181. 5182. 5183.]
[ 840. 841. 842. ... 861. 862. 863.]
[6048. 6049. 6050. ... 6069. 6070. 6071.]]
256/256 [==============================] - 0s 132us/sample - loss: 16.1181
рдЕрдм, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рджреЗрдЦреЗрдВ test(run_eagerly=False)
: рддреАрдиреЛрдВ MyDense.call() рдХреЙрд▓ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ input.numpy() рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ (рд╕рд╛рдЗрдб рдиреЛрдЯ: рдЬрдм рдореИрдВ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рддреЛ рдкрд╣рд▓реЗ рджреЛ MyDense.call () рдХреЙрд▓ рдХреЗрд╡рд▓ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╕рд╛рд░реНрдердХ рд╣реИ, рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ input.numpy() рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред) рддреЛ, рдпрд╣ рд╕рд╛рд░реНрдердХ рд╣реИред
рдиреАрдЪреЗ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рджреЗрдЦреЗрдВ test(run_eagerly=True)
: рдкрд╛рдВрдЪрд╡реЗрдВ MyDense.call() рдореЗрдВ input.numpy() рдЙрдкрд▓рдмреНрдз рд╣реИред рддреЛ рдпрд╣ рднреА рдЕрд░реНрдердкреВрд░реНрдг рд╣реИред рдФрд░ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореИрдВ рдПрдХ @tf.function рдХреЗ рдЕрдВрджрд░ .numpy() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ tf.function рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ @tf.function рдбреЗрдХреЛрд░реЗрдЯрд░ .numpy() рдХрд╛рдо рдХреЛ рд╣рдЯрд╛ рджреВрдВред
рдЗрд╕рд╕реЗ рдореЗрд░рд╛ рдХрд╛рдо рдмрдирддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рднреА рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ 2.2.0-рдЖрд░рд╕реА2 рдкрд░ рд╣реВрдВред
рдпрд╣ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрддреНрд╕реБрдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдЖрддреА рд╣реИ рдЬрдм рдореИрдВрдиреЗ keras.backend.get_value()
:
if context.executing_eagerly() or isinstance(x, ops.EagerTensor):
return x.numpy()
рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрд┐рд╕реА рдореЙрдбрд▓ рдкрд░ рдлрд╝рд┐рдЯ рдлрд╝рдВрдХреНрд╢рди рдЪрд▓рд╛рддреЗ рд╕рдордп рдЙрддреНрд╕реБрдХрддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд╖реНрдкрд╛рджрди рдЕрдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк : model.run_eagerly = True
рдХреЛ model.fit рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП Tensorflow 2.2 . рдкрд░ рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
model.compile(..., run_eagerly=True) рдиреЗ рдХрд╕реНрдЯрдо рдореАрдЯреНрд░рд┐рдХ рдмрдирд╛рддреЗ рд╕рдордп рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛
рдХреЗрд░рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рднреА рдРрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реБрдИ рдереАред
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рд╕реЗ рджреВрд╕рд░реЗ рдХреЛ рдорджрдж рдорд┐рд▓реЗрдЧреА, рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдиреЗ рдореЗрд░реА рдорджрдж рдХреА:
рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛:
рдореЙрдбрд▓ = рдЕрдиреБрдХреНрд░рдорд┐рдХ () рдкрд╣рд▓реЗ рдФрд░ рдЙрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛
рдореЙрдбрд▓ = tf.keras.рдЕрдиреБрдХреНрд░рдорд┐рдХ ()
рдФрд░ рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред
@ Mainak431 рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?
рдХреЗрд░рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рднреА рдРрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реБрдИ рдереАред
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рд╕реЗ рджреВрд╕рд░реЗ рдХреЛ рдорджрдж рдорд┐рд▓реЗрдЧреА, рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдиреЗ рдореЗрд░реА рдорджрдж рдХреА:
рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛:
рдореЙрдбрд▓ = рдЕрдиреБрдХреНрд░рдорд┐рдХ () рдкрд╣рд▓реЗ рдФрд░ рдЙрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛
рдореЙрдбрд▓ = tf.keras.рдЕрдиреБрдХреНрд░рдорд┐рдХ ()
рдФрд░ рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдерд╛, рдореИрдВрдиреЗ рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬреЛ рд╕реАрдзреЗ рдХреЗрд░рд╕ рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рди рдХрд┐ tensorflow.keras рдкрд░рддреЛрдВ рдЖрджрд┐ред рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рддреНрд░реБрдЯрд┐ рд╣рд▓ рд╣реЛ рдЧрдИред
@ рдмреНрд▓реБрдмреНрдмрд╛ рд╡рд╣реА рдпрд╣рд╛рдБред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдереА рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреА рдереАред
рдЕрдЧрд░ рдореИрдВ рдЯреЗрдВрд╕рд░ рдореЗрдВ рдорд╛рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ tf.placeholder
рд╕рдВрдЧрддрддрд╛ рдХреЗ рдХрд╛рд░рдг рдЙрддреНрд╕реБрдХ рдореЛрдб рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдХреИрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореИрдВрдиреЗ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ tf.placeholder
рдмрд┐рдирд╛ рдкрд░рдд рдХреЗ рдмреАрдЪ tf.enable_eager_execution
рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ ValueError: tf.enable_eager_execution must be called at program startup.
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛рдо рдХрд┐рдпрд╛:
def parse_str(str_tensor):
raw_string = str_tensor.numpy().decode("utf-8")
# play with raw string
raw_string = 'AAA'+raw_string
return raw_string
рдХреЙрд▓ рдкрд╛рд░реНрд╕ рдлрд╝рдВрдХреНрд╢рди:
def tf_pre_processing(row):
return tf.py_function(parse_str, [row['context']], [tf.string])
train = t.map(tf_pre_processing).batch(1).take(1)
list(train)
@ Mainak431 рдореВрд▓ рдХреЛрдб рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣рд╛рдБ рд╕рд╛рд░ рд╣реИред
@ tu1258 рдЖрдкрдХреЛ рдЙрддреНрд╕реБрдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдмрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд tf.compat.v1.placeholder
рдХреЗ рдмрдЬрд╛рдп tf.placeholder
ред рдпрджрд┐ рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред
рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдФрд░ рдкреНрд░рд╢реНрди рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж!
рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореИрдВ рдПрдХ @tf.function рдХреЗ рдЕрдВрджрд░ .numpy() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ tf.function рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ @tf.function рдбреЗрдХреЛрд░реЗрдЯрд░ .numpy() рдХрд╛рдо рдХреЛ рд╣рдЯрд╛ рджреВрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Tensorflow2.x рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдк рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ
tf.config.run_functions_eagerly
рдЬрд┐рд╕ рд╕реНрдерд╛рди рдкрд░ рдЖрдк tf.function рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдЙрд╕реЗ рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ tf.function рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдореЗрдВ рдирдпрд╛ рд╣реВрдБ рд▓реЗрдХрд┐рди рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ (рдЬреБрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдкрд░) рдХреЗ рдмрд╛рдж https://www.tensorflow.org/tutorials/quickstart/beginner?hl=en рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рджреЗрдЧрд╛
predictions = model(x_train[:1]).numpy()
Tensor object has no attribute 'numpy'
@louisnot рдореИрдВ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдХреГрдкрдпрд╛ рд╕рд╛рд░ рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВ ред рдзрдиреНрдпрд╡рд╛рдж!
рдпрджрд┐ рдЖрдк рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдПрдХ рд╕рд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!
рдореБрдЭреЗ рд╕рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИред
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ tf-nightly
рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдЧрд░ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдмреЗрдЭрд┐рдЭрдХ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВред рдзрдиреНрдпрд╡рд╛рдж!
@bhupendrathore рдХреНрдпрд╛ рдЖрдк рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!
рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓рддреА рд╣реИ ,; рдЬрдм рдореИрдВ рдЗрд╕реЗ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ pip install tf-nightly
рд╕рд╛рде рдареАрдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ:
ERROR: Could not find a version that satisfies the requirement tf-nightly (from versions: none)
ERROR: No matching distribution found for tf-nightly
@jvishnuvardhan
@liangzelang рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдЖрдкрдиреЗ рдПрдХ рдФрд░ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд╣рд▓ рдХрд░реЗрдВрдЧреЗред рдзрдиреНрдпрд╡рд╛рдж
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореИрдВ рдПрдХ @tf.function рдХреЗ рдЕрдВрджрд░ .numpy() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ tf.function рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ @tf.function рдбреЗрдХреЛрд░реЗрдЯрд░ .numpy() рдХрд╛рдо рдХреЛ рд╣рдЯрд╛ рджреВрдВред