我是靠谱客的博主 奋斗凉面,最近开发中收集的这篇文章主要介绍把tensor转为numpy_如何将张量转换为numpy数组,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

I'm beginner of tensorflow. I made simple autoencoder with the help. I want to convert final decoded tensor to numpy array.I tried using .eval() but I could not work it. how can I convert tensor to numpy?

My input image size is 512*512*1 and data type is raw image format.

code

#input

image_size = 512

hidden = 256

input_image = np.fromfile('PATH',np.float32)

# Variables

x_placeholder = tf.placeholder("float", (image_size*image_size))

x = tf.reshape(x_placeholder, [image_size * image_size, 1])

w_enc = tf.Variable(tf.random_normal([hidden, image_size * image_size], mean=0.0, stddev=0.05))

w_dec = tf.Variable(tf.random_normal([image_size * image_size, hidden], mean=0.0, stddev=0.05))

b_enc = tf.Variable(tf.zeros([hidden, 1]))

b_dec = tf.Variable(tf.zeros([image_size * image_size, 1]))

#model

encoded = tf.sigmoid(tf.matmul(w_enc, x) + b_enc)

decoded = tf.sigmoid(tf.matmul(w_dec,encoded) + b_dec)

# Cost Function

cross_entropy = -1. * x * tf.log(decoded) - (1. - x) * tf.log(1. - decoded)

loss = tf.reduce_mean(cross_entropy)

train_step = tf.train.AdagradOptimizer(0.1).minimize(loss)

# Train

init = tf.global_variables_initializer()

with tf.Session() as sess:

sess.run(init)

print('Training...')

for _ in xrange(10):

loss_val, _ = sess.run([loss, train_step], feed_dict = {x_placeholder: input_image})

print loss_val

解决方案

You can add decoded to the list of tensors to be returned by sess.run(), as follows. decoded_val will by numpy array, and you can reshape it to get the original image shape.

Alternatively, you can do sess.run() outside of training loop to get the resulting decoded image.

import tensorflow as tf

import numpy as np

tf.reset_default_graph()

#load_image

image_size = 16

k = 64

temp = np.zeros((image_size, image_size))

# Variables

x_placeholder = tf.placeholder("float", (image_size, image_size))

x = tf.reshape(x_placeholder, [image_size * image_size, 1])

w_enc = tf.Variable(tf.random_normal([k, image_size * image_size], mean=0.0, stddev=0.05))

w_dec = tf.Variable(tf.random_normal([image_size * image_size, k], mean=0.0, stddev=0.05))

b_enc = tf.Variable(tf.zeros([k, 1]))

b_dec = tf.Variable(tf.zeros([image_size * image_size, 1]))

#model

encoded = tf.sigmoid(tf.matmul(w_enc, x) + b_enc)

decoded = tf.sigmoid(tf.matmul(w_dec,encoded) + b_dec)

# Cost Function

cross_entropy = -1. * x * tf.log(decoded) - (1. - x) * tf.log(1. - decoded)

loss = tf.reduce_mean(cross_entropy)

train_step = tf.train.AdagradOptimizer(0.1).minimize(loss)

# Train

init = tf.global_variables_initializer()

with tf.Session() as sess:

sess.run(init)

print('Training...')

for _ in xrange(10):

loss_val, decoded_val, _ = sess.run([loss, decoded, train_step], feed_dict = {x_placeholder: temp})

print loss_val

print('Done!')

最后

以上就是奋斗凉面为你收集整理的把tensor转为numpy_如何将张量转换为numpy数组的全部内容,希望文章能够帮你解决把tensor转为numpy_如何将张量转换为numpy数组所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部