簡體   English   中英

如何在 main 中打印來自 function 的變量?

[英]How to print variable from function in main?

我是 tensorflow 的新手,我正在搜索如何從 Python 的主要部分中的 function 打印變量。我的 function 是卷積的定義,它用 function 中定義的權重對“圖像”進行卷積,就是這樣:

def conv_fn(p_input):
    # Convolutional Layer #1  -------
    weights1 = tf.get_variable("weights1",
        [3, 3, 3, 32], 
        initializer=tf.random_normal_initializer())
    conv1 = tf.nn.conv2d(
        input=p_input.astype(np.float32),
        filter=weights1,
        strides=[1, 1, 1, 1],
        padding="VALID")
    conv1_relu = tf.nn.relu(conv1)
    return conv1_relu

主要是我想用圖像做卷積並打印出來。 我讀到我必須定義一個 session 並評估變量或輸入它。 我在這部分迷路了......這是我的主要內容:

def main(argv):
    sess = tf.InteractiveSession()
    sess.run(tf.global_variables_initializer())
    im = [1.0, 1.0, 2.0, 5.0, 1.0, 1.0, 2.0, 5.0, 5.0,1.0, 1.0, 2.0, 5.0, 1.0, 1.0, 2.0, 5.0, 5.0, 1.0, 1.0, 2.0, 5.0, 1.0, 1.0, 2.0, 5.0, 5.0]
    image = np.reshape(im, [-1, 3, 3, 3])
    con = conv_fn(image)
    print("This is image", image)
    print("This is con :", sess.run(con, feed_dict={p_input: image}))

if __name__ == "__main__":
    tf.app.run()

你能解釋一下我如何打印嗎:

  • 來自 function conv_fn 的權重

  • 卷積的結果

謝謝您的幫助。

如果您想保留正在進行的工作,一個好的方法是使用 object 代表您的 function 完成的工作。

class Convoluter(object):
    def __init__(self, p_input):
        self.p_input = p_input
        self.weights1 = self.conv1 = self.conv1_relu = None
    def run(self):
        if self.conv1_relu is not None:
            return self.conv1_relu
        self.weights1 = tf.get_variable("weights1",
            [3, 3, 3, 32], 
            initializer=tf.random_normal_initializer())
        self.conv1 = tf.nn.conv2d(
            input=p_input.astype(np.float32),
            filter=self.weights1,
            strides=[1, 1, 1, 1],
            padding="VALID")
        self.conv1_relu = tf.nn.relu(self.conv1)
        return self.conv1_relu

def main(argv):
    sess = tf.InteractiveSession()
    sess.run(tf.global_variables_initializer())
    im = [1.0, 1.0, 2.0, 5.0, 1.0, 1.0, 2.0, 5.0, 5.0, 1.0, 1.0, 2.0, 5.0, 1.0, 1.0, 2.0, 5.0, 5.0, 1.0, 1.0, 2.0, 5.0, 1.0, 1.0, 2.0, 5.0, 5.0]
    image = np.reshape(im, [-1, 3, 3, 3])
    con = Convoluter(image)
    print("This is image:", image)
    print("This is con:", sess.run(con.run(), feed_dict={p_input: image}))
    print("Convoluter had weights:", con.weights1)
    print("Convoluter had interim result:", con.conv1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM