[英]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.