Python 培训alexnet模型后返回的输出文件。。。?
代码是用Python 3.5.X编写的 请尽量为计算机科学三年级学生提供简单的答案 train_model.py的输出文件似乎是model.meta文件,但test_model.py要求一个.model文件。教程用户也有一个.model文件,我似乎不明白为什么我会得到一个带有.model.meta的文件 我试图通过Python玩GTA San Andreas,或者更准确地说,GTA中的汽车是由模型驱动的。 它将屏幕帧作为输入,并记录训练期间输入的键。该训练数据用于训练模型 模型培训代码Python 培训alexnet模型后返回的输出文件。。。?,python,tensorflow,conv-neural-network,tflearn,Python,Tensorflow,Conv Neural Network,Tflearn,代码是用Python 3.5.X编写的 请尽量为计算机科学三年级学生提供简单的答案 train_model.py的输出文件似乎是model.meta文件,但test_model.py要求一个.model文件。教程用户也有一个.model文件,我似乎不明白为什么我会得到一个带有.model.meta的文件 我试图通过Python玩GTA San Andreas,或者更准确地说,GTA中的汽车是由模型驱动的。 它将屏幕帧作为输入,并记录训练期间输入的键。该训练数据用于训练模型 模型培训代码 impo
import numpy as np
from alexnet import alexnet
WIDTH = 80
HEIGHT = 60
LR = 1e-3
EPOCHS = 8
MODEL_NAME = 'pygta_sa-car-{}-{}-{}-epochs.model'.format(LR, 'alextnetv2', EPOCHS)
model = alexnet(WIDTH, HEIGHT, LR)
train_data = np.load('training_data_v2.npy')
train = train_data[:-500]
test = train_data[-500:]
X = np.array([i[0] for i in train]).reshape(-1,WIDTH,HEIGHT,1)
Y = [i[1] for i in train]
test_x = np.array([i[0] for i in test]).reshape(-1,WIDTH,HEIGHT,1)
test_y = [i[1] for i in test]
model.fit({'input': X}, {'targets': Y}, n_epoch=EPOCHS, validation_set=({'input': test_x}, {'targets': test_y}),
snapshot_step=500, show_metric=True, run_id=MODEL_NAME)
# tensorboard --logdir=foo:F:\play_gta_sa\log
model.save(MODEL_NAME)
培训成功完成并返回文件
我用来做这个项目的教程视频中返回的文件
检查点文件的内容
import numpy as np
import cv2
import time
from grabscreen import grab_screen
from getkeys import key_check
from directkeys import PressKey, ReleaseKey, W, A, S, D
from alexnet import alexnet
WIDTH = 80
HEIGHT = 60
LR = 1e-3
EPOCHS = 8
MODEL_NAME = 'pygta_sa-car-{}-{}-{}-epochs.model'.format(LR, 'alexnetv2',EPOCHS)
def straight():
PressKey(W)
ReleaseKey(A)
ReleaseKey(D)
def left():
PressKey(W)
PressKey(A)
ReleaseKey(D)
def right():
PressKey(W)
PressKey(D)
ReleaseKey(A)
model = alexnet(WIDTH, HEIGHT, LR)
model.load(MODEL_NAME)
def main():
for i in list(range(10))[::-1]:
print(i+1)
time.sleep(1)
last_time = time.time()
paused = False
while True:
if not paused:
screen = grab_screen(region=(0,40,800,640))
screen = cv2.cvtColor(screen,cv2.COLOR_BGR2GRAY)
screen = cv2.resize(screen,(80,60))
print('Frame took {} seconds'.format(time.time()-last_time))
last_time = time.time()
moves = list(np.around(model.predict([screen.reshape(80,60,1)])[0]))
print(moves, prediction)
if moves == [1,0,0]:
left()
elif moves == [0,1,0]:
straight()
elif moves == [0,0,1]:
right()
keys = key_check()
# p pauses game and can get annoying.
if 'T' in keys:
if paused:
paused = False
time.sleep(1)
else:
paused = True
ReleaseKey(A)
ReleaseKey(W)
ReleaseKey(D)
time.sleep(1)
main()
模型检查点路径:“F:\play_gta_sa\pygta_sa-car-0.001-alextnetv2-8-epochs.model”
所有模型检查点路径:“F:\play_gta_sa\pygta_sa-car-0.001-alextnetv2-8-epochs.model”
在游戏中测试模型的代码
import numpy as np
import cv2
import time
from grabscreen import grab_screen
from getkeys import key_check
from directkeys import PressKey, ReleaseKey, W, A, S, D
from alexnet import alexnet
WIDTH = 80
HEIGHT = 60
LR = 1e-3
EPOCHS = 8
MODEL_NAME = 'pygta_sa-car-{}-{}-{}-epochs.model'.format(LR, 'alexnetv2',EPOCHS)
def straight():
PressKey(W)
ReleaseKey(A)
ReleaseKey(D)
def left():
PressKey(W)
PressKey(A)
ReleaseKey(D)
def right():
PressKey(W)
PressKey(D)
ReleaseKey(A)
model = alexnet(WIDTH, HEIGHT, LR)
model.load(MODEL_NAME)
def main():
for i in list(range(10))[::-1]:
print(i+1)
time.sleep(1)
last_time = time.time()
paused = False
while True:
if not paused:
screen = grab_screen(region=(0,40,800,640))
screen = cv2.cvtColor(screen,cv2.COLOR_BGR2GRAY)
screen = cv2.resize(screen,(80,60))
print('Frame took {} seconds'.format(time.time()-last_time))
last_time = time.time()
moves = list(np.around(model.predict([screen.reshape(80,60,1)])[0]))
print(moves, prediction)
if moves == [1,0,0]:
left()
elif moves == [0,1,0]:
straight()
elif moves == [0,0,1]:
right()
keys = key_check()
# p pauses game and can get annoying.
if 'T' in keys:
if paused:
paused = False
time.sleep(1)
else:
paused = True
ReleaseKey(A)
ReleaseKey(W)
ReleaseKey(D)
time.sleep(1)
main()
运行测试模型时出现错误消息
Traceback (most recent call last):
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\client\session.py", line 1039, in _do_call
return fn(*args)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\client\session.py", line 1021, in _run_fn
status, run_metadata)
File "C:\Program Files\Python35\lib\contextlib.py", line 66, in __exit__
next(self.gen)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 466, in raise_exception_on_not_ok_status
pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.NotFoundError: Unsuccessful TensorSliceReader constructor: Failed to find any matching files for F:\play_gta_sa\pygta_sa-car-0.001-alexnetv2-8-epochs.model
[[Node: save_1/RestoreV2 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_save_1/Const_0, save_1/RestoreV2/tensor_names, save_1/RestoreV2/shape_and_slices)]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "F:\play_gta_sa\test_model.py", line 33, in <module>
model.load(MODEL_NAME)
File "C:\Program Files\Python35\lib\site-packages\tflearn\models\dnn.py", line 282, in load
self.trainer.restore(model_file, weights_only, **optargs)
File "C:\Program Files\Python35\lib\site-packages\tflearn\helpers\trainer.py", line 452, in restore
self.restorer.restore(self.session, model_file)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\training\saver.py", line 1457, in restore
{self.saver_def.filename_tensor_name: save_path})
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\client\session.py", line 778, in run
run_metadata_ptr)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\client\session.py", line 982, in _run
feed_dict_string, options, run_metadata)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\client\session.py", line 1032, in _do_run
target_list, options, run_metadata)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\client\session.py", line 1052, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.NotFoundError: Unsuccessful TensorSliceReader constructor: Failed to find any matching files for F:\play_gta_sa\pygta_sa-car-0.001-alexnetv2-8-epochs.model
[[Node: save_1/RestoreV2 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_save_1/Const_0, save_1/RestoreV2/tensor_names, save_1/RestoreV2/shape_and_slices)]]
Caused by op 'save_1/RestoreV2', defined at:
File "<string>", line 1, in <module>
File "C:\Program Files\Python35\lib\idlelib\run.py", line 124, in main
ret = method(*args, **kwargs)
File "C:\Program Files\Python35\lib\idlelib\run.py", line 351, in runcode
exec(code, self.locals)
File "F:\play_gta_sa\test_model.py", line 32, in <module>
model = alexnet(WIDTH, HEIGHT, LR)
File "F:\play_gta_sa\alexnet.py", line 40, in alexnet
max_checkpoints=1, tensorboard_verbose=0, tensorboard_dir='log')
File "C:\Program Files\Python35\lib\site-packages\tflearn\models\dnn.py", line 64, in __init__
best_val_accuracy=best_val_accuracy)
File "C:\Program Files\Python35\lib\site-packages\tflearn\helpers\trainer.py", line 147, in __init__
allow_empty=True)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\training\saver.py", line 1056, in __init__
self.build()
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\training\saver.py", line 1086, in build
restore_sequentially=self._restore_sequentially)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\training\saver.py", line 691, in build
restore_sequentially, reshape)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\training\saver.py", line 407, in _AddRestoreOps
tensors = self.restore_op(filename_tensor, saveable, preferred_shard)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\training\saver.py", line 247, in restore_op
[spec.tensor.dtype])[0])
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\ops\gen_io_ops.py", line 669, in restore_v2
dtypes=dtypes, name=name)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 768, in apply_op
op_def=op_def)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\framework\ops.py", line 2336, in create_op
original_op=self._default_original_op, op_def=op_def)
File "C:\Program Files\Python35\lib\site-packages\tensorflow\python\framework\ops.py", line 1228, in __init__
self._traceback = _extract_stack()
NotFoundError (see above for traceback): Unsuccessful TensorSliceReader constructor: Failed to find any matching files for F:\play_gta_sa\pygta_sa-car-0.001-alexnetv2-8-epochs.model
[[Node: save_1/RestoreV2 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_save_1/Const_0, save_1/RestoreV2/tensor_names, save_1/RestoreV2/shape_and_slices)]]
回溯(最近一次呼叫最后一次):
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\client\session.py”,第1039行,在调用中
返回fn(*args)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\client\session.py”,第1021行,在\u run\u fn中
状态,运行(元数据)
文件“C:\Program Files\Python35\lib\contextlib.py”,第66行,在退出时__
下一个(self.gen)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\framework\errors\u impl.py”,第466行,处于raise\u exception\u on\u not\u ok\u状态
pywrap_tensorflow.TF_GetCode(状态))
tensorflow.python.framework.errors\u impl.NotFoundError:不成功的TensorSliceReader构造函数:找不到F:\play\u gta\u sa\pygta\u sa-car-0.001-alexnetv2-8-epochs.model的任何匹配文件
[[Node:save_1/RestoreV2=RestoreV2[dtypes=[DT_FLOAT],[u device=“/job:localhost/replica:0/task:0/cpu:0”]([u recv_save_1/Const_0,save_1/RestoreV2/tensor_name,save_1/RestoreV2/shape_和_切片)]]
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“F:\play_gta_sa\test_model.py”,第33行,在
model.load(model_名称)
文件“C:\Program Files\Python35\lib\site packages\tflearn\models\dnn.py”,第282行,已加载
self.trainer.restore(型号文件,仅重量,**optargs)
文件“C:\Program Files\Python35\lib\site packages\tflearn\helpers\trainer.py”,第452行,在restore中
self.restore.restore(self.session,model\u文件)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\training\saver.py”,第1457行,在restore中
{self.saver\u def.filename\u tensor\u name:save\u path})
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\client\session.py”,第778行,正在运行
运行_元数据_ptr)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\client\session.py”,第982行,正在运行
提要(dict字符串、选项、运行元数据)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\client\session.py”,第1032行,在\u do\u run中
目标\u列表、选项、运行\u元数据)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\client\session.py”,第1052行,在调用中
提升类型(e)(节点定义、操作、消息)
tensorflow.python.framework.errors\u impl.NotFoundError:不成功的TensorSliceReader构造函数:找不到F:\play\u gta\u sa\pygta\u sa-car-0.001-alexnetv2-8-epochs.model的任何匹配文件
[[Node:save_1/RestoreV2=RestoreV2[dtypes=[DT_FLOAT],[u device=“/job:localhost/replica:0/task:0/cpu:0”]([u recv_save_1/Const_0,save_1/RestoreV2/tensor_name,save_1/RestoreV2/shape_和_切片)]]
由op“save_1/RestoreV2”引起,定义于:
文件“”,第1行,在
文件“C:\Program Files\Python35\lib\idlelib\run.py”,第124行,在main中
ret=方法(*args,**kwargs)
运行代码中的文件“C:\Program Files\Python35\lib\idlelib\run.py”,第351行
exec(代码,self.locals)
文件“F:\play_gta_sa\test_model.py”,第32行,在
型号=alexnet(宽度、高度、LR)
文件“F:\play_gta_sa\alexnet.py”,第40行,在alexnet中
最大检查点=1,tensorboard\u verbose=0,tensorboard\u dir='log')
文件“C:\Program Files\Python35\lib\site packages\tflearn\models\dnn.py”,第64行,在\uuu init中__
最佳值精度=最佳值精度)
文件“C:\Program Files\Python35\lib\site packages\tflearn\helpers\trainer.py”,第147行,在\uuu init中__
允许(空=真)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\training\saver.py”,第1056行,在\uuu init中__
self.build()
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\training\saver.py”,第1086行,内部版本
按顺序还原=自。_按顺序还原)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\training\saver.py”,第691行,内部版本
恢复(按顺序,重塑)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\training\saver.py”,第407行,在\u AddRestoreOps中
tensor=self.restore\u op(文件名\u tensor,可保存,首选\u碎片)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\training\saver.py”,第247行,在restore\u op中
[spec.tensor.dtype])[0])
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\ops\gen\u io\u ops.py”,第669行,在restore\u v2中
数据类型=数据类型,名称=名称)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\framework\op_def_library.py”,第768行,在apply_op中
op_def=op_def)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\framework\ops.py”,第2336行,在create\u op中
初始值=自身值。\默认值\初始值,初始值=初始值)
文件“C:\Program Files\Python35\lib\site packages\tensorflow\python\framework\ops.py”,第1228行,在\uuu init中__
self.\u traceback=\u extract\u stack()
非创始人
Unsuccessful TensorSliceReader constructor: Failed to find any matching files for F:\play_gta_sa\pygta_sa-car-0.001-alexnetv2-8-epochs.model
MODEL_NAME = 'pygta_sa-car-{}-{}-{}-epochs.model'.format(LR, 'alextnetv2', EPOCHS)
MODEL_NAME = 'pygta_sa-car-{}-{}-{}-epochs.model'.format(LR, 'alexnetv2',EPOCHS)