Это мой первый пост, и все, что я знаю, самоучка, поэтому я заранее прошу прощения за любые ошибки, которые я делаю.Дайте мне знать, если есть еще вещи, которые мне нужно включить.* * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *1003* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.0,9874 в соотв. И 0,99 вэл.При тестировании модели птица в большинстве случаев стучится в трубу, всего за несколько попыток, когда она получает 2 балла перед смертью.
Можно ли использовать только распознавание изображений для обучения агентаЧто ж?(подробности ниже)
Обучены следующим данным: (изображение, [1,0]) (изображение, [0,1]).,.
Где [1,0] - прыжок, а [0,1] - ничего не делать.
Обучено на 10 000 изображений (8000 из которых увеличены) и проверено на 6000 (4800 -дополнено), получая следующие результаты:
Epoch 50/50 10081/10081 [===================================] - 63s 6 мс / шаг - потеря: 0,0527 - в соотв. 0,9874 - val_loss: 0,0176 - val_acc: 0,9954
from keras.models import load_model
from grabscreen import grab_screen
import cv2
import time
from directkeys import PressKey,ReleaseKey, Space
from getkeys import key_check
import numpy as np
import time
model = load_model('models/flappy_model_4_hl_2fcl_5aug_shuff_50epoch_287.h5')
def jump():
PressKey(Space)
ReleaseKey(Space)
def main():
last_time = time.time()
#countdown
for i in list(range(4))[::-1]:
print(i+1)
time.sleep(1)
paused = False
screen = grab_screen(region=(0,200,600,800))
screen = cv2.cvtColor(screen, cv2.COLOR_BGR2RGB)
prev = cv2.resize(screen, (150,250))
while True:
if not paused:
screen = grab_screen(region=(0,200,600,800))
screen = cv2.cvtColor(screen, cv2.COLOR_BGR2RGB)
#last_time = time.time()
screen = cv2.resize(screen, (150,250))
screen = [[screen]]
#print(np.shape(screen))
prediction = model.predict(screen)[0]
prediction = np.around(prediction)
prediction = prediction[0]
print(prediction)
last_time = time.time()
if prediction == 1:
jump()
time.sleep(0.2)
#print('Jump')
#print('Loop took: ' + str(time.time() - last_time))
keys = key_check()
# pause agent
if 'T' in keys:
if paused:
paused = False
time.sleep(1)
else:
paused = True
ReleaseKey(Space)
time.sleep(1)
main()
Я ожидал, что агент будет прав примерно в 98% случаев, поэтому он должен достичьхотя бы оценка выше 2, но этого не происходит.