鉴于此CSV文件:
"A","B","C","D","E","F","timestamp"
611.88243,9089.5601,5133.0,864.07514,1715.37476,765.22777,1.291111964948E12
611.88243,9089.5601,5133.0,864.07514,1715.37476,765.22777,1.291113113366E12
611.88243,9089.5601,5133.0,864.07514,1715.37476,765.22777,1.291120650486E12
Run Code Online (Sandbox Code Playgroud)
我只想将它作为矩阵/ ndarray加载3行和7列.但是,出于某种原因,我可以摆脱numpy的是一个有3行(每行一个)而没有列的ndarray.
r = np.genfromtxt(fname,delimiter=',',dtype=None, names=True)
print r
print r.shape
[ (611.88243, 9089.5601000000006, 5133.0, 864.07514000000003, 1715.3747599999999, 765.22776999999996, 1291111964948.0)
(611.88243, 9089.5601000000006, 5133.0, 864.07514000000003, 1715.3747599999999, 765.22776999999996, 1291113113366.0)
(611.88243, 9089.5601000000006, 5133.0, 864.07514000000003, 1715.3747599999999, 765.22776999999996, 1291120650486.0)]
(3,)
Run Code Online (Sandbox Code Playgroud)
我可以手动迭代并将其破解成我想要的形状,但这看起来很傻.我只是想把它作为一个合适的矩阵加载,这样我就可以将它切成不同的尺寸并绘制它,就像在matlab中一样.
我有n(通常n <10但应该扩展)进程在不同的机器上运行并使用RabbitMQ通过amqp进行通信.进程通常是长时间运行的,可以用任何语言实现(尽管大多数是java/python).
每个过程都需要许多输入(数字/字符串)并产生许多输出(也只是数字或字符串).执行进程是异步发生的:在其输入队列上发送消息并等待输出队列触发回调.
理想情况下,用户指定一些输入和所需的输出,系统应该:
如果节点的输入就绪,节点应该触发,允许每个分支并行.我现在可以假设没有循环,但最终会有循环(例如,两个进程可能需要迭代直到输出不再变化).
这应该是(数据)流程编程(之前讨论过)的已知问题,我想避免重新发明轮子.我更喜欢python解决方案,搜索引导Trellis和Pypes.Trellis不再开发,但似乎支持周期,而pypes则不支持.也不确定pypes是如何积极开发的.
进一步的搜索揭示了基于事件的编程框架的完整列表,其中没有一个我特别了解.当然有像Taverna和KNIME这样的工作流程环境,但这似乎有些过分.
有没有人有解决这类问题或提到的图书馆的经验?
编辑:我发现的其他库是:
我正在处理一个python应用程序,它由多个分布式轻量级组件组成,这些组件使用RabbitMQ和Kombu进行通信.
组件侦听两个队列,并且可以在每个队列上接收多个消息类型.子类可以通过注册自定义处理程序来覆盖每种消息类型的处理方式.这一切都很好.
我现在有一个额外的要求,即每个组件必须具有基本的REST/HTML接口.您的想法是将浏览器指向正在运行的组件,并获取有关当前正在执行的操作的实时信息(处理的消息,CPU使用情况,状态信息,日志等)
它需要是轻量级的,所以经过一些研究我已经确定了Flask(但我愿意接受建议).在伪代码中,这意味着:
class Component:
Queue A
Queue B
...
def setup(..):
# connect to the broker & other initialization
def start(..):
# start the event loop and wait for work
def handle_msg_on_A(self,msg):
# dispatch a msg to a handler depending on the msg type
def handle_msg_on_B(self,msg):
...
...
Run Code Online (Sandbox Code Playgroud)
并添加了许多视图方法:
@app.route('/')
def web_ui(self):
# render to a template
@app.route('/state')
def get_state(self):
# REST method to return some internal state info as JSON
...
Run Code Online (Sandbox Code Playgroud)
但是,将Web UI固定到类似这样的类上会破坏 …
如何最好地将预处理层(例如,减去平均值并除以std)添加到keras(v2.0.5)模型,以使模型完全自包含以进行部署(可能在C++环境中).我试过了:
def getmodel():
model = Sequential()
mean_tensor = K.placeholder(shape=(1,1,3), name="mean_tensor")
std_tensor = K.placeholder(shape=(1,1,3), name="std_tensor")
preproc_layer = Lambda(lambda x: (x - mean_tensor) / (std_tensor + K.epsilon()),
input_shape=im_shape)
model.add(preproc_layer)
# Build the remaining model, perhaps set weights,
...
return model
Run Code Online (Sandbox Code Playgroud)
然后,在其他地方设置模型的均值/标准.我找到了set_value函数,所以尝试了以下方法:
m = getmodel()
mean, std = get_mean_std(..)
graph = K.get_session().graph
mean_tensor = graph.get_tensor_by_name("mean_tensor:0")
std_tensor = graph.get_tensor_by_name("std_tensor:0")
K.set_value(mean_tensor, mean)
K.set_value(std_tensor, std)
Run Code Online (Sandbox Code Playgroud)
然而set_value失败了
AttributeError: 'Tensor' object has no attribute 'assign'
Run Code Online (Sandbox Code Playgroud)
所以set_value不适用(有限的)文档建议.这样做的正确方法是什么?获取TF会话,将所有训练代码包装在一个with (session)并使用feed_dict?我原本以为会有一种原生的keras方式来设置张量值.
我没有使用占位符,而是尝试使用K.variable或设置模型构造的均值/标准 …
RabbitMQ勾选我正在计划的项目的所有方框,保存一个.我会让不同的工作人员在队列中进行监听,并且最重要的是他们首先处理最新的消息(即最新的序列号)(LIFO).
我的应用程序是这样的,新的消息几乎废弃旧消息.如果您有工作人员,您仍然可以处理较旧的消息,但重要的是先完成新的消息.
在浏览各种论坛之后,我只能看到一个解决方案,那就是客户端应首先处理消息:
如果客户中途死亡,那就很丑陋且有问题.但是mabye这里有人有更好的解决方案.
我的研究(部分)基于:
注意:对于某些队列,消息的预期流量大致在1 msg /小时的范围内,而对于其他队列则大约为100 /分钟.所以没什么了不起的.
处理可以在KnockoutJS中提交/丢弃的可观察数组的最佳方法是什么?
我之前使用ProtectedObservable想法实现了这一点,但这是在单个数据记录上,而不是在数组上.
只是想知道如何最好地前进.我的项目需要所有电子邮件地址联系人的对话框和所选的列表.当它们从左侧的列表中添加时,它们将被删除并添加到右侧的列表中.
当按下"确定"按钮时,它们会被添加到"收件人:"字段中,但是当按下"取消"时,列表将恢复到之前的状态(之前可能已经填充过).
我正在使用芹菜2.4.1与python 2.6,rabbitmq后端和django.如果工人关闭,我希望我的任务能够正确清理.据我所知,你不能提供任务析构函数,所以我尝试挂钩worker_shutdown信号.
注意:AbortableTask仅适用于数据库后端,因此我无法使用它.
from celery.signals import worker_shutdown
@task
def mytask(*args)
obj = DoStuff()
def shutdown_hook(*args):
print "Worker shutting down"
# cleanup nicely
obj.stop()
worker_shutdown.connect(shutdown_hook)
# blocking call that monitors a network connection
obj.stuff()
Run Code Online (Sandbox Code Playgroud)
但是,永远不会调用shutdown hook.Ctrl-C'ing工作人员不会杀死任务,我必须从shell手动杀死它.
因此,如果这不是正确的方法,我如何允许任务正常关闭?
我想用d3在传单地图上实现热图图层.我有大约2-3k的数据点.
我的数据格式如下:
[{lat: .., lon: .., value: ..}, {lat: .., lon: .., value: ..}, ...]
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想在基于值的热图之间切换,以及基于点的密度.我还需要能够动态更新数据.在视觉上我的目标是这样的:

