小编Joh*_*hsm的帖子

tensorflow.train.import_meta_graph不起作用?

我尝试简单地保存和恢复图形,但最简单的示例不能按预期工作(这是使用版本0.9.0或0.10.0在Linux 64上使用python 2.7或3.5.2在没有CUDA的情况下完成的)

首先我保存图形如下:

import tensorflow as tf
v1 = tf.placeholder('float32') 
v2 = tf.placeholder('float32')
v3 = tf.mul(v1,v2)
c1 = tf.constant(22.0)
v4 = tf.add(v3,c1)
sess = tf.Session()
result = sess.run(v4,feed_dict={v1:12.0, v2:3.3})
g1 = tf.train.export_meta_graph("file")
## alternately I also tried:
## g1 = tf.train.export_meta_graph("file",collection_list=["v4"])
Run Code Online (Sandbox Code Playgroud)

这将创建一个非空的文件"文件",并将g1设置为看起来像正确的图形定义的东西.

然后我尝试恢复此图:

import tensorflow as tf
g=tf.train.import_meta_graph("file")
Run Code Online (Sandbox Code Playgroud)

这没有错误,但根本不返回任何内容.

任何人都可以提供必要的代码,只需保存"v4"的图形并完全恢复它,以便在新的会话中运行它会产生相同的结果吗?

python tensorflow

15
推荐指数
1
解决办法
1万
查看次数

SPARQL 1.1:如何使用replace函数?

如何在SPARQL 1.1中使用replace函数,尤其是在更新命令中?

例如,如果我有多个三元组?s?p?o其中?o是一个字符串,对于所有三元组,其中包含字符串"gotit"我想插入一个额外的三元组,其中"gotit"被替换为" "我怎么能这样做?我试图实现这是芝麻2.6.0.

我尝试了这种天真的方法:

INSERT { ?s ?p replace(?o,"gotit","haveit","i") . }
WHERE { ?s ?p ?o . FILTER(regex(?o,"gotit","i")) }
Run Code Online (Sandbox Code Playgroud)

但这导致语法错误.

我也无法在查询的结果列表中使用replace,如下所示:

SELECT ?s ?p (replace(?o,"gotit","haveit","i") as ?r) WHERE { .... }
Run Code Online (Sandbox Code Playgroud)

遗憾的是,SPARQL文档不包含如何使用此函数的示例.

是否有可能使用函数来创建新值而不仅仅是测试现有值,如果是,如何?

sesame replace sparql

12
推荐指数
2
解决办法
8472
查看次数

Ray 究竟是如何与工作人员共享数据的?

有许多简单的教程以及 SO 问题和答案,它们声称 Ray 以某种方式与工作人员共享数据,但这些都没有详细说明在哪个操作系统上共享的内容。

例如,在这个 SO 答案中:https ://stackoverflow.com/a/56287012/1382437 np 数组被序列化到共享对象存储中,然后由几个访问相同数据的工作人员使用(从该答案复制的代码):

import numpy as np
import ray

ray.init()

@ray.remote
def worker_func(data, i):
    # Do work. This function will have read-only access to
    # the data array.
    return 0

data = np.zeros(10**7)
# Store the large array in shared memory once so that it can be accessed
# by the worker tasks without creating copies.
data_id = ray.put(data)

# Run worker_func 10 times in parallel. This will not create any …
Run Code Online (Sandbox Code Playgroud)

shared-memory ray

11
推荐指数
2
解决办法
623
查看次数

如何保存训练有素的张量流模型以供以后用于应用​​?

我是一个有张量流的初学者,所以请原谅这是一个愚蠢的问题,答案是显而易见的.

我创建了一个Tensorflow图,从X和y的占位符开始,我已经优化了一些代表我的模型的张量.图的一部分是可以计算预测矢量的东西,例如线性回归

y_model = tf.add(tf.mul(X,w),d)
y_vals = sess.run(y_model,feed_dict={....})
Run Code Online (Sandbox Code Playgroud)

训练结束后,我有w和d的可接受值,现在我想保存我的模型以供日后使用.然后,在另一个python会话中,我想恢复模型,以便我可以再次运行

## Starting brand new python session
import tensorflow as tf
## somehow restor the graph and the values here: how????
## so that I can run this:
y_vals = sess.run(y_model,feed_dict={....})
Run Code Online (Sandbox Code Playgroud)

对于某些不同的数据并取回y值.

我希望这种方式能够存储和恢复用于计算占位符的y值的图形 - 只要占位符获得正确的数据,这应该在没有用户(应用程序的用户)的情况下透明地工作.模型)需要知道图形是什么样的).

据我所知tf.train.Saver().save(..)只保存变量,但我也想保存图形.我认为tf.train.export_meta_graph在这里可能是相关的,但我不明白如何正确使用它,文档对我来说有点神秘,并且示例甚至不使用export_meta_graph.

tensorflow

10
推荐指数
2
解决办法
5793
查看次数

如何使用SPARQL 1.1查询不同元组的数量?

似乎可以使用单个实体来计算

(COUNT(DISTINCT ?x) as ?count)
Run Code Online (Sandbox Code Playgroud)

以及查询中所有变量使用的不同元组的数量

(COUNT(DISTINCT *) as ?count)
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何计算特定(不同)元组.就像是

(COUNT(DISTINCT ?a ?b ?c) as ?count) 
Run Code Online (Sandbox Code Playgroud)

似乎不起作用.我做错了还是在SPARQL 1.1中真的不允许这样做?或者它应该工作,并且在Sesame 2.6.0中不支持我用于测试它?

