小编And*_*rew的帖子

使用Keras和GPU执行超参数搜索的最佳方法?

我目前想在我拥有的简单Keras神经网络上进行超参数搜索。我目前的计划是使用sklearn GridSearchCV功能,并使用keras.utils.multi_gpu_model将其拆分到我可以访问的2个GPU中。我相信这会很好,但是可能仍需要很长时间才能完成搜索。

有没有更有效的方法可以做到这一点?我似乎无法将GridSearch中的n_jobs标志设置为-1,这将使作业并行运行,我只是无法在GPU上执行此操作?

gpu scikit-learn hyperparameters keras

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

CP 求解器可以在特定点初始化吗?

我正在使用 CP-Sat 求解器来优化我正在制定的时间表。然而,现在这个问题需要很长时间才能解决。是否可以用旧结果为求解器提供种子,作为起点,以减少找到最佳结果所需的时间?

python or-tools cp-sat

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

了解如何使用 Google OR -tools 设置软约束

我一直在使用 Google OR-tools 并尝试遵循他们的示例来解决调度问题。然而,python 文档有时很难理解,更复杂的例子 ( https://github.com/google/or-tools/blob/master/examples/python/shift_scheduling_sat.py ) 没有很好地描述。

我希望能够对员工的轮班工作量设置硬限制和软限制。在上面的例子中,我相信这个函数add_soft_sum_constraint()(我已经把它的确切代码放在下面)做了我想做的事情。我想复制它的功能,但我不明白它是如何做到的。

在 2 if 语句中,我不确定deltaexcess变量代表什么,以及为什么它们要添加更多约束,而不是仅向 2 个成本列表添加更多约束,这将在稍后最小化目标时使用。

如果有人对此示例有任何见解,我将不胜感激,谢谢。

def add_soft_sum_constraint(model, works, hard_min, soft_min, min_cost,
                        soft_max, hard_max, max_cost, prefix):

cost_variables = []
cost_coefficients = []
sum_var = model.NewIntVar(hard_min, hard_max, '')
# This adds the hard constraints on the sum.
model.Add(sum_var == sum(works))

# Penalize sums below the soft_min target.
if soft_min > hard_min and min_cost > 0:
    delta = model.NewIntVar(-len(works), len(works), '')
    model.Add(delta == soft_min - …
Run Code Online (Sandbox Code Playgroud)

python or-tools

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

播种 CP-SAT 求解器

在谷歌 OR-tools 库中,“原始”CP-Solver(此处讨论: https: //developers.google.com/optimization/cp/original_cp_solver)可以使用重新播种.ReSeed()。然而,较新的版本,CP-SAT 不能。

我的假设是 CP-SAT 将详尽地尝试您问题中的每个选项,从可行的选项中选取最大值或最小值(取决于您的优化目标)。因为它会尝试所有这些,所以不需要做种,因此该选项对您不可用。

这种理解正确吗?如果是的话,为什么原始求解器有种子?.ReSeed()如果我的说法不正确,那么新 CpSolver 中缺少 是否是一个疏忽?

python or-tools cp-sat

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

使用 Docker 将 Celery 连接到 Redis 时出错

我曾经docker-compose创建过一个包含 redis 和 celery 的 docker 实例。这将成功构建,但是,在我的 python 脚本中,当我尝试将某些内容添加到队列中时,出现以下错误:

Error 8 connecting to redis:6379. nodename nor servname provided, or not known.
Run Code Online (Sandbox Code Playgroud)

我尝试更改我的 celeryconfig 文件地址,并尝试了此处建议的解决方案: https: //github.com/mozilla-services/cliquet/issues/664但我无法修复它。

还有其他人遇到过这样的问题吗?

** example.py 的一部分 **

app = Celery('server', broker='redis://redis:6379/0')
app.config_from_object(celeryconfig)

@app.task(trail=True)
def count_words_at_url(url):
    time.sleep(50)
    resp = requests.get(url)
    return len(resp.text.split())
Run Code Online (Sandbox Code Playgroud)

celeryconfig.py

result_backend = 'redis://redis:6379/0'
broker_url = 'redis://redis:6379/0'
worker_prefetch_multiplier = 1
worker_concurrency  =1
Run Code Online (Sandbox Code Playgroud)

Dockerfile.celery

FROM python:3.6-alpine
WORKDIR /usr/src/app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ulimit -n …
Run Code Online (Sandbox Code Playgroud)

redis celery docker docker-compose

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