টেনসরফ্লোতে গ্লোবাল_স্টেপ বলতে কী বোঝায়?


90

এই হল টিউটোরিয়াল কোড TensorFlow ওয়েবসাইট থেকে,

  1. এর global_stepঅর্থ কী বোঝাতে সাহায্য করতে পারে কেউ ?

    আমি টেনসরফ্লো ওয়েবসাইটে লিখেছি যে বিশ্বব্যাপী পদক্ষেপটি গণনা প্রশিক্ষণের পদক্ষেপগুলি ব্যবহৃত হয় , তবে আমি এর সঠিক অর্থটি বেশিরভাগই পাই না।

  2. এছাড়াও, 0 সেট আপ করার সময় কী বোঝায় global_step?

    def training(loss,learning_rate):
        tf.summary.scalar('loss',loss)
        optimizer = tf.train.GradientDescentOptimizer(learning_rate)
        
        # Why 0 as the first parameter of the global_step tf.Variable?
        global_step = tf.Variable(0, name='global_step',trainable=False)

        train_op = optimizer.minimize(loss, global_step=global_step)
    
        return train_op

টেনসরফ্লো ডক গ্লোবাল_স্টেপ অনুসারে : ভেরিয়েবলের পরে একের পর এক ইনক্রিমেন্ট আপডেট করা হয়েছে । তার মানে কি এক আপডেটের পরে global_step1 হবে?

উত্তর:


113

global_stepগ্রাফ দ্বারা দেখা ব্যাচের সংখ্যা বোঝায়। প্রতিবার যখন একটি ব্যাচ সরবরাহ করা হয়, ওজন ক্ষয়কে হ্রাস করে এমন দিকে আপডেট করা হয়। global_stepএখন পর্যন্ত দেখা ব্যাচের সংখ্যাটি কেবল নজর রাখে। এটি যখন minimize()আর্গুমেন্ট তালিকায় পাস করা হয় , তখন ভেরিয়েবলটি এক দ্বারা বাড়ানো হয়। একবার দেখুন optimizer.minimize()

আপনি global_stepব্যবহার করে মান পেতে পারেন tf.train.global_step()। এছাড়াও দরকারী ইউটিলিটি পদ্ধতি tf.train.get_global_stepবা tf.train.get_or_create_global_step

0 এই প্রসঙ্গে গ্লোবাল পদক্ষেপের প্রাথমিক মান।


ধন্যবাদ! আপনার প্রদত্ত লিঙ্কটিতে tf.train.global_step(), এটি global_step_tensor10 এ সেট করা আছে তার অর্থ কি 10 ব্যাচ ইতিমধ্যে গ্রাফ দ্বারা দেখা গেছে?
গ্যাব্রিয়েলচু

9
@ মার্টিয়ানওয়ার্স, আমি এখনও বিশ্বব্যাপী পদক্ষেপ নেওয়ার বিষয়টি পাই না। পাইথন প্রোগ্রাম দ্বারা চালিত ব্যাচের জন্য লুপিং নয়, তাই পাইথন প্রোগ্রামটি সহজেই জানতে পারে যে কতগুলি ব্যাচ হয়েছে। কেন এইরকম কাউন্টার বজায় রাখতে টেনসরফ্লো লাগবে?
ভিক্টরেক্স

4
অপ্টিমাইজারগুলি বিশ্বব্যাপী পদক্ষেপ @ xwk
martianwars 20'17

