小编lud*_*ics的帖子

SciPy中的并行优化

我有一个简单的功能

def square(x, a=1):
    return [x**2 + a, 2*x]
Run Code Online (Sandbox Code Playgroud)

x对于几个参数,我想最小化它a.我目前有循环,在精神上,做这样的事情:

In [89]: from scipy import optimize

In [90]: res = optimize.minimize(square, 25, method='BFGS', jac=True)

In [91]: [res.x, res.fun]
Out[91]: [array([ 0.]), 1.0]

In [92]: l = lambda x: square(x, 2)

In [93]: res = optimize.minimize(l, 25, method='BFGS', jac=True)

In [94]: [res.x, res.fun]
Out[94]: [array([ 0.]), 2.0]
Run Code Online (Sandbox Code Playgroud)

现在,该功能已经过矢量化

In [98]: square(array([2,3]))
Out[98]: [array([ 5, 10]), array([4, 6])]

In [99]: square(array([2,3]), array([2,3]))
Out[99]: [array([ 6, 12]), array([4, 6])]
Run Code Online (Sandbox Code Playgroud)

这意味着并行而不是循环运行所有优化可能要快得多.这是SciPy可以轻松实现的吗?或任何其他第三方工具?

python optimization scipy

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

SQL Alchemy Relationship加载器在表上留下了锁?

我有非常简单的代码导致我的MySQL数据库挂起:

import sqlalchemy as sa
from sqlalchemy import orm

# creating the engine, the base, etc
import utils
import config

utils.base_init(config)
Base = config.Base

class Parent(Base):
    __tablename__ = 'Parents'
    id = sa.Column(sa.Integer, primary_key=True)
    children = orm.relationship('Child', backref='parent')

class Child(Base):
    id = sa.Column(sa.Integer, primary_key=True)
    parent_id = sa.Column(sa.Integer)

    __tablename__ = 'Children'

    __table_args__ = (sa.ForeignKeyConstraint(
        ['parent_id'],
        ['Parents.id'],
        onupdate='CASCADE', ondelete='CASCADE'),{})

Base.metadata.create_all()

session = orm.sessionmaker(bind=config.Base.metadata.bind)()
p = Parent(id=1)
c1 = Child(id=1)
c2 = Child(id=2)
session.add(p)
session.add(c1)
session.add(c2)
session.commit()

# Works
# Base.metadata.drop_all()

c1.parent
# 2012-08-17 …
Run Code Online (Sandbox Code Playgroud)

python mysql sqlalchemy

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

标签 统计

python ×2

mysql ×1

optimization ×1

scipy ×1

sqlalchemy ×1