select count sparql

8
推荐指数
1
解决办法
3863
查看次数

getCanonicalPath和toRealPath之间的区别

是否存在File.getCanonicalPath()和File.toPath().toRealPath()会产生不同结果的情况?他们似乎做了两件相似的事情,但文档从来没有说明他们应该做同样的事情.是否有边境案例,我宁愿选择一种方法而不是另一种方法?那么File.getAbsolutePath()与Path.toAbsolutePath()相比,它们应该以相同的方式工作吗?

java nio

8
推荐指数
1
解决办法
2059
查看次数

是否可以更改 Spacy 分词器的分词规则?

默认情况下,(德语)spacy 分词器不会按斜线、下划线或星号分割,这正是我所需要的(因此“der/die”会生成单个标记)。

然而,它确实在括号上拆分,因此“dies(und)das”被拆分为 5 个标记。是否有一种(简单)方法告诉默认标记器也不在括号上拆分,括号两边都由字母括起来,没有空格?

为分词器定义的括号上的分割到底是如何定义的?

python regex token tokenize spacy

8
推荐指数
1
解决办法
2695
查看次数

在与Gunicorn一起部署时,如何在Flask方法之间共享内存资源

我使用Flask实现了一个简单的微服务,其中处理请求的方法根据请求数据和加载到内存中的相当大的数据结构计算响应.现在,当我使用gunicorn和大量工作线程部署此应用程序时,我只想在所有工作者的请求处理程序之间共享数据结构.由于只读取数据,因此不需要锁定或类似.做这个的最好方式是什么?

基本上需要的是:

  • 初始化服务器时加载/创建大型数据结构
  • 以某种方式获取请求处理方法内的句柄来访问数据结构

据我所知,gunicorn允许我实现各种钩子函数,例如在服务器初始化时,但是烧瓶请求处理程序方法对gunicorn服务器数据结构一无所知.

我不想为此使用redis或数据库系统之类的东西,因为所有数据都在需要加载到内存中的数据结构中,并且不必涉及反序列化.

对使用大数据结构的每个请求执行的计算可能很长,因此必须在每个请求的真正独立的线程或进程中同时发生(这应该通过在多核计算机上运行来扩展).

python multiprocessing flask gunicorn

7
推荐指数
1
解决办法
4146
查看次数

如何使用Python Ray并行处理大量数据而不耗尽内存?

我正在考虑使用 Ray 来简单实现数据并行处理:

  • 有大量的数据项需要处理,这些数据项可以通过流/迭代器获得。每件物品的尺寸都很重要
  • 应该在每个项目上运行一个函数,并且会产生显着大小的结果
  • 处理后的数据应该在流中传递或存储在某种接收器中,该接收器只能在一段时间内接受一定量的数据

我想知道 Ray 是否可以做到这一点。

目前我有以下基于 python 多处理库的简单实现:

  • 一个进程读取流并将项目传递到队列,该队列将在 k 个项目后阻塞(以便队列所需的内存不会超过某个限制)
  • 有几个工作进程将从输入队列中读取并处理项目。处理后的项目被传递到结果队列,该队列的大小也是有限的
  • 另一个进程读取结果队列以传递项目

这样,一旦工作人员无法处理更多项目,队列就会阻塞,并且不会尝试将更多工作传递给工作人员。如果接收器进程无法存储更多项目,则结果队列将阻塞,这反过来又会阻塞工作线程,而工作线程又会阻塞输入队列,直到写入进程可以再次写入更多结果。

那么 Ray 有抽象来做这样的事情吗?我如何确保只有一定量的工作可以传递给工作人员,以及如何拥有类似单进程输出功能的东西,并确保工作人员不会用太多结果淹没该功能,以致内存/存储空间已耗尽?

python-3.x ray

5
推荐指数
1
解决办法
1618
查看次数

让 spacy nlp.pipe 处理文本元组和附加信息以添加为文档功能?

显然for doc in nlp.pipe(sequence) 比跑步快得多for el in sequence: doc = nlp(el) ..

我遇到的问题是,我的序列实际上是一个元组序列,其中包含用于将 spacy 转换为文档的文本,还包含我希望作为文档属性进入 spacy 文档的附加信息(我将注册这些信息)博士)。

我不确定如何修改 spacy 管道,以便第一阶段真正从元组中选择一个项目来运行标记器并获取文档,然后让其他函数使用元组中的剩余项目来添加功能到现有文档。

spacy

2
推荐指数
1
解决办法
1363
查看次数

使用 Jackson 将 JSON 字符串解析为原始 Java 类型?

我想以最简单的方式解析一些代表数组或映射的 JSON 字符串。我有整个 JSON 字符串,不需要流式传输。

我想做的是尽可能类似于这样的事情:

Object obj = parseJSON(theString);
Run Code Online (Sandbox Code Playgroud)

其中 obj 将保存 Map 或 List 的实例(我无法提前知道是哪个)。JSON 对象可以任意嵌套映射和数组,但所有类型都可以表示为基本 Java 类型:String、Integer、Double、Boolean 加上 Map 和 ArrayList,仅此而已。

到目前为止,我发现的所有简单示例都要求我知道类型是什么以及我想要哪些类型,但我想让所有这些都由 JSON 解析器完成,因为我根本不会提前知道我会得到什么。

如果 Jackson 不是执行此操作的最佳库,我还能使用什么?

java json jackson

1
推荐指数
1
解决办法
5727
查看次数