Tensorflow: 포크 ν›„ μ„Έμ…˜μ΄ λ©ˆμ·„μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2016λ…„ 05μ›” 21일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: tensorflow/tensorflow

버전: Python2 w/ GPU용으둜 미리 λΉŒλ“œλ¨(μ§€κΈˆ 막)

λ‹€μŒ μ½”λ“œκ°€ "10.0"을 3번 인쇄할 κ²ƒμœΌλ‘œ μ˜ˆμƒν•˜μ§€λ§Œ session.run이 λͺ¨λ“  λΆ„κΈ°λœ ν”„λ‘œμ„ΈμŠ€μ—μ„œ λ©ˆμ·„μŠ΅λ‹ˆλ‹€.

import tensorflow as tf
import multiprocessing as mp
import os

class Worker(mp.Process):
    def __init__(self, gid):
        self.gid = gid
        super(Worker, self).__init__()

    def run(self):
        G = tf.Graph()
        with G.as_default():
            x = tf.placeholder(tf.float32, shape=[])
            y = x * 2
            sess = tf.Session()
            print sess.run(y, feed_dict={x: 5})

G = tf.Graph()
with G.as_default():
    sess = tf.Session()
    with sess.as_default():
        x = tf.placeholder(tf.float32, shape=[])
        y = x * 2
        print sess.run(y, feed_dict={x: 5})

procs = [Worker(k) for k in range(2)]
for p in procs: p.start()
for p in procs: p.join()

λ§ˆμŠ€ν„° ν”„λ‘œμ„ΈμŠ€μ—μ„œ κ·Έλž˜ν”„/μ„Έμ…˜μ„ μ œκ±°ν•˜λ©΄ λ¬Έμ œκ°€ ν•΄κ²°λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ μ„Έμ…˜μ΄ 있으면 포크λ₯Ό μ‚¬μš©ν•  수 μ—†λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.
λ¬Έμ œλŠ” GPU μœ λ¬΄μ— 관계없이 μ‘΄μž¬ν•©λ‹ˆλ‹€.

μ°Έκ³ : 이 μ½”λ“œλŠ” μ •μƒμ μœΌλ‘œ μ’…λ£Œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ§ˆμŠ€ν„°κ°€ μ’…λ£Œλœ ν›„ λΆ„κΈ°λœ ν”„λ‘œμ„ΈμŠ€λ₯Ό μˆ˜λ™μœΌλ‘œ μ’…λ£Œν•΄μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@mrryν•©λ‹ˆκΉŒ κ±°κΈ° 의미 μƒμ„±ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€ fork μ•ˆμ „ tf.Session 와 tf.Session(args) ?

λͺ¨λ“  3 λŒ“κΈ€

진행 쀑인 μ„Έμ…˜(즉, μΈμˆ˜κ°€ μ—†λŠ” tf.Session() )은 fork() -μ•ˆμ „ν•˜λ„λ‘ μ„€κ³„λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€ 간에 μž₯치 집합을 κ³΅μœ ν•˜λ €λ©΄ ν•œ ν”„λ‘œμ„ΈμŠ€μ—μ„œ tf.train.Server λ₯Ό λ§Œλ“€κ³  λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ—μ„œ ν•΄λ‹Ή μ„œλ²„μ— μ—°κ²°ν•˜λŠ” μ„Έμ…˜( tf.Session("grpc://...") )을 λ§Œλ“­λ‹ˆλ‹€.

@mrryν•©λ‹ˆκΉŒ κ±°κΈ° 의미 μƒμ„±ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€ fork μ•ˆμ „ tf.Session 와 tf.Session(args) ?

@mavenlin
tf.Session 의 ν”„λ‘œν† νƒ€μž…μ€

tf.Session.__init__(target='', graph=None, config=None)

μ—¬κΈ°μ„œ target λŠ” μ—°κ²°ν•  μ‹€ν–‰ 엔진을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 즉, λΆ„μ‚° λͺ¨λ“œμ˜ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ—μ„œ μž‘μ—… μ„Έμ…˜μ„ μ‹€ν–‰ν•΄μ•Ό ν•˜λ©° μΈμˆ˜κ°€ μžˆλŠ” tf.Session λŠ” μ—¬μ „νžˆ fork() -safeν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μŠ¬ν”ˆ μ†Œμ‹.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