我正在尝试计算一个简单的点积,但保持原始矩阵的非零值不变.玩具示例:
import numpy as np
A = np.array([[2, 1, 1, 2],
[0, 2, 1, 0],
[1, 0, 1, 1],
[2, 2, 1, 0]])
B = np.array([[ 0.54331039, 0.41018682, 0.1582158 , 0.3486124 ],
[ 0.68804647, 0.29520239, 0.40654206, 0.20473451],
[ 0.69857579, 0.38958572, 0.30361365, 0.32256483],
[ 0.46195299, 0.79863505, 0.22431876, 0.59054473]])
Run Code Online (Sandbox Code Playgroud)
期望的结果:
C = np.array([[ 2. , 1. , 1. , 2. ],
[ 2.07466874, 2. , 1. , 0.73203386],
[ 1. , 1.5984076 , 1. , 1. ],
[ 2. , 2. , …Run Code Online (Sandbox Code Playgroud) 我正在尝试从连接的继承表进行多态加载(我使用Flask-Sqlalchemy)。
class Sip(db.Model):
id = db.Column(db.Integer, primety_key=True)
identity = db.Column(db.String(10))
__mapper_args__ = {'polymorphic_identity': 'sip', 'polymorphic_on': identity}
class Device(Sip):
id = db.Column(db.Integer, db.ForeignKey('sip.id', ondelete='CASCADE'), primary_key=True)
__mapper_args__ = {'polymorphic_identity': 'dev'}
class Line(Sip):
id = db.Column(db.Integer, db.ForeignKey('sip.id', ondelete='CASCADE'), primary_key=True)
__mapper_args__ = {'polymorphic_identity': 'line'}
Run Code Online (Sandbox Code Playgroud)
我有一个Device对象和一个Line对象。当我尝试进行此类查询时:
Sip.query.with_polymorphic(Device).all()
Run Code Online (Sandbox Code Playgroud)
它返回所有对象
[<myapp.models.Device at 0x45cfc50>, <myapp.models.Line at 0x45cfa90>]
Run Code Online (Sandbox Code Playgroud)
当使用Line作为的参数时,情况相同with_polymorphic()。表“ sip”包含所有必需的身份,我可以对其进行检查:
>> Sip.query.with_polymorphic(Device).all()[0].identity
>> u'dev'
>> Sip.query.with_polymorphic(Device).all()[1].identity
>> u'line'
Run Code Online (Sandbox Code Playgroud)
我只是不知道发生了什么事。一切似乎都完全像doc示例。谢谢。
奇怪的行为,我不知道如何解释。我有一个模型 ,Track以及一些相关的points. 我调用 celery 任务来执行一些点计算,它们似乎在方法本身中完全可以访问,但在 celery 任务中不可用。
@shared_task
def my_task(track):
print 'in the task', track.id, track.points.all().count()
def some_method():
t = Track()
t.save()
t = fill_with_points(t) # creating points, attaching them to a Track
t.save()
print 'before the task', track.id, track.points.all().count()
my_task.delay(t)
Run Code Online (Sandbox Code Playgroud)
打印以下内容:
before the task, 21346, 2971
in the task, 21346, 0
Run Code Online (Sandbox Code Playgroud)
但奇怪的是,当我在调用的第一行my_task或调用之前放置 time.sleep(10) 时my_task,效果很好,就像存在一些竞争条件一样。但第一行打印清楚地表明points,当它进行选择查询 ( ) 时,数据库中可用track.points.all().count()。
我正在挖出一块numpy代码,而且有一条我完全不懂的线:
W[:, :, None] * h[None, :, :] * diff[:, None, :]
Run Code Online (Sandbox Code Playgroud)
其中W,h和diff是784x20,20x100和784x100矩阵.乘法结果是784x20x100数组,但我不知道这个计算实际上是做什么的,结果是什么意思.
对于它的价值,线是来自机器学习相关代码,W对应于神经网络层的权重数组,h是层激活,diff是网络目标和假设之间的差异(来自 Sida Wang关于转换自动编码器的论文) .
我有一些模型:
class Place(models.Model):
name = models.CharField(unique=True)
class Bar(Place):
drinks = models.ManyToManyField('Drink')
class Restaurant(Place):
meals = models.ManyToManyField('Meals')
Run Code Online (Sandbox Code Playgroud)
那是一个多桌继承结构,每个酒吧只提供饮料,每个餐厅只提供餐点。但是,我需要每个地方的名称在所有地方都是唯一的 - 因此是父Place模型。
现在,多表继承假定父项和子项是独立的实体。这意味着当我想创建一个 new 时Bar,我应该像这样:
>> parent = Place(name='Myplace')
>> parent.save()
>> child = Bar(place=parent, drinks=mydrinklist)
>> child.save()
Run Code Online (Sandbox Code Playgroud)
但就我而言,Place它不是一个单独的实体:它不应该单独存在。它只是一个有一些限制的共享存储。我想要这样的东西:
>> child = Bar(name='Myplace', drinks=mydrinklist)
>> child.save()
Run Code Online (Sandbox Code Playgroud)
其中name属性自动传递给底层父模型,并Place在save()调用时静默创建模型。SQLAlchemy 可以通过它的多表继承来做到这一点。有没有办法在 Django 中实现相同的目标?