我知道传单有几个热图插件,两者都不是很活跃.Heatmap.js最接近我的需要.但是,它似乎没有维护,文档与源代码不一致,而且运行速度太慢.我已经广泛使用d3,如果可能的话,我更愿意将它用于热图图层.
有一个或两个块浮动(例如,这一个)但我找不到一个有效.这最接近我的需要.它仍然适用于最新的传单版本,但理想情况下我想使用渐变渐变(如heatmap.js)而不是hexbins.我还需要重写代码处理数据的方式并调整其他一些位(例如,它绘制密度,而不是值).
理想情况下,我希望以Mikes传单风格的方式提供解决方案.有什么建议?
我有一组复选框
使用foreach数据绑定生成:
<input type="checkbox" data-bind="value: id, checked: $root.chkboxSelected" />
Run Code Online (Sandbox Code Playgroud)
从observableArray中获取其检查状态.所以检查一个框会将相应的值添加到数组中,标准的knockoutjs可以正常工作.然后我想添加一个简单的规则:
如果选中C,则还必须检查A和B.
在knockoutjs中添加这种逻辑的最简洁方法是什么?我尝试使用可写的可计算的observable:
var viewModel = {
foo: observableArray(),
..
};
viewModel.chkboxSelected = ko.computed({
read: function() {
return this.foo();
},
write: function(value){
//add it if not added already
if($.inArray(value, this.foo()) < 0) {
this.foo.push(value);
}
// if C is present then A,B must be as well
if($.inArray("C", this.foo()) >= 0) {
if($.inArray("B", this.foo()) < 0) {
this.foo().push("B");
}
if($.inArray("A", this.foo()) < 0) {
this.foo().push("A");
}
}
},
owner: …Run Code Online (Sandbox Code Playgroud) 我相对较新的d3和nvd3,并希望创建一个简单的散点图,就像示例,但有一个序数 y轴.所以y轴值是分类字符串.这就是我认为我需要做的事情:
var xfun = function (d) { return d.Pos } //simple ints
, yfun = function (d) { return d.Title } //the ordinal values
var chart = nv.models.scatterChart()
.showDistX(true)
.showDistY(true)
.color(d3.scale.category10().range())
.margin({ top: 30, right: 20, bottom: 50, left: 130 })
.tooltips(false)
.x(xfun)
.y(yfun);
// create an ordinal scale with some test values
var ys = d3.scale.ordinal()
.domain(["this","is","an","ordinal","scale"])
.range(5);
// tell nvd3 to use it
chart.yAxis.scale(ys);
// add to the page
nv.addGraph(function () {
d3.select(selector).datum(data).transition().duration(500).call(chart);
nv.utils.windowResize(chart.update); …Run Code Online (Sandbox Code Playgroud) python ×5
amqp ×3
javascript ×3
d3.js ×2
knockout.js ×2
rabbitmq ×2
arrays ×1
celery ×1
checkbox ×1
csv ×1
dependencies ×1
flask ×1
geospatial ×1
keras ×1
keras-layer ×1
leaflet ×1
numpy ×1
nvd3.js ×1
ordinal ×1
reshape ×1
rest ×1
scatter-plot ×1
scheduling ×1
svg ×1
tensorflow ×1
workflow ×1