24
এক্সডব্লিউ এর প্রশ্নের উত্তর দেওয়ার জন্য, আমি মনে করি আপনি যদি 100 টি পুনরাবৃত্তির পরে প্রশিক্ষণ বন্ধ করেন এবং পরের দিন মডেলটি পুনরুদ্ধার করুন এবং আরও 100 পুনরাবৃত্তিগুলি চালান। এখন আপনার গ্লোবাল পদক্ষেপটি 200, তবে দ্বিতীয় রানটিতে 1 থেকে 100 পর্যন্ত স্থানীয় পুনরাবৃত্তি সংখ্যা রয়েছে যা গ্লোবাল পুনরাবৃত্তি পদক্ষেপের বিপরীতে run রানের স্থানীয় is সুতরাং গ্লোবাল স্টেপ মোট পুনরাবৃত্তির রেকর্ড করে, সম্ভবত শিক্ষার হার বা অন্যান্য হাইপারপ্যারামিটার পরিবর্তনের জন্য ব্যবহৃত হয়।
ওয়েই লিউ

6
ওয়ে লিউর উত্তরটি তৈরি করতে, বিশ্বব্যাপী পদক্ষেপগুলি বিতরণকৃত টেনসরফ্লো কাজের অগ্রগতি সন্ধানের জন্যও কার্যকর। শ্রমিকরা একযোগে ব্যাচ দেখতে পাওয়ায়, দেখা হয়েছে মোট ব্যাচের সংখ্যা ট্র্যাক করার জন্য একটি ব্যবস্থা থাকা দরকার। এই উপায় StopAtStepHook উদাহরণস্বরূপ কাজ করে।
মালো মারেক

4

global_step Variableকর্ম জুড়ে প্রশিক্ষণের সময় পদক্ষেপ মোট সংখ্যা ঝুলিতে (প্রতিটি পদক্ষেপ সূচক শুধুমাত্র একটি একক কাজের উপর ঘটতে হবে)।

তৈরি করা একটি টাইমলাইন global_stepআমাদের প্রতিটি কাজ থেকে আলাদা করে পৃথকভাবে বুঝতে সাহায্য করতে পারে যে আমরা গ্র্যান্ড স্কিমে কোথায় আছি। উদাহরণস্বরূপ, ক্ষতি এবং নির্ভুলতার বিরুদ্ধে global_stepটেনসরবোর্ডে প্লট করা যেতে পারে ।


4

আপনাকে নীচে একটি প্রাণবন্ত নমুনা দেখান:

কোড:

train_op = tf.train.GradientDescentOptimizer(learning_rate=LEARNING_RATE).minimize(loss_tensor,global_step=tf.train.create_global_step())
with tf.Session() as sess:
    ...
    tf.logging.log_every_n(tf.logging.INFO,"np.mean(loss_evl)= %f at step %d",100,np.mean(loss_evl),sess.run(tf.train.get_global_step()))

সংশ্লিষ্ট প্রিন্ট

INFO:tensorflow:np.mean(loss_evl)= 1.396970 at step 1
INFO:tensorflow:np.mean(loss_evl)= 1.221397 at step 101
INFO:tensorflow:np.mean(loss_evl)= 1.061688 at step 201

1

নেটওয়ার্ক রয়েছে, যেমন GAN, এর জন্য দুটি (বা আরও) বিভিন্ন পদক্ষেপের প্রয়োজন হতে পারে। ডাব্লুজিএএন স্পেসিফিকেশনের সাথে একটি জিএনএসকে প্রশিক্ষণ দেওয়ার জন্য জেনারেটর জি-তে করা ডিসিভেস্টেটর (বা সমালোচক) ডি-এর পদক্ষেপগুলি বেশি হওয়া দরকার that সেক্ষেত্রে, বিভিন্ন গ্লোবাল_স্টেপস ভেরিয়েবলগুলি ঘোষণা করা কার্যকর।

উদাহরণ: ( G_lossএবং D_lossজেনারেটর এবং বৈষম্যকারীর ক্ষতি)

G_global_step = tf.Variable(0, name='G_global_step', trainable=False)
D_global_step = tf.Variable(0, name='D_global_step', trainable=False)

minimizer = tf.train.RMSPropOptimizer(learning_rate=0.00005)

G_solver = minimizer.minimize(G_loss, var_list=params, global_step=G_global_step)
D_solver = minimizer.minimize(D_loss, var_list=params, global_step=D_global_step)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.