相关疑难解决方法(0)

ValueError:numpy.ndarray 大小已更改,可能表示二进制不兼容。预期来自 C 头文件的 88,来自 PyObject 的 80

从 pyxdameraulevenshtein 导入会出现以下错误,我有

pyxdameraulevenshtein==1.5.3, 
pandas==1.1.4 and 
scikit-learn==0.20.2. 
Numpy is 1.16.1. 
Works well in Python3.6, Issue in Python3.7.
Run Code Online (Sandbox Code Playgroud)

有没有人在 Python3.7 (3.7.9)、docker image - python:3.7-buster 上遇到过类似的问题

__init__.pxd:242: in init pyxdameraulevenshtein
    ???
E   ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject
Run Code Online (Sandbox Code Playgroud)

python numpy pandas scikit-learn python-3.7

73
推荐指数
12
解决办法
8万
查看次数

NotImplementedError:无法将符号张量 (2nd_target:0) 转换为 numpy 数组

我尝试将 2 个损失函数传递给模型,因为Keras 允许这样做。

损失:字符串(目标函数名称)或目标函数或损失实例。见损失。如果模型有多个输出,您可以通过传递字典或损失列表对每个输出使用不同的损失。模型将最小化的损失值将是所有单个损失的总和。

两个损失函数:

def l_2nd(beta):
    def loss_2nd(y_true, y_pred):
        ...
        return K.mean(t)

    return loss_2nd
Run Code Online (Sandbox Code Playgroud)

def l_1st(alpha):
    def loss_1st(y_true, y_pred):
        ...
        return alpha * 2 * tf.linalg.trace(tf.matmul(tf.matmul(Y, L, transpose_a=True), Y)) / batch_size

    return loss_1st
Run Code Online (Sandbox Code Playgroud)

然后我建立模型:

l2 = K.eval(l_2nd(self.beta))
l1 = K.eval(l_1st(self.alpha))
self.model.compile(opt, [l2, l1])
Run Code Online (Sandbox Code Playgroud)

当我训练时,它会产生错误:

1.15.0-rc3 警告:tensorflow:来自 /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/resource_variable_ops.py:1630:调用 BaseResourceVariable。不推荐使用带有约束的init(来自 tensorflow.python.ops.resource_variable_ops)并将在未来版本中删除。说明

更新:如果使用 Keras 将 *_constraint 参数传递给层。

NotImplementedError Traceback (最近一次调用最后一次) in () 47 create_using=nx.DiGraph(), nodetype=None, data=[('weight', int)]) 48 ---> 49 model = SDNE(G, …

python keras tensorflow loss-function

43
推荐指数
3
解决办法
8万
查看次数