提交 a7cd6648 authored 作者: Frédéric Bastien's avatar Frédéric Bastien

Merge pull request #3593 from AlOa/SoftmaxClinkerCrash

Fix a crash when using Softmax with the CLinker
...@@ -171,7 +171,7 @@ class SoftmaxWithBias(gof.Op): ...@@ -171,7 +171,7 @@ class SoftmaxWithBias(gof.Op):
{ {
if (NULL != %(sm)s) Py_XDECREF(%(sm)s); if (NULL != %(sm)s) Py_XDECREF(%(sm)s);
%(sm)s = (PyArrayObject*)PyArray_SimpleNew(2, PyArray_DIMS(%(x)s), %(sm)s = (PyArrayObject*)PyArray_SimpleNew(2, PyArray_DIMS(%(x)s),
PyArray_TYPE((PyArrayObject*) py_%(x)s)); PyArray_TYPE(%(x)s));
if(!%(sm)s) { if(!%(sm)s) {
PyErr_SetString(PyExc_MemoryError, PyErr_SetString(PyExc_MemoryError,
"failed to alloc sm output"); "failed to alloc sm output");
...@@ -375,7 +375,7 @@ class SoftmaxGrad(gof.Op): ...@@ -375,7 +375,7 @@ class SoftmaxGrad(gof.Op):
Py_XDECREF(%(dx)s); Py_XDECREF(%(dx)s);
%(dx)s = (PyArrayObject*) PyArray_SimpleNew(2, %(dx)s = (PyArrayObject*) PyArray_SimpleNew(2,
PyArray_DIMS(%(sm)s), PyArray_DIMS(%(sm)s),
PyArray_TYPE((PyArrayObject*) py_%(sm)s)); PyArray_TYPE(%(sm)s));
if (!%(dx)s) if (!%(dx)s)
{ {
PyErr_SetString(PyExc_MemoryError, PyErr_SetString(PyExc_MemoryError,
...@@ -491,7 +491,7 @@ class Softmax(gof.Op): ...@@ -491,7 +491,7 @@ class Softmax(gof.Op):
{ {
Py_XDECREF(%(sm)s); Py_XDECREF(%(sm)s);
%(sm)s = (PyArrayObject*)PyArray_SimpleNew(2, PyArray_DIMS(%(x)s), %(sm)s = (PyArrayObject*)PyArray_SimpleNew(2, PyArray_DIMS(%(x)s),
PyArray_TYPE((PyArrayObject*) py_%(x)s)); PyArray_TYPE(%(x)s));
if(!%(sm)s) { if(!%(sm)s) {
PyErr_SetString(PyExc_MemoryError, PyErr_SetString(PyExc_MemoryError,
"failed to alloc sm output"); "failed to alloc sm output");
...@@ -908,7 +908,7 @@ class CrossentropySoftmaxArgmax1HotWithBias(gof.Op): ...@@ -908,7 +908,7 @@ class CrossentropySoftmaxArgmax1HotWithBias(gof.Op):
{ {
if (NULL != %(nll)s) Py_XDECREF(%(nll)s); if (NULL != %(nll)s) Py_XDECREF(%(nll)s);
%(nll)s = (PyArrayObject*)PyArray_SimpleNew(1, %(nll)s = (PyArrayObject*)PyArray_SimpleNew(1,
PyArray_DIMS(%(y_idx)s), PyArray_TYPE((PyArrayObject*) py_%(x)s)); PyArray_DIMS(%(y_idx)s), PyArray_TYPE(%(x)s));
if(!%(nll)s) if(!%(nll)s)
{ {
PyErr_SetString(PyExc_MemoryError, PyErr_SetString(PyExc_MemoryError,
...@@ -921,7 +921,7 @@ class CrossentropySoftmaxArgmax1HotWithBias(gof.Op): ...@@ -921,7 +921,7 @@ class CrossentropySoftmaxArgmax1HotWithBias(gof.Op):
{ {
Py_XDECREF(%(am)s); Py_XDECREF(%(am)s);
%(am)s = (PyArrayObject*) PyArray_SimpleNew(1, %(am)s = (PyArrayObject*) PyArray_SimpleNew(1,
PyArray_DIMS(%(y_idx)s), PyArray_TYPE((PyArrayObject*) py_%(y_idx)s)); PyArray_DIMS(%(y_idx)s), PyArray_TYPE(%(y_idx)s));
if(!%(am)s) if(!%(am)s)
{ {
PyErr_SetString(PyExc_MemoryError, PyErr_SetString(PyExc_MemoryError,
...@@ -1095,7 +1095,7 @@ class CrossentropySoftmax1HotWithBiasDx(gof.Op): ...@@ -1095,7 +1095,7 @@ class CrossentropySoftmax1HotWithBiasDx(gof.Op):
if (NULL != %(dx)s) Py_XDECREF(%(dx)s); if (NULL != %(dx)s) Py_XDECREF(%(dx)s);
%(dx)s = (PyArrayObject*) PyArray_SimpleNew(2, %(dx)s = (PyArrayObject*) PyArray_SimpleNew(2,
PyArray_DIMS(%(sm)s), PyArray_DIMS(%(sm)s),
PyArray_TYPE((PyArrayObject*) py_%(sm)s)); PyArray_TYPE(%(sm)s));
if(!%(dx)s) { if(!%(dx)s) {
PyErr_SetString(PyExc_MemoryError, PyErr_SetString(PyExc_MemoryError,
"failed to alloc dx output"); "failed to alloc dx output");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论