小编Eri*_*oda的帖子

Keras Sequential 模型的多个嵌入层

我正在使用 Keras(tensorflow 后端)并且想知道如何将多个嵌入层添加到 Keras Sequential 模型中。

更具体地说,我的数据集中有几列具有分类值,并且我已经考虑使用单热编码,但已确定分类项目的数量为数百,导致大量且过于稀疏的列集。在寻找解决方案时,我发现 Keras 的嵌入层似乎非常优雅地解决了这个问题。但是,大多数示例(和 Keras 文档)说明了一个非常简单的情况,其中包含一个 Embedding 层。

不幸的是,我不知道如何将多个 Embedding 层作为输入集成到单个模型中。

我的代码看起来像这样,但它不起作用,我猜测多个 Embedding 层按顺序操作(第一个 Embedding 层输入第二个,依此类推)而不是模型的多个输入源:

model = Sequential()
model.add(Embedding(500, 64, input_length=10))  # categorical col 1
model.add(Embedding(100, 64, input_length=10))  # categorical col 2
model.add(Embedding(500, 64, input_length=10))  # categorical col 3
model.add(Flatten... 
model.add(Dense...
Run Code Online (Sandbox Code Playgroud)

我的问题是如何建立 Keras Sequential 模型,以便能够使用上面显示的三个嵌入层。第一层和最后一层之间的具体内容:

model = Sequential()
#
# What goes here?
#
model.add(Dense...
Run Code Online (Sandbox Code Playgroud)

我是在正确的轨道上,还是我的方法不正确,我需要以不同的方式建立模型?任何建议/示例表示赞赏!

python keras keras-layer

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

kafka-node使用者收到offsetOutOfRange错误

我正在使用kafka-node(kafka的节点客户端),使用使用者来检索有关主题的消息.不幸的是,我收到了"offsetOutOfRange"条件(调用了offsetOutOfRange回调).我的应用程序运行良好,直到消费者显着落后于生产者,在最早和最新的偏移之间留下了一个很大的差距.此时我(也许是错误的)假设消费者能够继续接收消息(并希望能够接收到生产者).

我的kafka消费者客户端代码如下:

:
:
var kafka = require('kafka-node');

var zookeeper = "10.0.1.201:2181";
var id = "embClient";

var Consumer = kafka.Consumer;
var client = new kafka.Client(zookeeper, id);
var consumer = new Consumer( client, [ { topic: "test", partition: 0 } ], { autoCommit: false } );

consumer.on('error', [error callback...]);

consumer.on('offsetOutOfRange', [offset error callback...]);

consumer.on('message', [message callback...]);
:
:
Run Code Online (Sandbox Code Playgroud)

我做错了什么,或者我错过了什么?

如果没有,我有几个问题:

(a)是否有一种公认的"最佳"方式来写客户端以优雅地处理这种情况?

(b)为何会提出这个条件?(我假设一个客户应该能够继续阅读它停止的消息,最终(理想情况下)赶上......)

(c)我是否需要编写代码/逻辑来处理这种情况,并明确地重新定位消费者偏移量以进行读取?(这看起来有点麻烦)......

任何帮助表示赞赏.

node.js apache-kafka kafka-consumer-api

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

Kubernetes/Minikube Ingress错误(301永久移动)

我正在关注Kubernetes教程,并在我的MacBook上使用Minikube作为我的Kubernetes环境.本教程中的所有步骤都运行良好,但Ingress工作除外(我正在关注的Ingress教程位于:https://cloud.google.com/container-engine/docs/tutorials/http-balancer) .通过Ingress访问时,我收到"301 Moved Permanently"错误.

我的环境:

  • MacBook(macOS Sierra,版本:10.12.5(16F73))
  • xhyve推荐用于Minikube
  • minikube版本:v0.19.0

我使用默认的Ingress控制器(minikube的nginx)并成功启用了入口:

minikube addons enable ingress
Run Code Online (Sandbox Code Playgroud)

然后我按照教程中的步骤操作:

第1步:部署nginx服务器(SUCCESSFUL)

kubectl run nginx --image=nginx --port=80
Run Code Online (Sandbox Code Playgroud)

步骤2a:在内部将您的nginx部署公开为服务(SUCCESSFUL)

kubectl expose deployment nginx --target-port=80  --type=NodePort
Run Code Online (Sandbox Code Playgroud)

步骤2b:验证服务是否可用:

kubectl get service nginx
Run Code Online (Sandbox Code Playgroud)

输出:

NAME      CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
nginx     10.0.0.170   <nodes>       80:31635/TCP   7s
Run Code Online (Sandbox Code Playgroud)

从上面,我知道服务是正确创建的......

第3步:创建Ingress资源(SUCCESSFUL)

Ingress配置YAML(basic-ingress.yaml):

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: basic-ingress
spec:
  backend:
    serviceName: nginx
    servicePort: 80
Run Code Online (Sandbox Code Playgroud)

现在应用YAML:

kubectl apply -f basic-ingress.yaml
Run Code Online (Sandbox Code Playgroud)

步骤4a:验证Ingress

kubectl get ingress basic-ingress
Run Code Online (Sandbox Code Playgroud)

输出:

NAME            HOSTS     ADDRESS         PORTS     AGE …
Run Code Online (Sandbox Code Playgroud)

nginx kubernetes minikube

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

Keras提前停止回调错误,val_loss指标不可用

我正在训练Keras(在MacBook上为Tensorflow后端,Python),并且在fit_generator函数的早期停止回调中遇到错误。错误如下:

RuntimeWarning: Early stopping conditioned on metric `val_loss` which is not available. Available metrics are:
  (self.monitor, ','.join(list(logs.keys()))),
RuntimeWarning: Can save best model only with val_acc available, skipping.

'skipping.' % (self.monitor), RuntimeWarning
[local-dir]/lib/python3.6/site-packages/keras/callbacks.py:497: RuntimeWarning: Early stopping conditioned on metric `val_loss` which is not available. Available metrics are:
  (self.monitor, ','.join(list(logs.keys()))), RuntimeWarning
[local-dir]/lib/python3.6/site-packages/keras/callbacks.py:406: RuntimeWarning: Can save best model only with val_acc available, skipping.
  'skipping.' % (self.monitor), RuntimeWarning)
Traceback (most recent call last):
  :
  [my-code]
  :
  File "[local-dir]/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
return func(*args, …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow

4
推荐指数
3
解决办法
7141
查看次数

在管道处理期间可以从 spaCy 文档中删除令牌吗?

我正在使用 spaCy(一个很棒的 Python NLP 库)来处理许多非常大的文档,但是,我的语料库中有许多我想在文档处理管道中消除的常用词。有没有办法从管道组件内的文档中删除令牌?

python nlp spacy

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

如何结合熊猫系列

我想结合两个Pandas系列A和B来获得C:

A:
1    odd
2    Nan   
3    odd
4    Nan   
5    odd
6    Nan   

B:
1    Nan   
2    even
3    Nan   
4    even
5    Nan   
6    even
Run Code Online (Sandbox Code Playgroud)

C应如下所示(其中A中有Nan值,则应使用B中的值,反之亦然)

C:
1    odd
2    even
3    odd
4    even
5    odd
6    even
Run Code Online (Sandbox Code Playgroud)

可能有一种简单的方法可以做到这一点,但它逃脱了我...

任何帮助表示赞赏!

python pandas

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

如何将一系列数组转换为二维 numpy 数组

有没有办法将每行包含一个数组的 Pandas 系列转换为 2D numpy 数组?

当您在 Python 中显示时,该系列如下所示:

[array([ 58.,  -1.,  -1.,  -1.,  -1.])
 array([ 77.,  95.,  -1.,  -1.,  -1.])]
Run Code Online (Sandbox Code Playgroud)

我想得到一个看起来像这样的 numpy 矩阵:

[[ 58.,  -1.,  -1.,  -1.,  -1.]
 [ 77.,  95.,  -1.,  -1.,  -1.]]
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以做到这一点?任何帮助表示赞赏!

python numpy pandas

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

使用GitHub API下载文件时解码base64

我正在使用GitHub API从GitHub下载文件.我已经能够成功进行身份验证以及从github获取响应,并查看表示文件内容的base64编码字符串.

不幸的是,当解码base64字符串时,我得到一个不寻常的错误(字符串长度不是4的倍数).

HTTP请求如下所示:

GET /repos/:owner/:repo/contents/:path
Run Code Online (Sandbox Code Playgroud)

(部分)响应如下所示:

{
    "name":....,
    "download_url":...",
    "type":"file",
    "content":"ewogICAgInN3YWdnZXIiOiAiM...
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是字符串的长度是15263字节,我在解码字符串时遇到错误(字符串长度不是4的倍数).我正在使用node.js和'base64-js'npm模块来解码字符串.执行解码的代码如下所示:

var base64 = require('base64-js');
var contents = base64.toByteArray(fileContent);
Run Code Online (Sandbox Code Playgroud)

解码会导致异常:

Error: Invalid string. Length must be a multiple of 4
    at placeHoldersCount (.../node_modules/base64-js/index.js:23:11)
    at Object.toByteArray (...node_modules/base64-js/index.js:42:18)
    :
    :
Run Code Online (Sandbox Code Playgroud)

我认为GitHub API正在向我发送正确的数据,所以我认为这不是问题.

我是不正确地执行解码还是我忽略了另一个问题?

任何帮助表示赞赏.

base64 github-api node-github

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

Debezium Postgres 连接器“应用包含/排除列表过滤器后,不会捕获任何更改”

我正在使用 Debezium(Kafka 连接器)来捕获 Postgres 数据库更改,但我从 Debezium 收到错误。有谁知道下面的错误意味着什么,并可能提供修复它的建议。

更多调试信息:

  • 我尝试了 "schema.include.list": "banking" 和 "database.include.list": "banking"...都不起作用
  • 我尝试了 debezium/connect:1.4 并且它可以工作...但不能与 debezium/connect:1.5+ 一起使用(1.9 是可用的最高版本,但它不起作用(与下面的错误相同)
Postgres|dbserver1|snapshot  After applying the include/exclude list filters, no changes will be captured. Please check your configuration!   [io.debezium.relational.RelationalDatabaseSchema]
Run Code Online (Sandbox Code Playgroud)

我已经(在日志中)验证 Kafka(和模式注册表等)是否正常运行,并且 Debezium 连接器似乎已启动,Postgres iw 正常工作并且创建了数据库和表。

以下是 Debezium 连接器配置:

{
    "name": "banking-postgres-connector",
    "config": {
        "connector.class": "io.debezium.connector.postgresql.PostgresConnector",
        "database.hostname": "postgres",
        "database.port": "5432",
        "database.user": "postgres",
        "database.password": "postgres",
        "database.dbname" : "banking",
        "database.server.name": "dbserver1",
        "database.include.list": "banking",
        "tasks.max": "1",
        "table.include.list": "public.x_account,public.x_party,public.x_product,public.x_transaction"
    }
}
Run Code Online (Sandbox Code Playgroud)

postgresql apache-kafka debezium debezium-engine debezium-server

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