@qqqZXzz123

Как обучить нейросеть выводить разные изображения?

я написал код,
import os
import tensorflow as tf
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
from tensorflow import keras
from tensorflow.keras import layers
from matplotlib import pyplot as plt
from PIL import Image
import numpy as np

im = Image.open("im.png")
im = im.convert('RGB')
im = im.resize((128, 128))
im = np.array(im) / 255.0
im = im.flatten()
print(len(im))

im2 = Image.open("im2.png")
im2 = im2.convert('RGB')
im2 = im2.resize((128, 128))
im2 = np.array(im2) / 255.0
im2 = im2.flatten()
print(len(im2))

c = np.array([[1,1],[0,0]])
f = np.array([[im],[im2]])

model = tf.keras.Sequential()
model.add(keras.Input(shape=(2,)))
model.add(layers.Dense(2, activation='sigmoid'))
model.add(layers.Dense(49152, use_bias=False, activation=None))

model.compile(loss='mean_squared_error', optimizer=keras.optimizers.Adam(0.2))
model.summary()

history = model.fit(c, f, epochs=500)
print("Обучение завершено")
model.save("my_model")

im3 = model.predict([[1,1]])
im3 = np.reshape(im3, (128, 128, 3 ))
plt.imshow(im3, interpolation='nearest')
plt.show()

im3 = model.predict([[0,0]])
im3 = np.reshape(im3, (128, 128, 3 ))
plt.imshow(im3, interpolation='nearest')
plt.show()

plt.plot(history.history['loss'])
plt.grid(True)
plt.show()


после обучения, картинки просто наклыдываются друг на друга.
как мне сделать так чтобы нейросеть могла выдавать разные изображения?
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dmshar
А причем тут нейросеть? За "вывод картинки" отвечает matplotlib, а что вы туда будете писать - это ваше дело.
Для того, что бы создать несколько картинок используется метод plt.subplots(.....), ну например создаем три картинки:

fig, ax = plt.subplots(1, 3)

Теперь у вас есть объект ax, и вы вольны писать в нужную вам "картинку":

В первую:
ax[0].imshow(....)

В третью:
ax[2].imshow(...)

Во вторую:
ax[1].plot()
В произвольном порядке и произвольные типы графиков/картинок.

Принцип, надеюсь понятен.
А вообще-то рекомендую, до того, как "обучать нейросети" ознакомиться хотя-бы с азами Python и основных библиотек.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы