Ошибка сегментации в NumPy Matmul - PullRequest
0 голосов
/ 27 октября 2019

Я получаю ошибку сегментации при выполнении умножения матрицы

expanded_model = np.matmul(M, model)

, где М и модель имеют размеры

print(len(model), M.shape)

, что дает

1200 (2000, 1200)

а матрица и массив определены как

model = np.arange(1200, dtype=np.float64)
M = np.ndarray(shape=(2000, 1200), dtype=np.float64)

Есть идеи, что здесь может пойти не так?

>> *** Process received signal ***
>> Signal: Segmentation fault: 11 (11)
>> Signal code: Address not mapped (1)
>> Failing at address: 0x110
>> [ 0] 2   libsystem_platform.dylib            0x00007fff65e2cf5a _sigtramp + 26
>> [ 1] 3   libpython3.6m.dylib                 0x000000010a548d3d convertitem + 5965
>> [ 2] 4   libBLAS.dylib                       0x00007fff3a7a7a47 cblas_dgemv + 727

1 Ответ

0 голосов
/ 27 октября 2019

Не думаю, что для создания массива стоит использовать np.ndarray(). В документации не рекомендуется:

Массивы должны быть построены с использованием массива, нулей или пустых значений (см. Раздел «См. Также» ниже).

Похоже, что он содержит мусор, как np.empty(). Возможно, вы хотите, чтобы случайный M начался с? Это помогает?

M = np.random.random((2000, 1200))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...