Распознавание функции Tensorflow Square - PullRequest
1 голос
/ 06 марта 2020

Я пытаюсь освоить основы машинного обучения. Я пытаюсь обучить ИИ функцию квадрата: 2 ^ x

import tensorflow as tf
import numpy as np
from tensorflow import keras

model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer='sgd', loss='mean_squared_error')

xs = np.array([2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0], dtype=int)
ys = np.array([4.0, 8.0, 16.0, 32.0, 64.0, 128.0, 256.0, 512.0, 1024.0, 2048.0, 4096.0, 8192.0, 16384.0, 32768.0], dtype=int)

model.fit(xs, ys, epochs=1000)

print(model.predict([7.0]))

Это должно вывести + - 128, но результат в 2000-х, и потери очень высоки.

Как я могу оптимизировать эту нейронную сеть, чтобы она давала мне более точный ответ?

Спасибо за ваше время.

1 Ответ

0 голосов
/ 18 марта 2020

Когда вы тренируетесь с Нейронной сетью , которая кажется вам простой, может оказаться сложной для компьютера. В вашем случае тренировка 2 повышена до n-й степени ; обучение этому шаблону несколько трудно обнаружить, так как значения резко изменяются , это может или не может привести к конвергенции к конкретному c значению.

Как на вопрос о том, как оптимизировать нейронную сеть для создания более точной модели, некоторые из способов достижения этого - добавить больше слоев , для точной настройки гиперпараметров , создание более сложных моделей и даже создание собственного слоя, операций, функций .

Если вы пытаетесь освоить основы машинного обучения, существует множество руководств, которые помогут вам освоить основы в документации TensorFlow.

Попробуйте следовать учебной программе в этой ссылке для более четкого пути обучения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...