小编Ang*_*elo的帖子

DQNAgent的批次大小不能超过1

当我尝试训练批号大于1的代理程序时,它给了我一个例外。我的问题在哪里?

lr = 1e-3
window_length = 1
emb_size = 10
look_back = 6

# "Expert" (regular dqn) model architecture

inp = Input(shape=(look_back,))
emb = Embedding(input_dim=env.action_space.n+1, output_dim = emb_size)(inp) 
rnn = Bidirectional(LSTM(5))(emb)
out = Dense(env.action_space.n, activation='softmax')(rnn)
expert_model = Model(inputs = inp, outputs = out)
expert_model.compile(loss='categorical_crossentropy', optimizer= Adam(lr))

print(expert_model.summary())
# memory
memory = PrioritizedMemory(limit=1000000,  window_length=window_length)

# policy
policy = BoltzmannQPolicy()

# agent
dqn = DQNAgent(model=expert_model, nb_actions=env.action_space.n, policy=policy, memory=memory, 
               enable_double_dqn=False, enable_dueling_network=False, gamma=.9, batch_size = 100, #Here
               target_model_update=1e-2, processor = RecoProcessor())
Run Code Online (Sandbox Code Playgroud)

我直接从keras-rl的代码中打印了一些值,它给出了以下输出:

State[array([0., 0., …
Run Code Online (Sandbox Code Playgroud)

python numpy keras keras-rl

5
推荐指数
0
解决办法
194
查看次数

如何在 MLFlow 模型上保存更多元数据

我正在尝试将模型保存到 MLFlow,但由于我有一个自定义预测管道来检索数据,因此我需要将额外的元数据保存到模型中。

我尝试使用我的自定义签名类,它可以正确完成工作并将模型与额外的元数据保存在 MLModel 文件(YAML 格式)中。但是当想要从 MLFlow 注册表加载模型时,签名并不容易访问。

mlflow.sklearn.log_model(model, "model", signature = signature)
Run Code Online (Sandbox Code Playgroud)

我还尝试在 log_model 函数中保存额外的字典,但它将它保存在 conda.yaml 文件中:

mlflow.sklearn.log_model(model, "model", {"metadata1":"value1", "metadata2":"value2"})
Run Code Online (Sandbox Code Playgroud)

我应该自己做味道吗?还是我自己的 Model 继承?我在这里看到PyFuncModel 收到一些元数据类和解决此问题的实现,但我不知道应该在实验脚本上将我自己的实现传递给 PyFuncModel 的位置。这是一个最小的例子:

import mlflow
import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression

metadata_dic = {"metadata1": "value1", 
                "metadata2": "value2"}

X = np.array([[-2, -1, 0, 1, 2, 1],[-2, -1, 0, 1, 2, 1]]).T
y = np.array([0, 0, 1, 1, 1, 0])

X = pd.DataFrame(X, columns=["X1", "X2"])
y = pd.DataFrame(y, columns=["y"]) …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn mlflow mlops

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

Numpy 聚合平均值

我想计算 numpy 数组的平均值,但在一个窗口内,从数组的开头到数组的实际值。这里\xc2\xb4s 是一个例子:

\n\n
array = [1, 2, 3, 4, 5, 6, ...]\nwindowed_means = [1, 1.5, 2, 2.5, ...]\n
Run Code Online (Sandbox Code Playgroud)\n\n

演算如下:

\n\n
windowed_means = [1/1, (1+2)/2, (1+2+3)/3, (1+2+3+4)/4 , ...]\n
Run Code Online (Sandbox Code Playgroud)\n\n

有什么功能吗?

\n

python numpy

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

创建一年中每小时的系列

我无法在不迭代并在最后一个小时添加一个小时的情况下创建给定年份的Pandas Series每个小时(作为对象),而且这很慢。datetime有没有办法并行地做到这一点。

我的输入是一年,输出应该是Pandas Series那一年的每个小时。

python datetime pandas

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

标签 统计

python ×4

numpy ×2

datetime ×1

keras ×1

keras-rl ×1

mlflow ×1

mlops ×1

pandas ×1

scikit-learn ×1