Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/75: Рейтинг темы: голосов - 75, средняя оценка - 4.65
67 / 64 / 3
Регистрация: 02.11.2019
Сообщений: 227

Ошибка ValueError в NumPy: shapes not aligned

16.01.2021, 16:40. Показов 14500. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Я хочу сделать алгоритм распознавания изображений помощью только numpy и PIL. При выполнении кода вылезает ошибка:
Code
1
2
3
4
5
Traceback (most recent call last):
  File "index.py", line 39, in <module>
    synaptic_weights += dot(training_set_inputs.T, (training_set_outputs - output) * output * (1 - output))
  File "<__array_function__ internals>", line 5, in dot
ValueError: shapes (400,16,1) and (16,16) not aligned: 1 (dim 2) != 16 (dim 0)
Поможете исправить? Вот полный код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from numpy import exp, array, random, dot, squeeze, asarray
from PIL import Image
 
images = []
for k in range(8):
    im = Image.open(f'learn\\yes\\{k + 1}.png', 'r')
    a = list(im.getdata())
    pixel_values = []
    for i in a:
        pixel_values.append((i[0] + i[1] + i[2] / 3) / 1000)
    images.append(pixel_values)
    im = Image.open(f'learn\\no\\{k + 1}.png', 'r')
    a = list(im.getdata())
    pixel_values = []
    for i in a:
        pixel_values.append((i[0] + i[1] + i[2] / 3) / 1000)
    images.append(pixel_values)
 
im = Image.open(f'test\\1.png', 'r')
a = list(im.getdata())
pixel_values = []
for i in a:
    pixel_values.append((i[0] + i[1] + i[2] / 3) / 1000)
 
print(*images, sep='\n', end='\n\n')
print(pixel_values)
# print(pixel_values3)
 
training_set_inputs = array([images])
training_set_outputs = array([[1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0]]).T
random.seed(1)
print('processing...')
 
synaptic_weights = squeeze(asarray(3 * random.random((400, 1)) - 1))
 
for iteration in range(2):
    print(f'starting iteration {iteration + 1}')
    output = 1 / (1 + exp(-(dot(training_set_inputs, synaptic_weights))))
    synaptic_weights += dot(training_set_inputs.T, (training_set_outputs - output) * output * (1 - output))
    print('done!')
 
a = 1 / (1 + exp(-(dot(array(pixel_values), synaptic_weights))))[0]
print(a)
if a > 0.6:
    print('yes')
else:
    print('no')
P.S. размер изображений одинаковый - 20*20 пикселей.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.01.2021, 16:40
Ответы с готовыми решениями:

ValueError: shapes (2,) and (1,) not aligned
Всем привет, может кто подсказать по numpy: есть массивы numpy X = np.array() l1_delta = np.array() syn0 = np.random.random((2,1)) ...

ValueError: shapes (100,784) and (0,1) not aligned
Не могу понять из-за чего возникает ошибка : shapes (200,784) and (0,1) not aligned: 784 (dim 1) != 0 (dim 0)-фигуры (200,784) и (0,1) не...

Ошибка c графиком: ValueError: x and y must have same first dimension, but have shapes (49,) and (1,)
Подскажите, как исправить ошибку, пожалуйста. Полный текст ошибки: Traceback (most recent call last): File plt.plot(x,...

1
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,758
16.01.2021, 18:58
У вас не совпадают размерности массивой, которые используются в 39 строке. Попробуйте перед 39 строкой сделать np.squeeze(training_set_inputs)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.01.2021, 18:58
Помогаю со студенческими работами здесь

ValueError: shapes (100,784) and (100,1) not aligned: 784 (dim 1) != 100 (dim 0)
Разбираюсь с книгой Тарика Рашида &quot;Создаем нейронную сеть&quot; совершенно не зная питона (думал, напишу по примеру, перевар и тогда уже на...

Ошибка ValueError: shapes (288144,2) and (3,) not aligned: 2 (dim 1) != 3 (dim 0)
Использую следующий код: X = df.iloc].values # plot data X_std = np.copy(X) X_std = (X - X.mean()) / X.std() X_std = (X -...

Shapes are not aligned
Разбираюсь с нейросетями Python. Делал примерно по этой статье, тот пример, что в конце. Получаю ошибку: (362 - количество данных...

ValueError: operands could not be broadcast together with shapes (81,9) (9,9) (81,9)
И снова здравствуйте. Проблема такая, не могу понять, что не так. Сами x и y могут быть любыми. Входной массив(x) выглядит примерно так: ...

ValueError: x and y must have same first dimension, but have shapes (50,) and (1,) почему так? Y не считается?
import numpy as np import matplotlib.pyplot as plt import math from sympy import * from numpy.polynominal import polynominal as p ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru