Tensorflow: TF 2.0 'рдЯреЗрдиреНрд╕рд░' рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ .numpy() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ 'numpy' рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрддреНрд╕реБрдХ рдирд┐рд╖реНрдкрд╛рджрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдЕрдкреНрд░реИрд▓ 2019  ┬╖  54рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: tensorflow/tensorflow

рд╣рд╛рд▓рд╛рдВрдХрд┐ 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 рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдгред

Fixed in Nightly TF 2.0 core awaiting response support

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореИрдВ рдПрдХ @tf.function рдХреЗ рдЕрдВрджрд░ .numpy() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ tf.function рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ @tf.function рдбреЗрдХреЛрд░реЗрдЯрд░ .numpy() рдХрд╛рдо рдХреЛ рд╣рдЯрд╛ рджреВрдВред

рд╕рднреА 54 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@ 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 рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдЖрдкрдиреЗ рдПрдХ рдФрд░ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд╣рд▓ рдХрд░реЗрдВрдЧреЗред рдзрдиреНрдпрд╡рд╛рдж

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

3rduncle picture 3rduncle  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Billy4195 picture Billy4195  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

RahulKulhari picture RahulKulhari  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

NHDaly picture NHDaly  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

myme5261314 picture myme5261314  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