我想使用"完全连接"模型来进行训练和测试.我有一个train.tfrecords文件和一个test.tfrecords文件.我相信这样做的正确方法是为培训和测试创建一个单独的图表.
根本问题是使用OutOfRange错误和coord.should_stop()打破了我尝试过的任何类型的封装.
#main.py: I would like main to look clean like this:#
session=tf.Session()
model.init(session, train.tfrecords, test.tfrecords)
model.fit()
model.eval()
session.close()
Run Code Online (Sandbox Code Playgroud)
只要你只调用一次或者eval(你可以想象),那就完全没问题了.我大致都在关注这个实现
#model.py
from graph.py import MyGraph
with tf.variable_scope(scope,reuse=False):
train_graph=MyGraph(train_queue.batch)
with tf.variable_scope(scope,reuse=True):
test_graph=MyGraph(test_queue.batch)
def fit(self):
coord=tf.train.Coordinator()
threads=tf.train.start_queue_runners(coord,self.session)
try:
while not coord.should_stop()
self.session.run(self.train_graph....)
etc
except e:
coord.request_should_stop()
finally:
coord.join()
def eval_on_test_set(self):#similar to fit
coord=tf.train.Coordinator()
threads=tf.train.start_queue_runners(coord,self.session)
try:
while not coord.should_stop()
self.session.run(test_graph....)
except e:
coord.request_should_stop()
finally:
coord.join()
Run Code Online (Sandbox Code Playgroud)
显然,正在发生的是coord是(1)关闭线程,而线程又(2)关闭队列,以后不能轻易重新打开.我只是不知道这方面的方式.coord.clear_stop()可能是这个难题的一部分,但我无法使其发挥作用.
其次,我有一个训练和测试队列,但它们不是同时使用.理想情况下,该解决方案不涉及等待一半时间的专用测试/训练线程.
请原谅这个问题的广泛性.也许一旦我知道更多,也许我可以更具体地问.
我有性能敏感的tensorflow代码.从对gpu编程知之甚少的人的角度来看,我想知道哪些指南或策略是优化我的代码的"好开始".(单个gpu)
或许甚至可以读出每个张量流操作花了多长时间...
我有一个模糊的理解
可能还有其他常见因素在起作用,我不知道..
我想在张量板中记录一些python-blackbox函数计算出的每次运行信息.
具体来说,我正在设想在运行sess.run()之后使用sklearn.metrics.auc.
如果"auc"实际上是一个张量节点,那么生活就会很简单.但是,设置更像是:
stuff=sess.run()
auc=auc(stuff)
Run Code Online (Sandbox Code Playgroud)
如果有更多的tensorflow-onic方式这样做我感兴趣.我目前的设置涉及创建单独的列车和测试图表.
如果有办法完成上述任务,我也对此感兴趣.
我想做类似以下的事情:
def getFunction(params):
f= lambda x:
do stuff with params and x
return f
Run Code Online (Sandbox Code Playgroud)
我得到的语法无效.什么是Pythonic /正确的方法呢?
这样我就可以打电话f(x)而不必打电话给f(x,params)哪一个更混乱的IMO.
Mayavi是使用python进行3D可视化脚本编写的“现代”方法吗?
现代,我的意思是一个有见识的人会在2015年选择使用Mayavi来满足各种项目要求。
我是大约一个月前首次发现它的,它在大多数时候都运行良好。它也基于vtk,我认为即使Mayavi不会,它也会停留一段时间。
有几件事与我有关,促使我发表了这篇文章。大部分活动(包括主要作者之一的博客中的提交和帖子)似乎都是2010-2011年。用户的邮件列表似乎已经死了,特别是与paraview相比。我也很不幸,在StackOverflow上得到了问题的解答。
那么我会以错误的方式处理吗?当然,有很多python用户,其中大约1%的用户需要以某种方式进行3D可视化。那么每个人都在哪里?
我有27GB的2D Tiff文件,它们代表3D图像电影的片段。我希望能够像分割一个简单的numpy4d数组一样对这些数据进行切片。看起来dask.array是一个很好的工具,用于将数组作为hdf5文件存储在内存中后即可对其进行干净处理。
如果这些文件不能全部放入内存,我该如何首先将它们存储为hdf5文件。我是h5.py和数据库的新手。
谢谢。
from traits.api import Str
class Foo(HasTraits):
a=Str
b=Str()
Run Code Online (Sandbox Code Playgroud)
成员'a'和'b'之间是否有任何行为差异?
特质属性总是特定于实例,还是属于类成员?
我最近迁移到一个full_connected样式模型,该模型从TFRecords文件生成的队列中读取输入.事实证明这更有效,但我仍然想用placeholder/feed_dict以交互方式传递参数.
有没有办法在feed_dict和full_connected功能中使用相同的计算图(比如你有一个在init方法中构建图的模型类)?你能获得占位符来接收出列值吗?
python-2.7 ×4
tensorflow ×4
python ×3
enthought ×2
cpu ×1
dask ×1
function ×1
gpu ×1
h5py ×1
mayavi ×1
numpy ×1
performance ×1
return ×1
scikit-learn ×1
traitsui ×1
vtk ×1