我尝试简单地保存和恢复图形,但最简单的示例不能按预期工作(这是使用版本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"的图形并完全恢复它,以便在新的会话中运行它会产生相同的结果吗?
如何在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文档不包含如何使用此函数的示例.
是否有可能使用函数来创建新值而不仅仅是测试现有值,如果是,如何?
有许多简单的教程以及 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) 我是一个有张量流的初学者,所以请原谅这是一个愚蠢的问题,答案是显而易见的.
我创建了一个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.
似乎可以使用单个实体来计算
(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中不支持我用于测试它?
是否存在File.getCanonicalPath()和File.toPath().toRealPath()会产生不同结果的情况?他们似乎做了两件相似的事情,但文档从来没有说明他们应该做同样的事情.是否有边境案例,我宁愿选择一种方法而不是另一种方法?那么File.getAbsolutePath()与Path.toAbsolutePath()相比,它们应该以相同的方式工作吗?
默认情况下,(德语)spacy 分词器不会按斜线、下划线或星号分割,这正是我所需要的(因此“der/die”会生成单个标记)。
然而,它确实在括号上拆分,因此“dies(und)das”被拆分为 5 个标记。是否有一种(简单)方法告诉默认标记器也不在括号上拆分,括号两边都由字母括起来,没有空格?
为分词器定义的括号上的分割到底是如何定义的?
我使用Flask实现了一个简单的微服务,其中处理请求的方法根据请求数据和加载到内存中的相当大的数据结构计算响应.现在,当我使用gunicorn和大量工作线程部署此应用程序时,我只想在所有工作者的请求处理程序之间共享数据结构.由于只读取数据,因此不需要锁定或类似.做这个的最好方式是什么?
基本上需要的是:
据我所知,gunicorn允许我实现各种钩子函数,例如在服务器初始化时,但是烧瓶请求处理程序方法对gunicorn服务器数据结构一无所知.
我不想为此使用redis或数据库系统之类的东西,因为所有数据都在需要加载到内存中的数据结构中,并且不必涉及反序列化.
对使用大数据结构的每个请求执行的计算可能很长,因此必须在每个请求的真正独立的线程或进程中同时发生(这应该通过在多核计算机上运行来扩展).
我正在考虑使用 Ray 来简单实现数据并行处理:
我想知道 Ray 是否可以做到这一点。
目前我有以下基于 python 多处理库的简单实现:
这样,一旦工作人员无法处理更多项目,队列就会阻塞,并且不会尝试将更多工作传递给工作人员。如果接收器进程无法存储更多项目,则结果队列将阻塞,这反过来又会阻塞工作线程,而工作线程又会阻塞输入队列,直到写入进程可以再次写入更多结果。
那么 Ray 有抽象来做这样的事情吗?我如何确保只有一定量的工作可以传递给工作人员,以及如何拥有类似单进程输出功能的东西,并确保工作人员不会用太多结果淹没该功能,以致内存/存储空间已耗尽?
显然for doc in nlp.pipe(sequence) 比跑步快得多for el in sequence: doc = nlp(el) ..
我遇到的问题是,我的序列实际上是一个元组序列,其中包含用于将 spacy 转换为文档的文本,还包含我希望作为文档属性进入 spacy 文档的附加信息(我将注册这些信息)博士)。
我不确定如何修改 spacy 管道,以便第一阶段真正从元组中选择一个项目来运行标记器并获取文档,然后让其他函数使用元组中的剩余项目来添加功能到现有文档。
我想以最简单的方式解析一些代表数组或映射的 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 不是执行此操作的最佳库,我还能使用什么?