Форум программистов, компьютерный форум, киберфорум
Python: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 13.01.2019
Сообщений: 25

Сверточные нейронные сети

24.04.2023, 21:48. Показов 1092. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, при запуске обучающей выборке выдается ошибка слоя сети: Input 0 of layer "sequential" is incompatible with the layer: expected shape=(None, 180, 180, 3), found shape=(None, 3). Не понимаю где ошибся...
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import matplotlib.pyplot as plt
import numpy as np
import os
import PIL
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.models import Sequential
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D
from tensorflow.keras.losses import sparse_categorical_crossentropy
from tensorflow.keras.optimizers import Adam
import matplotlib.pyplot as plt
 
# Загрузка данных
cifar10 = tf.keras.datasets.cifar10
 
# Разбиение на обучающую и тестовую выборку
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
print(x_train.shape, y_train.shape, x_test.shape, y_test.shape)
#определяем имеющиеся классы
class_names = np.array(['airplane','automobile ','bird ','cat ','deer ','dog ','frog ','horse ','ship ','truck'])
#
plt.figure(figsize=[10,10])
for i in range(9):
    plt.subplot(3, 3, i + 1)
    plt.xlabel(class_names[y_train[i, 0]])
    plt.imshow(x_train[i])
    
#Создать набор данных Определите некоторые параметры для загрузчика:
batch_size = 32
img_height = 180
img_width = 180
 
x_train= (batch_size, img_width, img_height)
x_test= (batch_size,img_width, img_height)
 
normalization_layer = layers.Rescaling(1./255)
 
num_classes = len(class_names)
 
model = Sequential([
  layers.Rescaling(1./255, input_shape=(img_height, img_width, 3)),
  layers.Conv2D(16, 3, padding='same', activation='relu'),
  layers.MaxPooling2D(),
  layers.Conv2D(32, 3, padding='same', activation='relu'),
  layers.MaxPooling2D(),
  layers.Conv2D(64, 3, padding='same', activation='relu'),
  layers.MaxPooling2D(),
  layers.Flatten(),
  layers.Dense(128, activation='relu'),
  layers.Dense(num_classes)
])
 
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])
              
model.summary()
 
x_obu = np.expand_dims(np.array(x_train).astype('float32'), axis=0)
x_neobu = np.expand_dims(np.array(x_test).astype('float32'), axis=0)
#обучаем модель
epochs=10
history = model.fit(x_obu, validation_data=x_neobu.all(), epochs=epochs)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.04.2023, 21:48
Ответы с готовыми решениями:

Нейронные сети
Занялся изучением нейросетей на питоне. Нашел пример, написал код под себя. Но почему-то даже для простого примера выдает неправильный...

Как в загрузить большое количество фотографий для обучения нейронной сети
Всем доброго времени суток! Подскажите, пожалуйста, как в Python 3 загрузить большое количество фотографий для обучения нейронной сети в...

Keras. Нейронные сети
Я использую keras для обучения сверточной нейронной сети. Обучаю её распознавать цифры с набора mnist. Распознает в принципе нормально, но...

3
88 / 32 / 14
Регистрация: 25.03.2023
Сообщений: 69
24.04.2023, 22:59
Форма входных данных не соответствует ожидаемой форме. Ожидается форма (None, 180, 180, 3), но обнаружена форма (None, 3). Вместо изменения формы массивов x_train и x_test, вы можете изменить значения img_width и img_height на 32, чтобы соответствовать размеру изображений в наборе данных CIFAR-10. Так же удалите строки кода, которые пытаются изменить форму x_train и x_test

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import matplotlib.pyplot as plt
import numpy as np
import os
import PIL
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.models import Sequential
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D
from tensorflow.keras.losses import sparse_categorical_crossentropy
from tensorflow.keras.optimizers import Adam
import matplotlib.pyplot as plt
 
# Загрузка данных
cifar10 = tf.keras.datasets.cifar10
 
