prakhar mishra
2018-05-24 10:47:53 UTC
Keras on theano is giving this error. Help!
===============================
00001 #include <Python.h>
00002 #include <iostream>
00003 #include "theano_mod_helper.h"
00004 #include <math.h>
00005 #include <numpy/arrayobject.h>
00006 #include <numpy/arrayscalars.h>
00007 //////////////////////
00008 //// Support Code
00009 //////////////////////
00010
00011 namespace {
00012 struct __struct_compiled_op_0040824c9d256009bbf96cfd9685133e {
00013 PyObject* __ERROR;
00014
00015 PyObject* storage_V3;
00016 PyObject* storage_V5;
00017 PyObject* storage_V7;
00018 PyObject* storage_V9;
00019 PyObject* storage_V1;
00020
00021
00022 __struct_compiled_op_0040824c9d256009bbf96cfd9685133e() {
00023 // This is only somewhat safe because we:
00024 // 1) Are not a virtual class
00025 // 2) Do not use any virtual classes in the members
00026 // 3) Deal with mostly POD and pointers
00027
00028 // If this changes, we would have to revise this, but
for
00029 // now I am tired of chasing segfaults because
00030 // initialization code had an error and some pointer
has
00031 // a junk value.
00032 memset(this, 0, sizeof(*this));
00033 }
00034
~__struct_compiled_op_0040824c9d256009bbf96cfd9685133e(void) {
00035 cleanup();
00036 }
00037
00038 int init(PyObject* __ERROR, PyObject* storage_V3,
PyObject* storage_V5, PyObject* storage_V7, PyObject* storage_V9, PyObject*
storage_V1) {
00039 Py_XINCREF(storage_V3);
00040 Py_XINCREF(storage_V5);
00041 Py_XINCREF(storage_V7);
00042 Py_XINCREF(storage_V9);
00043 Py_XINCREF(storage_V1);
00044 this->storage_V3 = storage_V3;
00045 this->storage_V5 = storage_V5;
00046 this->storage_V7 = storage_V7;
00047 this->storage_V9 = storage_V9;
00048 this->storage_V1 = storage_V1;
00049
00050
00051
00052
00053
00054
00055
00056 this->__ERROR = __ERROR;
00057 return 0;
00058 }
00059 void cleanup(void) {
00060 __label_1:
00061
00062 double __DUMMY_1;
00063 __label_3:
00064
00065 double __DUMMY_3;
00066 __label_5:
00067
00068 double __DUMMY_5;
00069 __label_7:
00070
00071 double __DUMMY_7;
00072 __label_9:
00073
00074 double __DUMMY_9;
00075 __label_12:
00076
00077 double __DUMMY_12;
00078
00079 Py_XDECREF(this->storage_V3);
00080 Py_XDECREF(this->storage_V5);
00081 Py_XDECREF(this->storage_V7);
00082 Py_XDECREF(this->storage_V9);
00083 Py_XDECREF(this->storage_V1);
00084 }
00085 int run(void) {
00086 int __failure = 0;
00087
00088 PyObject* py_V1;
00089
00090 PyArrayObject* V1;
00091
00092 typedef npy_float32 dtype_V1;
00093
00094 PyObject* py_V3;
00095
00096 PyArrayObject* V3;
00097
00098 typedef npy_float32 dtype_V3;
00099
00100 PyObject* py_V5;
00101
00102 PyArrayObject* V5;
00103
00104 typedef npy_int16 dtype_V5;
00105
00106 PyObject* py_V7;
00107
00108 PyArrayObject* V7;
00109
00110 typedef npy_int64 dtype_V7;
00111
00112 PyObject* py_V9;
00113
00114 PyArrayObject* V9;
00115
00116 typedef npy_int64 dtype_V9;
00117
00118 {
00119
00120 py_V1 = PyList_GET_ITEM(storage_V1, 0);
00121 {Py_XINCREF(py_V1);}
00122
00123 if (py_V1 == Py_None)
00124 {
00125
00126 V1 = NULL;
00127
00128 }
00129 else
00130 {
00131
00132 V1 = NULL;
00133 if (py_V1 == Py_None) {
00134 // We can either fail here or set V1 to NULL and
rely on Ops
00135 // using tensors to handle the NULL case, but if
they fail to do so
00136 // they'll end up with nasty segfaults, so this is
public service.
00137 PyErr_SetString(PyExc_ValueError, "expected an
ndarray, not None");
00138 {
00139 __failure = 2;
00140 if (!PyErr_Occurred()) {
00141 PyErr_SetString(PyExc_RuntimeError,
00142 "Unexpected error in an Op's C code. "
00143 "No Python exception was set.");
00144 }
00145 goto __label_2;}
00146 }
00147 if (!PyArray_Check(py_V1)) {
00148 PyErr_SetString(PyExc_ValueError, "expected an
ndarray");
00149 {
00150 __failure = 2;
00151 if (!PyErr_Occurred()) {
00152 PyErr_SetString(PyExc_RuntimeError,
00153 "Unexpected error in an Op's C code. "
00154 "No Python exception was set.");
00155 }
00156 goto __label_2;}
00157 }
00158 // We expect NPY_FLOAT32
00159 if (!PyArray_ISALIGNED((PyArrayObject*) py_V1)) {
00160 PyArrayObject * tmp = (PyArrayObject*) py_V1;
00161 PyErr_Format(PyExc_NotImplementedError,
00162 "expected an aligned array of type
%ld "
00163 "(NPY_FLOAT32), got non-aligned array
of type %ld"
00164 " with %ld dimensions, with 3 last
dims "
00165 "%ld, %ld, %ld"
00166 " and 3 last strides %ld %ld, %ld.",
00167 (long int) NPY_FLOAT32,
00168 (long int)
PyArray_TYPE((PyArrayObject*) py_V1),
00169 (long int) PyArray_NDIM(tmp),
00170 (long int) (PyArray_NDIM(tmp) >= 3 ?
00171 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),
00172 (long int) (PyArray_NDIM(tmp) >= 2 ?
00173 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),
00174 (long int) (PyArray_NDIM(tmp) >= 1 ?
00175 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),
00176 (long int) (PyArray_NDIM(tmp) >= 3 ?
00177 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),
00178 (long int) (PyArray_NDIM(tmp) >= 2 ?
00179 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),
00180 (long int) (PyArray_NDIM(tmp) >= 1 ?
00181 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)
00182 );
00183 {
00184 __failure = 2;
00185 if (!PyErr_Occurred()) {
00186 PyErr_SetString(PyExc_RuntimeError,
00187 "Unexpected error in an Op's C code. "
00188 "No Python exception was set.");
00189 }
00190 goto __label_2;}
00191 }
00192 // This is a TypeError to be consistent with DEBUG_MODE
00193 // Note: DEBUG_MODE also tells the name of the
container
00194 if (PyArray_TYPE((PyArrayObject*) py_V1) !=
NPY_FLOAT32) {
00195 PyErr_Format(PyExc_TypeError,
00196 "expected type_num %d (NPY_FLOAT32)
got %d",
00197 NPY_FLOAT32,
PyArray_TYPE((PyArrayObject*) py_V1));
00198 {
00199 __failure = 2;
00200 if (!PyErr_Occurred()) {
00201 PyErr_SetString(PyExc_RuntimeError,
00202 "Unexpected error in an Op's C code. "
00203 "No Python exception was set.");
00204 }
00205 goto __label_2;}
00206 }
00207
00208 V1 = (PyArrayObject*)(py_V1);
00209 Py_XINCREF(V1);
00210
00211 }
00212
00213 {
00214
00215 py_V3 = PyList_GET_ITEM(storage_V3, 0);
00216 {Py_XINCREF(py_V3);}
00217
00218 V3 = NULL;
00219 if (py_V3 == Py_None) {
00220 // We can either fail here or set V3 to NULL and
rely on Ops
00221 // using tensors to handle the NULL case, but if
they fail to do so
00222 // they'll end up with nasty segfaults, so this is
public service.
00223 PyErr_SetString(PyExc_ValueError, "expected an
ndarray, not None");
00224 {
00225 __failure = 4;
00226 if (!PyErr_Occurred()) {
00227 PyErr_SetString(PyExc_RuntimeError,
00228 "Unexpected error in an Op's C code. "
00229 "No Python exception was set.");
00230 }
00231 goto __label_4;}
00232 }
00233 if (!PyArray_Check(py_V3)) {
00234 PyErr_SetString(PyExc_ValueError, "expected an
ndarray");
00235 {
00236 __failure = 4;
00237 if (!PyErr_Occurred()) {
00238 PyErr_SetString(PyExc_RuntimeError,
00239 "Unexpected error in an Op's C code. "
00240 "No Python exception was set.");
00241 }
00242 goto __label_4;}
00243 }
00244 // We expect NPY_FLOAT32
00245 if (!PyArray_ISALIGNED((PyArrayObject*) py_V3)) {
00246 PyArrayObject * tmp = (PyArrayObject*) py_V3;
00247 PyErr_Format(PyExc_NotImplementedError,
00248 "expected an aligned array of type
%ld "
00249 "(NPY_FLOAT32), got non-aligned array
of type %ld"
00250 " with %ld dimensions, with 3 last
dims "
00251 "%ld, %ld, %ld"
00252 " and 3 last strides %ld %ld, %ld.",
00253 (long int) NPY_FLOAT32,
00254 (long int)
PyArray_TYPE((PyArrayObject*) py_V3),
00255 (long int) PyArray_NDIM(tmp),
00256 (long int) (PyArray_NDIM(tmp) >= 3 ?
00257 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),
00258 (long int) (PyArray_NDIM(tmp) >= 2 ?
00259 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),
00260 (long int) (PyArray_NDIM(tmp) >= 1 ?
00261 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),
00262 (long int) (PyArray_NDIM(tmp) >= 3 ?
00263 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),
00264 (long int) (PyArray_NDIM(tmp) >= 2 ?
00265 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),
00266 (long int) (PyArray_NDIM(tmp) >= 1 ?
00267 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)
00268 );
00269 {
00270 __failure = 4;
00271 if (!PyErr_Occurred()) {
00272 PyErr_SetString(PyExc_RuntimeError,
00273 "Unexpected error in an Op's C code. "
00274 "No Python exception was set.");
00275 }
00276 goto __label_4;}
00277 }
00278 // This is a TypeError to be consistent with DEBUG_MODE
00279 // Note: DEBUG_MODE also tells the name of the
container
00280 if (PyArray_TYPE((PyArrayObject*) py_V3) !=
NPY_FLOAT32) {
00281 PyErr_Format(PyExc_TypeError,
00282 "expected type_num %d (NPY_FLOAT32)
got %d",
00283 NPY_FLOAT32,
PyArray_TYPE((PyArrayObject*) py_V3));
00284 {
00285 __failure = 4;
00286 if (!PyErr_Occurred()) {
00287 PyErr_SetString(PyExc_RuntimeError,
00288 "Unexpected error in an Op's C code. "
00289 "No Python exception was set.");
00290 }
00291 goto __label_4;}
00292 }
00293
00294 V3 = (PyArrayObject*)(py_V3);
00295 Py_XINCREF(V3);
00296
00297 {
00298
00299 py_V5 = PyList_GET_ITEM(storage_V5, 0);
00300 {Py_XINCREF(py_V5);}
00301
00302 V5 = NULL;
00303 if (py_V5 == Py_None) {
00304 // We can either fail here or set V5 to NULL and
rely on Ops
00305 // using tensors to handle the NULL case, but if
they fail to do so
00306 // they'll end up with nasty segfaults, so this is
public service.
00307 PyErr_SetString(PyExc_ValueError, "expected an
ndarray, not None");
00308 {
00309 __failure = 6;
00310 if (!PyErr_Occurred()) {
00311 PyErr_SetString(PyExc_RuntimeError,
00312 "Unexpected error in an Op's C code. "
00313 "No Python exception was set.");
00314 }
00315 goto __label_6;}
00316 }
00317 if (!PyArray_Check(py_V5)) {
00318 PyErr_SetString(PyExc_ValueError, "expected an
ndarray");
00319 {
00320 __failure = 6;
00321 if (!PyErr_Occurred()) {
00322 PyErr_SetString(PyExc_RuntimeError,
00323 "Unexpected error in an Op's C code. "
00324 "No Python exception was set.");
00325 }
00326 goto __label_6;}
00327 }
00328 // We expect NPY_INT16
00329 if (!PyArray_ISALIGNED((PyArrayObject*) py_V5)) {
00330 PyArrayObject * tmp = (PyArrayObject*) py_V5;
00331 PyErr_Format(PyExc_NotImplementedError,
00332 "expected an aligned array of type
%ld "
00333 "(NPY_INT16), got non-aligned array
of type %ld"
00334 " with %ld dimensions, with 3 last
dims "
00335 "%ld, %ld, %ld"
00336 " and 3 last strides %ld %ld, %ld.",
00337 (long int) NPY_INT16,
00338 (long int)
PyArray_TYPE((PyArrayObject*) py_V5),
00339 (long int) PyArray_NDIM(tmp),
00340 (long int) (PyArray_NDIM(tmp) >= 3 ?
00341 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),
00342 (long int) (PyArray_NDIM(tmp) >= 2 ?
00343 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),
00344 (long int) (PyArray_NDIM(tmp) >= 1 ?
00345 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),
00346 (long int) (PyArray_NDIM(tmp) >= 3 ?
00347 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),
00348 (long int) (PyArray_NDIM(tmp) >= 2 ?
00349 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),
00350 (long int) (PyArray_NDIM(tmp) >= 1 ?
00351 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)
00352 );
00353 {
00354 __failure = 6;
00355 if (!PyErr_Occurred()) {
00356 PyErr_SetString(PyExc_RuntimeError,
00357 "Unexpected error in an Op's C code. "
00358 "No Python exception was set.");
00359 }
00360 goto __label_6;}
00361 }
00362 // This is a TypeError to be consistent with DEBUG_MODE
00363 // Note: DEBUG_MODE also tells the name of the
container
00364 if (PyArray_TYPE((PyArrayObject*) py_V5) != NPY_INT16)
{
00365 PyErr_Format(PyExc_TypeError,
00366 "expected type_num %d (NPY_INT16) got
%d",
00367 NPY_INT16,
PyArray_TYPE((PyArrayObject*) py_V5));
00368 {
00369 __failure = 6;
00370 if (!PyErr_Occurred()) {
00371 PyErr_SetString(PyExc_RuntimeError,
00372 "Unexpected error in an Op's C code. "
00373 "No Python exception was set.");
00374 }
00375 goto __label_6;}
00376 }
00377
00378 V5 = (PyArrayObject*)(py_V5);
00379 Py_XINCREF(V5);
00380
00381 {
00382
00383 py_V7 = PyList_GET_ITEM(storage_V7, 0);
00384 {Py_XINCREF(py_V7);}
00385
00386 V7 = NULL;
00387 if (py_V7 == Py_None) {
00388 // We can either fail here or set V7 to NULL and
rely on Ops
00389 // using tensors to handle the NULL case, but if
they fail to do so
00390 // they'll end up with nasty segfaults, so this is
public service.
00391 PyErr_SetString(PyExc_ValueError, "expected an
ndarray, not None");
00392 {
00393 __failure = 8;
00394 if (!PyErr_Occurred()) {
00395 PyErr_SetString(PyExc_RuntimeError,
00396 "Unexpected error in an Op's C code. "
00397 "No Python exception was set.");
00398 }
00399 goto __label_8;}
00400 }
00401 if (!PyArray_Check(py_V7)) {
00402 PyErr_SetString(PyExc_ValueError, "expected an
ndarray");
00403 {
00404 __failure = 8;
00405 if (!PyErr_Occurred()) {
00406 PyErr_SetString(PyExc_RuntimeError,
00407 "Unexpected error in an Op's C code. "
00408 "No Python exception was set.");
00409 }
00410 goto __label_8;}
00411 }
00412 // We expect NPY_INT64
00413 if (!PyArray_ISALIGNED((PyArrayObject*) py_V7)) {
00414 PyArrayObject * tmp = (PyArrayObject*) py_V7;
00415 PyErr_Format(PyExc_NotImplementedError,
00416 "expected an aligned array of type
%ld "
00417 "(NPY_INT64), got non-aligned array
of type %ld"
00418 " with %ld dimensions, with 3 last
dims "
00419 "%ld, %ld, %ld"
00420 " and 3 last strides %ld %ld, %ld.",
00421 (long int) NPY_INT64,
00422 (long int)
PyArray_TYPE((PyArrayObject*) py_V7),
00423 (long int) PyArray_NDIM(tmp),
00424 (long int) (PyArray_NDIM(tmp) >= 3 ?
00425 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),
00426 (long int) (PyArray_NDIM(tmp) >= 2 ?
00427 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),
00428 (long int) (PyArray_NDIM(tmp) >= 1 ?
00429 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),
00430 (long int) (PyArray_NDIM(tmp) >= 3 ?
00431 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),
00432 (long int) (PyArray_NDIM(tmp) >= 2 ?
00433 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),
00434 (long int) (PyArray_NDIM(tmp) >= 1 ?
00435 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)
00436 );
00437 {
00438 __failure = 8;
00439 if (!PyErr_Occurred()) {
00440 PyErr_SetString(PyExc_RuntimeError,
00441 "Unexpected error in an Op's C code. "
00442 "No Python exception was set.");
00443 }
00444 goto __label_8;}
00445 }
00446 // This is a TypeError to be consistent with DEBUG_MODE
00447 // Note: DEBUG_MODE also tells the name of the
container
00448 if (PyArray_TYPE((PyArrayObject*) py_V7) != NPY_INT64)
{
00449 PyErr_Format(PyExc_TypeError,
00450 "expected type_num %d (NPY_INT64) got
%d",
00451 NPY_INT64,
PyArray_TYPE((PyArrayObject*) py_V7));
00452 {
00453 __failure = 8;
00454 if (!PyErr_Occurred()) {
00455 PyErr_SetString(PyExc_RuntimeError,
00456 "Unexpected error in an Op's C code. "
00457 "No Python exception was set.");
00458 }
00459 goto __label_8;}
00460 }
00461
00462 V7 = (PyArrayObject*)(py_V7);
00463 Py_XINCREF(V7);
00464
00465 {
00466
00467 py_V9 = PyList_GET_ITEM(storage_V9, 0);
00468 {Py_XINCREF(py_V9);}
00469
00470 V9 = NULL;
00471 if (py_V9 == Py_None) {
00472 // We can either fail here or set V9 to NULL and
rely on Ops
00473 // using tensors to handle the NULL case, but if
they fail to do so
00474 // they'll end up with nasty segfaults, so this is
public service.
00475 PyErr_SetString(PyExc_ValueError, "expected an
ndarray, not None");
00476 {
00477 __failure = 10;
00478 if (!PyErr_Occurred()) {
00479 PyErr_SetString(PyExc_RuntimeError,
00480 "Unexpected error in an Op's C code. "
00481 "No Python exception was set.");
00482 }
00483 goto __label_10;}
00484 }
00485 if (!PyArray_Check(py_V9)) {
00486 PyErr_SetString(PyExc_ValueError, "expected an
ndarray");
00487 {
00488 __failure = 10;
00489 if (!PyErr_Occurred()) {
00490 PyErr_SetString(PyExc_RuntimeError,
00491 "Unexpected error in an Op's C code. "
00492 "No Python exception was set.");
00493 }
00494 goto __label_10;}
00495 }
00496 // We expect NPY_INT64
00497 if (!PyArray_ISALIGNED((PyArrayObject*) py_V9)) {
00498 PyArrayObject * tmp = (PyArrayObject*) py_V9;
00499 PyErr_Format(PyExc_NotImplementedError,
00500 "expected an aligned array of type
%ld "
00501 "(NPY_INT64), got non-aligned array
of type %ld"
00502 " with %ld dimensions, with 3 last
dims "
00503 "%ld, %ld, %ld"
00504 " and 3 last strides %ld %ld, %ld.",
00505 (long int) NPY_INT64,
00506 (long int)
PyArray_TYPE((PyArrayObject*) py_V9),
00507 (long int) PyArray_NDIM(tmp),
00508 (long int) (PyArray_NDIM(tmp) >= 3 ?
00509 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),
00510 (long int) (PyArray_NDIM(tmp) >= 2 ?
00511 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),
00512 (long int) (PyArray_NDIM(tmp) >= 1 ?
00513 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),
00514 (long int) (PyArray_NDIM(tmp) >= 3 ?
00515 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),
00516 (long int) (PyArray_NDIM(tmp) >= 2 ?
00517 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),
00518 (long int) (PyArray_NDIM(tmp) >= 1 ?
00519 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)
00520 );
00521 {
00522 __failure = 10;
00523 if (!PyErr_Occurred()) {
00524 PyErr_SetString(PyExc_RuntimeError,
00525 "Unexpected error in an Op's C code. "
00526 "No Python exception was set.");
00527 }
00528 goto __label_10;}
00529 }
00530 // This is a TypeError to be consistent with DEBUG_MODE
00531 // Note: DEBUG_MODE also tells the name of the
container
00532 if (PyArray_TYPE((PyArrayObject*) py_V9) != NPY_INT64)
{
00533 PyErr_Format(PyExc_TypeError,
00534 "expected type_num %d (NPY_INT64) got
%d",
00535 NPY_INT64,
PyArray_TYPE((PyArrayObject*) py_V9));
00536 {
00537 __failure = 10;
00538 if (!PyErr_Occurred()) {
00539 PyErr_SetString(PyExc_RuntimeError,
00540 "Unexpected error in an Op's C code. "
00541 "No Python exception was set.");
00542 }
00543 goto __label_10;}
00544 }
00545
00546 V9 = (PyArrayObject*)(py_V9);
00547 Py_XINCREF(V9);
00548
00549 {
00550 // Op class Alloc
00551
00552 npy_intp shape[3];
00553
00554 shape[0] = ((dtype_V5*) PyArray_DATA(V5))[0];
00555
00556 shape[1] = ((dtype_V7*) PyArray_DATA(V7))[0];
00557
00558 shape[2] = ((dtype_V9*) PyArray_DATA(V9))[0];
00559
00560 int need_new_out = (NULL == V1);
00561 for (int i = 0; i < 3; i++)
00562 need_new_out = (need_new_out
00563 || (PyArray_DIMS(V1)[i] !=
shape[i]));
00564
00565 if (need_new_out)
00566 {
00567 Py_XDECREF(V1);
00568 V1 = (PyArrayObject*) PyArray_SimpleNew(3,
00569 shape, PyArray_TYPE((PyArrayObject*) py_V3));
00570 if (!V1)
00571 {
00572 PyErr_SetString(PyExc_MemoryError, "alloc
failed");
00573 {
00574 __failure = 11;
00575 if (!PyErr_Occurred()) {
00576 PyErr_SetString(PyExc_RuntimeError,
00577 "Unexpected error in an Op's C code. "
00578 "No Python exception was set.");
00579 }
00580 goto __label_11;}
00581 }
00582 }
00583
00584 // This function takes care of broadcasting
00585 if (PyArray_CopyInto(V1, V3) == -1)
00586 {
00587 __failure = 11;
00588 if (!PyErr_Occurred()) {
00589 PyErr_SetString(PyExc_RuntimeError,
00590 "Unexpected error in an Op's C code. "
00591 "No Python exception was set.");
00592 }
00593 goto __label_11;}
00594 __label_11:
00595
00596 double __DUMMY_11;
00597
00598 }
00599 __label_10:
00600
00601 if (V9) {
00602 Py_XDECREF(V9);
00603 }
00604
00605 {Py_XDECREF(py_V9);}
00606
00607 double __DUMMY_10;
00608
00609 }
00610 __label_8:
00611
00612 if (V7) {
00613 Py_XDECREF(V7);
00614 }
00615
00616 {Py_XDECREF(py_V7);}
00617
00618 double __DUMMY_8;
00619
00620 }
00621 __label_6:
00622
00623 if (V5) {
00624 Py_XDECREF(V5);
00625 }
00626
00627 {Py_XDECREF(py_V5);}
00628
00629 double __DUMMY_6;
00630
00631 }
00632 __label_4:
00633
00634 if (V3) {
00635 Py_XDECREF(V3);
00636 }
00637
00638 {Py_XDECREF(py_V3);}
00639
00640 double __DUMMY_4;
00641
00642 }
00643 __label_2:
00644
00645 if (!__failure) {
00646
00647 {Py_XDECREF(py_V1);}
00648 if (!V1) {
00649 Py_INCREF(Py_None);
00650 py_V1 = Py_None;
00651 }
00652 else if ((void*)py_V1 != (void*)V1) {
00653 py_V1 = (PyObject*)V1;
00654 }
00655
00656 {Py_XINCREF(py_V1);}
00657
00658 if (V1 && !PyArray_ISALIGNED((PyArrayObject*) py_V1)) {
00659 PyErr_Format(PyExc_NotImplementedError,
00660 "c_sync: expected an aligned array, got
non-aligned array of type %ld"
00661 " with %ld dimensions, with 3 last dims "
00662 "%ld, %ld, %ld"
00663 " and 3 last strides %ld %ld, %ld.",
00664 (long int) PyArray_TYPE((PyArrayObject*)
py_V1),
00665 (long int) PyArray_NDIM(V1),
00666 (long int) (PyArray_NDIM(V1) >= 3 ?
00667 PyArray_DIMS(V1)[PyArray_NDIM(V1)-3] : -1),
00668 (long int) (PyArray_NDIM(V1) >= 2 ?
00669 PyArray_DIMS(V1)[PyArray_NDIM(V1)-2] : -1),
00670 (long int) (PyArray_NDIM(V1) >= 1 ?
00671 PyArray_DIMS(V1)[PyArray_NDIM(V1)-1] : -1),
00672 (long int) (PyArray_NDIM(V1) >= 3 ?
00673 PyArray_STRIDES(V1)[PyArray_NDIM(V1)-3] : -1),
00674 (long int) (PyArray_NDIM(V1) >= 2 ?
00675 PyArray_STRIDES(V1)[PyArray_NDIM(V1)-2] : -1),
00676 (long int) (PyArray_NDIM(V1) >= 1 ?
00677 PyArray_STRIDES(V1)[PyArray_NDIM(V1)-1] : -1)
00678 );
00679 {
00680 __failure = 2;
00681 if (!PyErr_Occurred()) {
00682 PyErr_SetString(PyExc_RuntimeError,
00683 "Unexpected error in an Op's C code. "
00684 "No Python exception was set.");
00685 }
00686 goto __label_2;}
00687 }
00688
00689 PyObject* old = PyList_GET_ITEM(storage_V1, 0);
00690 {Py_XINCREF(py_V1);}
00691 PyList_SET_ITEM(storage_V1, 0, py_V1);
00692 {Py_XDECREF(old);}
00693 }
00694
00695 if (V1) {
00696 Py_XDECREF(V1);
00697 }
00698
00699 {Py_XDECREF(py_V1);}
00700
00701 double __DUMMY_2;
00702
00703 }
00704
00705
00706 if (__failure) {
00707 // When there is a failure, this code puts the
exception
00708 // in __ERROR.
00709 PyObject* err_type = NULL;
00710 PyObject* err_msg = NULL;
00711 PyObject* err_traceback = NULL;
00712 PyErr_Fetch(&err_type, &err_msg, &err_traceback);
00713 if (!err_type) {err_type = Py_None;Py_INCREF(Py_None);}
00714 if (!err_msg) {err_msg = Py_None; Py_INCREF(Py_None);}
00715 if (!err_traceback) {err_traceback = Py_None;
Py_INCREF(Py_None);}
00716 PyObject* old_err_type = PyList_GET_ITEM(__ERROR, 0);
00717 PyObject* old_err_msg = PyList_GET_ITEM(__ERROR, 1);
00718 PyObject* old_err_traceback = PyList_GET_ITEM(__ERROR,
2);
00719 PyList_SET_ITEM(__ERROR, 0, err_type);
00720 PyList_SET_ITEM(__ERROR, 1, err_msg);
00721 PyList_SET_ITEM(__ERROR, 2, err_traceback);
00722 {Py_XDECREF(old_err_type);}
00723 {Py_XDECREF(old_err_msg);}
00724 {Py_XDECREF(old_err_traceback);}
00725 }
00726 // The failure code is returned to index what code block
failed.
00727 return __failure;
00728
00729 }
00730 };
00731 }
00732
00733
00734 static int
__struct_compiled_op_0040824c9d256009bbf96cfd9685133e_executor(__struct_compiled_op_0040824c9d256009bbf96cfd9685133e*
self) {
00735 return self->run();
00736 }
00737
00738 static void
__struct_compiled_op_0040824c9d256009bbf96cfd9685133e_destructor(void*
executor, void* self) {
00739 delete
((__struct_compiled_op_0040824c9d256009bbf96cfd9685133e*)self);
00740 }
00741
00742 //////////////////////
00743 //// Functions
00744 //////////////////////
00745 static PyObject * instantiate(PyObject * self, PyObject *argtuple)
{
00746 assert(PyTuple_Check(argtuple));
00747 if (6 != PyTuple_Size(argtuple)){
00748 PyErr_Format(PyExc_TypeError, "Wrong number of arguments,
expected 6, got %i", (int)PyTuple_Size(argtuple));
00749 return NULL;
00750 }
00751 __struct_compiled_op_0040824c9d256009bbf96cfd9685133e*
struct_ptr = new __struct_compiled_op_0040824c9d256009bbf96cfd9685133e();
00752 if (struct_ptr->init( PyTuple_GET_ITEM(argtuple,
0),PyTuple_GET_ITEM(argtuple, 1),PyTuple_GET_ITEM(argtuple,
2),PyTuple_GET_ITEM(argtuple, 3),PyTuple_GET_ITEM(argtuple,
4),PyTuple_GET_ITEM(argtuple, 5) ) != 0) {
00753 delete struct_ptr;
00754 return NULL;
00755 }
00756 PyObject* thunk =
PyCObject_FromVoidPtrAndDesc((void*)(&__struct_compiled_op_0040824c9d256009bbf96cfd9685133e_executor),
struct_ptr,
__struct_compiled_op_0040824c9d256009bbf96cfd9685133e_destructor);
00757 return thunk; }
00758
00759 //////////////////////
00760 //// Module init
00761 //////////////////////
00762 static PyMethodDef MyMethods[] = {
00763 {"instantiate", instantiate, METH_VARARGS, "undocumented"} ,
00764 {NULL, NULL, 0, NULL}
00765 };
00766 PyMODINIT_FUNC init0040824c9d256009bbf96cfd9685133e(void){
00767 import_array();
00768 (void) Py_InitModule("0040824c9d256009bbf96cfd9685133e",
MyMethods);
00769 }
00770
===============================
Problem occurred during compilation with the command line below:
/usr/bin/g++ -shared -g -O3 -fno-math-errno -Wno-unused-label
-Wno-unused-variable -Wno-write-strings -march=broadwell -mmmx -mno-3dnow
-msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha
-mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2
-mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd
-mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave
-mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf
-mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq
-mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-clwb
-mno-pcommit -mno-mwaitx --param l1-cache-size=32 --param
l1-cache-line-size=64 --param l2-cache-size=46080 -mtune=broadwell
-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -m64 -fPIC
-I/usr/local/lib/python2.7/site-packages/numpy/core/include
-I/usr/local/include/python2.7
-I/usr/local/lib/python2.7/site-packages/theano/gof -L/usr/local/lib
-fvisibility=hidden -o
/home/ubuntu/.theano/compiledir_Linux-4.4--generic-x86_64-with-debian-stretch-sid-x86_64-2.7.13-64/tmpy72QOL/0040824c9d256009bbf96cfd9685133e.so
/home/ubuntu/.theano/compiledir_Linux-4.4--generic-x86_64-with-debian-stretch-sid-x86_64-2.7.13-64/tmpy72QOL/mod.cpp
-lpython2.7
Exception: ('The following error happened while compiling the node',
Alloc(InplaceDimShuffle{0,x}.0, TensorConstant{128}, Shape_i{0}.0,
TensorConstant{1}), '\n', 'Compilation failed (return status=-2): ',
'[Alloc(<TensorType(float32, col)>, TensorConstant{128}, <TensorType(int64,
scalar)>, TensorConstant{1})]')
===============================
00001 #include <Python.h>
00002 #include <iostream>
00003 #include "theano_mod_helper.h"
00004 #include <math.h>
00005 #include <numpy/arrayobject.h>
00006 #include <numpy/arrayscalars.h>
00007 //////////////////////
00008 //// Support Code
00009 //////////////////////
00010
00011 namespace {
00012 struct __struct_compiled_op_0040824c9d256009bbf96cfd9685133e {
00013 PyObject* __ERROR;
00014
00015 PyObject* storage_V3;
00016 PyObject* storage_V5;
00017 PyObject* storage_V7;
00018 PyObject* storage_V9;
00019 PyObject* storage_V1;
00020
00021
00022 __struct_compiled_op_0040824c9d256009bbf96cfd9685133e() {
00023 // This is only somewhat safe because we:
00024 // 1) Are not a virtual class
00025 // 2) Do not use any virtual classes in the members
00026 // 3) Deal with mostly POD and pointers
00027
00028 // If this changes, we would have to revise this, but
for
00029 // now I am tired of chasing segfaults because
00030 // initialization code had an error and some pointer
has
00031 // a junk value.
00032 memset(this, 0, sizeof(*this));
00033 }
00034
~__struct_compiled_op_0040824c9d256009bbf96cfd9685133e(void) {
00035 cleanup();
00036 }
00037
00038 int init(PyObject* __ERROR, PyObject* storage_V3,
PyObject* storage_V5, PyObject* storage_V7, PyObject* storage_V9, PyObject*
storage_V1) {
00039 Py_XINCREF(storage_V3);
00040 Py_XINCREF(storage_V5);
00041 Py_XINCREF(storage_V7);
00042 Py_XINCREF(storage_V9);
00043 Py_XINCREF(storage_V1);
00044 this->storage_V3 = storage_V3;
00045 this->storage_V5 = storage_V5;
00046 this->storage_V7 = storage_V7;
00047 this->storage_V9 = storage_V9;
00048 this->storage_V1 = storage_V1;
00049
00050
00051
00052
00053
00054
00055
00056 this->__ERROR = __ERROR;
00057 return 0;
00058 }
00059 void cleanup(void) {
00060 __label_1:
00061
00062 double __DUMMY_1;
00063 __label_3:
00064
00065 double __DUMMY_3;
00066 __label_5:
00067
00068 double __DUMMY_5;
00069 __label_7:
00070
00071 double __DUMMY_7;
00072 __label_9:
00073
00074 double __DUMMY_9;
00075 __label_12:
00076
00077 double __DUMMY_12;
00078
00079 Py_XDECREF(this->storage_V3);
00080 Py_XDECREF(this->storage_V5);
00081 Py_XDECREF(this->storage_V7);
00082 Py_XDECREF(this->storage_V9);
00083 Py_XDECREF(this->storage_V1);
00084 }
00085 int run(void) {
00086 int __failure = 0;
00087
00088 PyObject* py_V1;
00089
00090 PyArrayObject* V1;
00091
00092 typedef npy_float32 dtype_V1;
00093
00094 PyObject* py_V3;
00095
00096 PyArrayObject* V3;
00097
00098 typedef npy_float32 dtype_V3;
00099
00100 PyObject* py_V5;
00101
00102 PyArrayObject* V5;
00103
00104 typedef npy_int16 dtype_V5;
00105
00106 PyObject* py_V7;
00107
00108 PyArrayObject* V7;
00109
00110 typedef npy_int64 dtype_V7;
00111
00112 PyObject* py_V9;
00113
00114 PyArrayObject* V9;
00115
00116 typedef npy_int64 dtype_V9;
00117
00118 {
00119
00120 py_V1 = PyList_GET_ITEM(storage_V1, 0);
00121 {Py_XINCREF(py_V1);}
00122
00123 if (py_V1 == Py_None)
00124 {
00125
00126 V1 = NULL;
00127
00128 }
00129 else
00130 {
00131
00132 V1 = NULL;
00133 if (py_V1 == Py_None) {
00134 // We can either fail here or set V1 to NULL and
rely on Ops
00135 // using tensors to handle the NULL case, but if
they fail to do so
00136 // they'll end up with nasty segfaults, so this is
public service.
00137 PyErr_SetString(PyExc_ValueError, "expected an
ndarray, not None");
00138 {
00139 __failure = 2;
00140 if (!PyErr_Occurred()) {
00141 PyErr_SetString(PyExc_RuntimeError,
00142 "Unexpected error in an Op's C code. "
00143 "No Python exception was set.");
00144 }
00145 goto __label_2;}
00146 }
00147 if (!PyArray_Check(py_V1)) {
00148 PyErr_SetString(PyExc_ValueError, "expected an
ndarray");
00149 {
00150 __failure = 2;
00151 if (!PyErr_Occurred()) {
00152 PyErr_SetString(PyExc_RuntimeError,
00153 "Unexpected error in an Op's C code. "
00154 "No Python exception was set.");
00155 }
00156 goto __label_2;}
00157 }
00158 // We expect NPY_FLOAT32
00159 if (!PyArray_ISALIGNED((PyArrayObject*) py_V1)) {
00160 PyArrayObject * tmp = (PyArrayObject*) py_V1;
00161 PyErr_Format(PyExc_NotImplementedError,
00162 "expected an aligned array of type
%ld "
00163 "(NPY_FLOAT32), got non-aligned array
of type %ld"
00164 " with %ld dimensions, with 3 last
dims "
00165 "%ld, %ld, %ld"
00166 " and 3 last strides %ld %ld, %ld.",
00167 (long int) NPY_FLOAT32,
00168 (long int)
PyArray_TYPE((PyArrayObject*) py_V1),
00169 (long int) PyArray_NDIM(tmp),
00170 (long int) (PyArray_NDIM(tmp) >= 3 ?
00171 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),
00172 (long int) (PyArray_NDIM(tmp) >= 2 ?
00173 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),
00174 (long int) (PyArray_NDIM(tmp) >= 1 ?
00175 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),
00176 (long int) (PyArray_NDIM(tmp) >= 3 ?
00177 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),
00178 (long int) (PyArray_NDIM(tmp) >= 2 ?
00179 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),
00180 (long int) (PyArray_NDIM(tmp) >= 1 ?
00181 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)
00182 );
00183 {
00184 __failure = 2;
00185 if (!PyErr_Occurred()) {
00186 PyErr_SetString(PyExc_RuntimeError,
00187 "Unexpected error in an Op's C code. "
00188 "No Python exception was set.");
00189 }
00190 goto __label_2;}
00191 }
00192 // This is a TypeError to be consistent with DEBUG_MODE
00193 // Note: DEBUG_MODE also tells the name of the
container
00194 if (PyArray_TYPE((PyArrayObject*) py_V1) !=
NPY_FLOAT32) {
00195 PyErr_Format(PyExc_TypeError,
00196 "expected type_num %d (NPY_FLOAT32)
got %d",
00197 NPY_FLOAT32,
PyArray_TYPE((PyArrayObject*) py_V1));
00198 {
00199 __failure = 2;
00200 if (!PyErr_Occurred()) {
00201 PyErr_SetString(PyExc_RuntimeError,
00202 "Unexpected error in an Op's C code. "
00203 "No Python exception was set.");
00204 }
00205 goto __label_2;}
00206 }
00207
00208 V1 = (PyArrayObject*)(py_V1);
00209 Py_XINCREF(V1);
00210
00211 }
00212
00213 {
00214
00215 py_V3 = PyList_GET_ITEM(storage_V3, 0);
00216 {Py_XINCREF(py_V3);}
00217
00218 V3 = NULL;
00219 if (py_V3 == Py_None) {
00220 // We can either fail here or set V3 to NULL and
rely on Ops
00221 // using tensors to handle the NULL case, but if
they fail to do so
00222 // they'll end up with nasty segfaults, so this is
public service.
00223 PyErr_SetString(PyExc_ValueError, "expected an
ndarray, not None");
00224 {
00225 __failure = 4;
00226 if (!PyErr_Occurred()) {
00227 PyErr_SetString(PyExc_RuntimeError,
00228 "Unexpected error in an Op's C code. "
00229 "No Python exception was set.");
00230 }
00231 goto __label_4;}
00232 }
00233 if (!PyArray_Check(py_V3)) {
00234 PyErr_SetString(PyExc_ValueError, "expected an
ndarray");
00235 {
00236 __failure = 4;
00237 if (!PyErr_Occurred()) {
00238 PyErr_SetString(PyExc_RuntimeError,
00239 "Unexpected error in an Op's C code. "
00240 "No Python exception was set.");
00241 }
00242 goto __label_4;}
00243 }
00244 // We expect NPY_FLOAT32
00245 if (!PyArray_ISALIGNED((PyArrayObject*) py_V3)) {
00246 PyArrayObject * tmp = (PyArrayObject*) py_V3;
00247 PyErr_Format(PyExc_NotImplementedError,
00248 "expected an aligned array of type
%ld "
00249 "(NPY_FLOAT32), got non-aligned array
of type %ld"
00250 " with %ld dimensions, with 3 last
dims "
00251 "%ld, %ld, %ld"
00252 " and 3 last strides %ld %ld, %ld.",
00253 (long int) NPY_FLOAT32,
00254 (long int)
PyArray_TYPE((PyArrayObject*) py_V3),
00255 (long int) PyArray_NDIM(tmp),
00256 (long int) (PyArray_NDIM(tmp) >= 3 ?
00257 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),
00258 (long int) (PyArray_NDIM(tmp) >= 2 ?
00259 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),
00260 (long int) (PyArray_NDIM(tmp) >= 1 ?
00261 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),
00262 (long int) (PyArray_NDIM(tmp) >= 3 ?
00263 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),
00264 (long int) (PyArray_NDIM(tmp) >= 2 ?
00265 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),
00266 (long int) (PyArray_NDIM(tmp) >= 1 ?
00267 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)
00268 );
00269 {
00270 __failure = 4;
00271 if (!PyErr_Occurred()) {
00272 PyErr_SetString(PyExc_RuntimeError,
00273 "Unexpected error in an Op's C code. "
00274 "No Python exception was set.");
00275 }
00276 goto __label_4;}
00277 }
00278 // This is a TypeError to be consistent with DEBUG_MODE
00279 // Note: DEBUG_MODE also tells the name of the
container
00280 if (PyArray_TYPE((PyArrayObject*) py_V3) !=
NPY_FLOAT32) {
00281 PyErr_Format(PyExc_TypeError,
00282 "expected type_num %d (NPY_FLOAT32)
got %d",
00283 NPY_FLOAT32,
PyArray_TYPE((PyArrayObject*) py_V3));
00284 {
00285 __failure = 4;
00286 if (!PyErr_Occurred()) {
00287 PyErr_SetString(PyExc_RuntimeError,
00288 "Unexpected error in an Op's C code. "
00289 "No Python exception was set.");
00290 }
00291 goto __label_4;}
00292 }
00293
00294 V3 = (PyArrayObject*)(py_V3);
00295 Py_XINCREF(V3);
00296
00297 {
00298
00299 py_V5 = PyList_GET_ITEM(storage_V5, 0);
00300 {Py_XINCREF(py_V5);}
00301
00302 V5 = NULL;
00303 if (py_V5 == Py_None) {
00304 // We can either fail here or set V5 to NULL and
rely on Ops
00305 // using tensors to handle the NULL case, but if
they fail to do so
00306 // they'll end up with nasty segfaults, so this is
public service.
00307 PyErr_SetString(PyExc_ValueError, "expected an
ndarray, not None");
00308 {
00309 __failure = 6;
00310 if (!PyErr_Occurred()) {
00311 PyErr_SetString(PyExc_RuntimeError,
00312 "Unexpected error in an Op's C code. "
00313 "No Python exception was set.");
00314 }
00315 goto __label_6;}
00316 }
00317 if (!PyArray_Check(py_V5)) {
00318 PyErr_SetString(PyExc_ValueError, "expected an
ndarray");
00319 {
00320 __failure = 6;
00321 if (!PyErr_Occurred()) {
00322 PyErr_SetString(PyExc_RuntimeError,
00323 "Unexpected error in an Op's C code. "
00324 "No Python exception was set.");
00325 }
00326 goto __label_6;}
00327 }
00328 // We expect NPY_INT16
00329 if (!PyArray_ISALIGNED((PyArrayObject*) py_V5)) {
00330 PyArrayObject * tmp = (PyArrayObject*) py_V5;
00331 PyErr_Format(PyExc_NotImplementedError,
00332 "expected an aligned array of type
%ld "
00333 "(NPY_INT16), got non-aligned array
of type %ld"
00334 " with %ld dimensions, with 3 last
dims "
00335 "%ld, %ld, %ld"
00336 " and 3 last strides %ld %ld, %ld.",
00337 (long int) NPY_INT16,
00338 (long int)
PyArray_TYPE((PyArrayObject*) py_V5),
00339 (long int) PyArray_NDIM(tmp),
00340 (long int) (PyArray_NDIM(tmp) >= 3 ?
00341 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),
00342 (long int) (PyArray_NDIM(tmp) >= 2 ?
00343 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),
00344 (long int) (PyArray_NDIM(tmp) >= 1 ?
00345 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),
00346 (long int) (PyArray_NDIM(tmp) >= 3 ?
00347 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),
00348 (long int) (PyArray_NDIM(tmp) >= 2 ?
00349 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),
00350 (long int) (PyArray_NDIM(tmp) >= 1 ?
00351 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)
00352 );
00353 {
00354 __failure = 6;
00355 if (!PyErr_Occurred()) {
00356 PyErr_SetString(PyExc_RuntimeError,
00357 "Unexpected error in an Op's C code. "
00358 "No Python exception was set.");
00359 }
00360 goto __label_6;}
00361 }
00362 // This is a TypeError to be consistent with DEBUG_MODE
00363 // Note: DEBUG_MODE also tells the name of the
container
00364 if (PyArray_TYPE((PyArrayObject*) py_V5) != NPY_INT16)
{
00365 PyErr_Format(PyExc_TypeError,
00366 "expected type_num %d (NPY_INT16) got
%d",
00367 NPY_INT16,
PyArray_TYPE((PyArrayObject*) py_V5));
00368 {
00369 __failure = 6;
00370 if (!PyErr_Occurred()) {
00371 PyErr_SetString(PyExc_RuntimeError,
00372 "Unexpected error in an Op's C code. "
00373 "No Python exception was set.");
00374 }
00375 goto __label_6;}
00376 }
00377
00378 V5 = (PyArrayObject*)(py_V5);
00379 Py_XINCREF(V5);
00380
00381 {
00382
00383 py_V7 = PyList_GET_ITEM(storage_V7, 0);
00384 {Py_XINCREF(py_V7);}
00385
00386 V7 = NULL;
00387 if (py_V7 == Py_None) {
00388 // We can either fail here or set V7 to NULL and
rely on Ops
00389 // using tensors to handle the NULL case, but if
they fail to do so
00390 // they'll end up with nasty segfaults, so this is
public service.
00391 PyErr_SetString(PyExc_ValueError, "expected an
ndarray, not None");
00392 {
00393 __failure = 8;
00394 if (!PyErr_Occurred()) {
00395 PyErr_SetString(PyExc_RuntimeError,
00396 "Unexpected error in an Op's C code. "
00397 "No Python exception was set.");
00398 }
00399 goto __label_8;}
00400 }
00401 if (!PyArray_Check(py_V7)) {
00402 PyErr_SetString(PyExc_ValueError, "expected an
ndarray");
00403 {
00404 __failure = 8;
00405 if (!PyErr_Occurred()) {
00406 PyErr_SetString(PyExc_RuntimeError,
00407 "Unexpected error in an Op's C code. "
00408 "No Python exception was set.");
00409 }
00410 goto __label_8;}
00411 }
00412 // We expect NPY_INT64
00413 if (!PyArray_ISALIGNED((PyArrayObject*) py_V7)) {
00414 PyArrayObject * tmp = (PyArrayObject*) py_V7;
00415 PyErr_Format(PyExc_NotImplementedError,
00416 "expected an aligned array of type
%ld "
00417 "(NPY_INT64), got non-aligned array
of type %ld"
00418 " with %ld dimensions, with 3 last
dims "
00419 "%ld, %ld, %ld"
00420 " and 3 last strides %ld %ld, %ld.",
00421 (long int) NPY_INT64,
00422 (long int)
PyArray_TYPE((PyArrayObject*) py_V7),
00423 (long int) PyArray_NDIM(tmp),
00424 (long int) (PyArray_NDIM(tmp) >= 3 ?
00425 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),
00426 (long int) (PyArray_NDIM(tmp) >= 2 ?
00427 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),
00428 (long int) (PyArray_NDIM(tmp) >= 1 ?
00429 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),
00430 (long int) (PyArray_NDIM(tmp) >= 3 ?
00431 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),
00432 (long int) (PyArray_NDIM(tmp) >= 2 ?
00433 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),
00434 (long int) (PyArray_NDIM(tmp) >= 1 ?
00435 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)
00436 );
00437 {
00438 __failure = 8;
00439 if (!PyErr_Occurred()) {
00440 PyErr_SetString(PyExc_RuntimeError,
00441 "Unexpected error in an Op's C code. "
00442 "No Python exception was set.");
00443 }
00444 goto __label_8;}
00445 }
00446 // This is a TypeError to be consistent with DEBUG_MODE
00447 // Note: DEBUG_MODE also tells the name of the
container
00448 if (PyArray_TYPE((PyArrayObject*) py_V7) != NPY_INT64)
{
00449 PyErr_Format(PyExc_TypeError,
00450 "expected type_num %d (NPY_INT64) got
%d",
00451 NPY_INT64,
PyArray_TYPE((PyArrayObject*) py_V7));
00452 {
00453 __failure = 8;
00454 if (!PyErr_Occurred()) {
00455 PyErr_SetString(PyExc_RuntimeError,
00456 "Unexpected error in an Op's C code. "
00457 "No Python exception was set.");
00458 }
00459 goto __label_8;}
00460 }
00461
00462 V7 = (PyArrayObject*)(py_V7);
00463 Py_XINCREF(V7);
00464
00465 {
00466
00467 py_V9 = PyList_GET_ITEM(storage_V9, 0);
00468 {Py_XINCREF(py_V9);}
00469
00470 V9 = NULL;
00471 if (py_V9 == Py_None) {
00472 // We can either fail here or set V9 to NULL and
rely on Ops
00473 // using tensors to handle the NULL case, but if
they fail to do so
00474 // they'll end up with nasty segfaults, so this is
public service.
00475 PyErr_SetString(PyExc_ValueError, "expected an
ndarray, not None");
00476 {
00477 __failure = 10;
00478 if (!PyErr_Occurred()) {
00479 PyErr_SetString(PyExc_RuntimeError,
00480 "Unexpected error in an Op's C code. "
00481 "No Python exception was set.");
00482 }
00483 goto __label_10;}
00484 }
00485 if (!PyArray_Check(py_V9)) {
00486 PyErr_SetString(PyExc_ValueError, "expected an
ndarray");
00487 {
00488 __failure = 10;
00489 if (!PyErr_Occurred()) {
00490 PyErr_SetString(PyExc_RuntimeError,
00491 "Unexpected error in an Op's C code. "
00492 "No Python exception was set.");
00493 }
00494 goto __label_10;}
00495 }
00496 // We expect NPY_INT64
00497 if (!PyArray_ISALIGNED((PyArrayObject*) py_V9)) {
00498 PyArrayObject * tmp = (PyArrayObject*) py_V9;
00499 PyErr_Format(PyExc_NotImplementedError,
00500 "expected an aligned array of type
%ld "
00501 "(NPY_INT64), got non-aligned array
of type %ld"
00502 " with %ld dimensions, with 3 last
dims "
00503 "%ld, %ld, %ld"
00504 " and 3 last strides %ld %ld, %ld.",
00505 (long int) NPY_INT64,
00506 (long int)
PyArray_TYPE((PyArrayObject*) py_V9),
00507 (long int) PyArray_NDIM(tmp),
00508 (long int) (PyArray_NDIM(tmp) >= 3 ?
00509 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-3] : -1),
00510 (long int) (PyArray_NDIM(tmp) >= 2 ?
00511 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-2] : -1),
00512 (long int) (PyArray_NDIM(tmp) >= 1 ?
00513 PyArray_DIMS(tmp)[PyArray_NDIM(tmp)-1] : -1),
00514 (long int) (PyArray_NDIM(tmp) >= 3 ?
00515 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-3] : -1),
00516 (long int) (PyArray_NDIM(tmp) >= 2 ?
00517 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-2] : -1),
00518 (long int) (PyArray_NDIM(tmp) >= 1 ?
00519 PyArray_STRIDES(tmp)[PyArray_NDIM(tmp)-1] : -1)
00520 );
00521 {
00522 __failure = 10;
00523 if (!PyErr_Occurred()) {
00524 PyErr_SetString(PyExc_RuntimeError,
00525 "Unexpected error in an Op's C code. "
00526 "No Python exception was set.");
00527 }
00528 goto __label_10;}
00529 }
00530 // This is a TypeError to be consistent with DEBUG_MODE
00531 // Note: DEBUG_MODE also tells the name of the
container
00532 if (PyArray_TYPE((PyArrayObject*) py_V9) != NPY_INT64)
{
00533 PyErr_Format(PyExc_TypeError,
00534 "expected type_num %d (NPY_INT64) got
%d",
00535 NPY_INT64,
PyArray_TYPE((PyArrayObject*) py_V9));
00536 {
00537 __failure = 10;
00538 if (!PyErr_Occurred()) {
00539 PyErr_SetString(PyExc_RuntimeError,
00540 "Unexpected error in an Op's C code. "
00541 "No Python exception was set.");
00542 }
00543 goto __label_10;}
00544 }
00545
00546 V9 = (PyArrayObject*)(py_V9);
00547 Py_XINCREF(V9);
00548
00549 {
00550 // Op class Alloc
00551
00552 npy_intp shape[3];
00553
00554 shape[0] = ((dtype_V5*) PyArray_DATA(V5))[0];
00555
00556 shape[1] = ((dtype_V7*) PyArray_DATA(V7))[0];
00557
00558 shape[2] = ((dtype_V9*) PyArray_DATA(V9))[0];
00559
00560 int need_new_out = (NULL == V1);
00561 for (int i = 0; i < 3; i++)
00562 need_new_out = (need_new_out
00563 || (PyArray_DIMS(V1)[i] !=
shape[i]));
00564
00565 if (need_new_out)
00566 {
00567 Py_XDECREF(V1);
00568 V1 = (PyArrayObject*) PyArray_SimpleNew(3,
00569 shape, PyArray_TYPE((PyArrayObject*) py_V3));
00570 if (!V1)
00571 {
00572 PyErr_SetString(PyExc_MemoryError, "alloc
failed");
00573 {
00574 __failure = 11;
00575 if (!PyErr_Occurred()) {
00576 PyErr_SetString(PyExc_RuntimeError,
00577 "Unexpected error in an Op's C code. "
00578 "No Python exception was set.");
00579 }
00580 goto __label_11;}
00581 }
00582 }
00583
00584 // This function takes care of broadcasting
00585 if (PyArray_CopyInto(V1, V3) == -1)
00586 {
00587 __failure = 11;
00588 if (!PyErr_Occurred()) {
00589 PyErr_SetString(PyExc_RuntimeError,
00590 "Unexpected error in an Op's C code. "
00591 "No Python exception was set.");
00592 }
00593 goto __label_11;}
00594 __label_11:
00595
00596 double __DUMMY_11;
00597
00598 }
00599 __label_10:
00600
00601 if (V9) {
00602 Py_XDECREF(V9);
00603 }
00604
00605 {Py_XDECREF(py_V9);}
00606
00607 double __DUMMY_10;
00608
00609 }
00610 __label_8:
00611
00612 if (V7) {
00613 Py_XDECREF(V7);
00614 }
00615
00616 {Py_XDECREF(py_V7);}
00617
00618 double __DUMMY_8;
00619
00620 }
00621 __label_6:
00622
00623 if (V5) {
00624 Py_XDECREF(V5);
00625 }
00626
00627 {Py_XDECREF(py_V5);}
00628
00629 double __DUMMY_6;
00630
00631 }
00632 __label_4:
00633
00634 if (V3) {
00635 Py_XDECREF(V3);
00636 }
00637
00638 {Py_XDECREF(py_V3);}
00639
00640 double __DUMMY_4;
00641
00642 }
00643 __label_2:
00644
00645 if (!__failure) {
00646
00647 {Py_XDECREF(py_V1);}
00648 if (!V1) {
00649 Py_INCREF(Py_None);
00650 py_V1 = Py_None;
00651 }
00652 else if ((void*)py_V1 != (void*)V1) {
00653 py_V1 = (PyObject*)V1;
00654 }
00655
00656 {Py_XINCREF(py_V1);}
00657
00658 if (V1 && !PyArray_ISALIGNED((PyArrayObject*) py_V1)) {
00659 PyErr_Format(PyExc_NotImplementedError,
00660 "c_sync: expected an aligned array, got
non-aligned array of type %ld"
00661 " with %ld dimensions, with 3 last dims "
00662 "%ld, %ld, %ld"
00663 " and 3 last strides %ld %ld, %ld.",
00664 (long int) PyArray_TYPE((PyArrayObject*)
py_V1),
00665 (long int) PyArray_NDIM(V1),
00666 (long int) (PyArray_NDIM(V1) >= 3 ?
00667 PyArray_DIMS(V1)[PyArray_NDIM(V1)-3] : -1),
00668 (long int) (PyArray_NDIM(V1) >= 2 ?
00669 PyArray_DIMS(V1)[PyArray_NDIM(V1)-2] : -1),
00670 (long int) (PyArray_NDIM(V1) >= 1 ?
00671 PyArray_DIMS(V1)[PyArray_NDIM(V1)-1] : -1),
00672 (long int) (PyArray_NDIM(V1) >= 3 ?
00673 PyArray_STRIDES(V1)[PyArray_NDIM(V1)-3] : -1),
00674 (long int) (PyArray_NDIM(V1) >= 2 ?
00675 PyArray_STRIDES(V1)[PyArray_NDIM(V1)-2] : -1),
00676 (long int) (PyArray_NDIM(V1) >= 1 ?
00677 PyArray_STRIDES(V1)[PyArray_NDIM(V1)-1] : -1)
00678 );
00679 {
00680 __failure = 2;
00681 if (!PyErr_Occurred()) {
00682 PyErr_SetString(PyExc_RuntimeError,
00683 "Unexpected error in an Op's C code. "
00684 "No Python exception was set.");
00685 }
00686 goto __label_2;}
00687 }
00688
00689 PyObject* old = PyList_GET_ITEM(storage_V1, 0);
00690 {Py_XINCREF(py_V1);}
00691 PyList_SET_ITEM(storage_V1, 0, py_V1);
00692 {Py_XDECREF(old);}
00693 }
00694
00695 if (V1) {
00696 Py_XDECREF(V1);
00697 }
00698
00699 {Py_XDECREF(py_V1);}
00700
00701 double __DUMMY_2;
00702
00703 }
00704
00705
00706 if (__failure) {
00707 // When there is a failure, this code puts the
exception
00708 // in __ERROR.
00709 PyObject* err_type = NULL;
00710 PyObject* err_msg = NULL;
00711 PyObject* err_traceback = NULL;
00712 PyErr_Fetch(&err_type, &err_msg, &err_traceback);
00713 if (!err_type) {err_type = Py_None;Py_INCREF(Py_None);}
00714 if (!err_msg) {err_msg = Py_None; Py_INCREF(Py_None);}
00715 if (!err_traceback) {err_traceback = Py_None;
Py_INCREF(Py_None);}
00716 PyObject* old_err_type = PyList_GET_ITEM(__ERROR, 0);
00717 PyObject* old_err_msg = PyList_GET_ITEM(__ERROR, 1);
00718 PyObject* old_err_traceback = PyList_GET_ITEM(__ERROR,
2);
00719 PyList_SET_ITEM(__ERROR, 0, err_type);
00720 PyList_SET_ITEM(__ERROR, 1, err_msg);
00721 PyList_SET_ITEM(__ERROR, 2, err_traceback);
00722 {Py_XDECREF(old_err_type);}
00723 {Py_XDECREF(old_err_msg);}
00724 {Py_XDECREF(old_err_traceback);}
00725 }
00726 // The failure code is returned to index what code block
failed.
00727 return __failure;
00728
00729 }
00730 };
00731 }
00732
00733
00734 static int
__struct_compiled_op_0040824c9d256009bbf96cfd9685133e_executor(__struct_compiled_op_0040824c9d256009bbf96cfd9685133e*
self) {
00735 return self->run();
00736 }
00737
00738 static void
__struct_compiled_op_0040824c9d256009bbf96cfd9685133e_destructor(void*
executor, void* self) {
00739 delete
((__struct_compiled_op_0040824c9d256009bbf96cfd9685133e*)self);
00740 }
00741
00742 //////////////////////
00743 //// Functions
00744 //////////////////////
00745 static PyObject * instantiate(PyObject * self, PyObject *argtuple)
{
00746 assert(PyTuple_Check(argtuple));
00747 if (6 != PyTuple_Size(argtuple)){
00748 PyErr_Format(PyExc_TypeError, "Wrong number of arguments,
expected 6, got %i", (int)PyTuple_Size(argtuple));
00749 return NULL;
00750 }
00751 __struct_compiled_op_0040824c9d256009bbf96cfd9685133e*
struct_ptr = new __struct_compiled_op_0040824c9d256009bbf96cfd9685133e();
00752 if (struct_ptr->init( PyTuple_GET_ITEM(argtuple,
0),PyTuple_GET_ITEM(argtuple, 1),PyTuple_GET_ITEM(argtuple,
2),PyTuple_GET_ITEM(argtuple, 3),PyTuple_GET_ITEM(argtuple,
4),PyTuple_GET_ITEM(argtuple, 5) ) != 0) {
00753 delete struct_ptr;
00754 return NULL;
00755 }
00756 PyObject* thunk =
PyCObject_FromVoidPtrAndDesc((void*)(&__struct_compiled_op_0040824c9d256009bbf96cfd9685133e_executor),
struct_ptr,
__struct_compiled_op_0040824c9d256009bbf96cfd9685133e_destructor);
00757 return thunk; }
00758
00759 //////////////////////
00760 //// Module init
00761 //////////////////////
00762 static PyMethodDef MyMethods[] = {
00763 {"instantiate", instantiate, METH_VARARGS, "undocumented"} ,
00764 {NULL, NULL, 0, NULL}
00765 };
00766 PyMODINIT_FUNC init0040824c9d256009bbf96cfd9685133e(void){
00767 import_array();
00768 (void) Py_InitModule("0040824c9d256009bbf96cfd9685133e",
MyMethods);
00769 }
00770
===============================
Problem occurred during compilation with the command line below:
/usr/bin/g++ -shared -g -O3 -fno-math-errno -Wno-unused-label
-Wno-unused-variable -Wno-write-strings -march=broadwell -mmmx -mno-3dnow
-msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha
-mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2
-mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd
-mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave
-mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf
-mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq
-mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-clwb
-mno-pcommit -mno-mwaitx --param l1-cache-size=32 --param
l1-cache-line-size=64 --param l2-cache-size=46080 -mtune=broadwell
-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -m64 -fPIC
-I/usr/local/lib/python2.7/site-packages/numpy/core/include
-I/usr/local/include/python2.7
-I/usr/local/lib/python2.7/site-packages/theano/gof -L/usr/local/lib
-fvisibility=hidden -o
/home/ubuntu/.theano/compiledir_Linux-4.4--generic-x86_64-with-debian-stretch-sid-x86_64-2.7.13-64/tmpy72QOL/0040824c9d256009bbf96cfd9685133e.so
/home/ubuntu/.theano/compiledir_Linux-4.4--generic-x86_64-with-debian-stretch-sid-x86_64-2.7.13-64/tmpy72QOL/mod.cpp
-lpython2.7
Exception: ('The following error happened while compiling the node',
Alloc(InplaceDimShuffle{0,x}.0, TensorConstant{128}, Shape_i{0}.0,
TensorConstant{1}), '\n', 'Compilation failed (return status=-2): ',
'[Alloc(<TensorType(float32, col)>, TensorConstant{128}, <TensorType(int64,
scalar)>, TensorConstant{1})]')
--
---
You received this message because you are subscribed to the Google Groups "theano-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to theano-users+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
---
You received this message because you are subscribed to the Google Groups "theano-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to theano-users+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.