在Tensorflow中训练模型后:
在使用带有Python绑定的Tensorflow时,如何将张量转换为numpy数组?
我正在为我构建的cnn模型测试不同的超参数,但是在Tensorboard中查看摘要时我有一点小烦恼.这个问题似乎是该数据仅仅是连续运行"添加",这样的功能,导致一个奇怪的叠加,除非我看到的信息是"相对的",而不是"一步".看这里:
我试过杀死tensorboard的进程并擦除日志文件,但似乎还不够.
所以问题是,如何重置此信息?
谢谢!!
我正在尝试使用我自己的一组图像来训练一个简单的逻辑回归模型,但是当我尝试训练模型时,我收到了这个错误:
Traceback (most recent call last):
File "main.py", line 26, in <module>
model.entrenar_modelo(sess, training_images, training_labels)
File "/home/jr/Desktop/Dropbox/Machine_Learning/TF/Míos/Hip/model_log_reg.py", line 24, in entrenar_modelo
train_step.run({x: batch_xs, y_: batch_ys})
File "/home/jr/.local/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1267, in run
_run_using_default_session(self, feed_dict, self.graph, session)
File "/home/jr/.local/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2763, in _run_using_default_session
session.run(operation, feed_dict)
File "/home/jr/.local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 334, in run
np_val = np.array(subfeed_val, dtype=subfeed_t.dtype.as_numpy_dtype)
ValueError: setting an array element with a sequence.
Run Code Online (Sandbox Code Playgroud)
我要喂的数据train_step.run({x: batch_xs, y_: batch_ys})是这样的:
我究竟做错了什么?Thx提前!
编辑1:它接缝问题是我必须batch_xs在传递它们之前评估张量train_step.run(...).我认为run方法可以解决这个问题,但我想我错了?无论如何,所以一旦我在调用函数之前这样做了:
for i, x in …Run Code Online (Sandbox Code Playgroud) 如果我训练一个具有(比如说)10个类的深度神经网络,并且我给网络提供了一个完全不同的图像,那么期望输出层的单元格不会激活很多是合理的,所以我知道没有受过训练的类的对象在图像?
我的直觉说"是",但是这样吗?什么是最好的方法呢?
谢谢
我正在使用tensorflow来预处理一些大图像.我遇到了一个内存迅速崩溃的问题.我转向在python中使用多处理,因此内存将在我想要的时候完全释放.
问题是,我正在使用python的多进程队列,由于某种原因未知,我无法将我的tensorflow会话从我的父进程传递给子进程.使用一些高级调试技术(即每几行打印一些东西)我注意到python在我使用会话的行内空闲,它不会抛出错误消息.
我的代码看起来像这样:
def subprocess(some_image, sess, q):
with sess.as_default():
# ... use sess and q ...
print "All good and well" #This is printed
some_image.eval() #Nothing happens here in console
print "Still all good and well" #This is not printed
if __name__ == '__main__':
# ... some initial operations ...
some_image = read_some_image()
sess = tf.Session()
q = Queue()
q.put(something)
p = Process(target=subprocess, args=(some_image, sess, q))
p.start()
p.join()
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?非常感谢!
我的情况是这样的:
我有一个训练张量流模型的脚本.在此脚本中,我实例化了一个提供训练数据的类.该类的初始化依次实例化另一个名为"image"的类,以进行数据扩充的各种操作,而不是.
main script -> instantiates data_feed class -> instantiates image class
Run Code Online (Sandbox Code Playgroud)
我的问题是我试图通过传递会话本身或图形来使用tensorflow在这个图像类中做一些操作.但我收效甚微.
我现在所拥有的,但工作缓慢,就像这样(简化):
class image(object):
def __init__(self, im):
self.im = im
def augment(self):
aux_im = tf.image.random_saturation(self.im, 0.6)
sess = tf.Session(graph=aux_im.graph)
self.im = sess.run(aux_im)
class data_feed(object):
def __init__(self, data_dir):
self.images = load_data(data_dir)
def process_data(self):
for im in self.images:
image = image(im)
image.augment()
if __name__ == "__main__":
# initialize everything tensorflow related here, including model
sess = tf.Session()
# next load the data
data_feed = data_feed(TRAIN_DATA_DIR)
train_data = data_feed.process_data()
Run Code Online (Sandbox Code Playgroud)
这种方法有效,但它为每个图像创建一个新的Session: …