# Разбиение на обучающую и тестовую выборку
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
print(x_train.shape, y_train.shape, x_test.shape, y_test.shape)
# определяем имеющиеся классы
class_names = np.array(
    ['airplane', 'automobile ', 'bird ', 'cat ', 'deer ', 'dog ', 'frog ', 'horse ', 'ship ', 'truck'])
#
plt.figure(figsize=[10, 10])
for i in range(9):
    plt.subplot(3, 3, i + 1)
    plt.xlabel(class_names[y_train[i, 0]])
    plt.imshow(x_train[i])
 
# Создать набор данных Определите некоторые параметры для загрузчика:
batch_size = 32
img_height = 32
img_width = 32
 
 
normalization_layer = layers.Rescaling(1. / 255)
 
num_classes = len(class_names)
 
model = Sequential([
    layers.Rescaling(1. / 255, input_shape=(img_height, img_width, 3)),
    layers.Conv2D(16, 3, padding='same', activation='relu'),
    layers.MaxPooling2D(),
    layers.Conv2D(32, 3, padding='same', activation='relu'),
    layers.MaxPooling2D(),
    layers.Conv2D(64, 3, padding='same', activation='relu'),
    layers.MaxPooling2D(),
    layers.Flatten(),
    layers.Dense(128, activation='relu'),
    layers.Dense(num_classes)
])
 
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])
 
model.summary()
 
x_obu = np.expand_dims(np.array(x_train).astype('float32'), axis=0)
x_neobu = np.expand_dims(np.array(x_test).astype('float32'), axis=0)
# обучаем модель
epochs = 10
history = model.fit(x_train, y_train, validation_data=(x_test, y_test), epochs=epochs)
1
29 / 19 / 10
Регистрация: 24.04.2023
Сообщений: 62
24.04.2023, 23:18
Ошибка возникает из-за того, что вы определяете размеры изображений неправильно. Вместо того, чтобы использовать значения img_width и img_height, вы случайно присваиваете им кортежи, содержащие значения batch_size, img_width и img_height.

Замените строки:

x_train= (batch_size, img_width, img_height)
x_test= (batch_size,img_width, img_height)


на:

x_train = x_train.reshape(x_train.shape[0], img_width, img_height, 3)
x_test = x_test.reshape(x_test.shape[0], img_width, img_height, 3)


Это приведет размеры обучающей и тестовой выборки к форме (число примеров, img_width, img_height, число каналов), что ожидает ваша модель.

Также, вам нужно использовать обновленные x_train и x_test в качестве данных обучения и валидации модели в model.fit(). Замените строку:

history = model.fit(x_obu, validation_data=x_neobu.all(), epochs=epochs)


на:

history = model.fit(x_train, y_train, batch_size=batch_size, validation_data=(x_test, y_test), epochs=epochs)


Обратите внимание, что здесь я использовал исходные x_train и x_test, а не обновленные. Вы уже преобразовали данные с помощью слоя layers.Rescaling, поэтому не нужно делать это еще раз.
1
25.04.2023, 00:46

Не по теме:

EugenyS, Хорошо умеете пользоваться АИ, только зачем!? Толку что вы копипастите оттуда ничего не понимая!???

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.04.2023, 00:46
Помогаю со студенческими работами здесь

seq2seq нейронные сети
Добрый день. Я новичок в нейронных сетях, но тут появилась задача, что без них никуда. Необходимо создать нейронную сеть, которая сокращала...

Pybrain, нейронные сети
Прочитал эту статью https://habrahabr.ru/post/148407/ .Описано все понятно, но возникли некоторые трудности. Создал сеть, обучил её...

Нейронные сети. MNIST
Есть код нейронной сети, которая распознает рукописные ЦИФРЫ: import numpy from keras.datasets import mnist from keras.models...

Нейронные сети. MNIST MLP
Есть код нейронной сети распознающий цифры Mnist. Что в него нужно добавить, чтобы с помощью программы можно было распознавать цифры в...

Нейронные сети (нейрон для ИЛИ)
Здравствуйте, я практикуюсь в разработке и сделал нейрон для операции ИЛИ. Он выдает правильные ответы, но я не уверен, что все сделал...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru