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

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

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

Author24 — интернет-сервис помощи студентам
Добрый день! Я хочу сделать алгоритм распознавания изображений помощью только numpy и PIL. При выполнении кода вылезает ошибка:
Код
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2021, 16:40
Ответы с готовыми решениями:

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

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

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

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 -...

1
4921 / 2674 / 550
Регистрация: 07.11.2019
Сообщений: 4,395
16.01.2021, 18:58 2
У вас не совпадают размерности массивой, которые используются в 39 строке. Попробуйте перед 39 строкой сделать np.squeeze(training_set_inputs)
1
16.01.2021, 18:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2021, 18:58
Помогаю со студенческими работами здесь

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

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

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 ValueError
import numpy as np n = 5 A = np.zeros((n,n), dtype=np.int_) for i in range(n): ...

Ошибка ValueError
ВО 2ОЙ СТРОЧКЕ ОШИБКА - ИСПРАВЬТЕ ЕЁ, ПЖ N = int ( input(&quot; Введите кол-во вводимых элеметов &quot;)...

Ошибка valueerror на питоне
Приветствую всех! Для начала скажу что я совсем сырой в теме программирования, совсем недавно...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru