に動作しない場合、私はこのコードをPythonとTensorflowで車を運転して自己をプログラムしようとした:文がTensorflow変数
import tensorflow as tf
from PIL import ImageGrab
import numpy as np
import pyautogui as pag
import time
x_p = tf.placeholder(tf.uint8)
y_p = tf.placeholder(tf.float32)
weights = [tf.Variable(tf.random_normal([5,5,3,32],0.1)),
tf.Variable(tf.random_normal([5,5,32,64],0.1)),
tf.Variable(tf.random_normal([5,5,64,128],0.1)),
tf.Variable(tf.random_normal([25*25*128,1064],0.1)),
tf.Variable(tf.random_normal([1064,1],0.1))]
def CNN(x, weights):
output = tf.nn.conv2d(x, weights[0], [1,1,1,1], 'SAME')
output = tf.nn.relu(output)
output = tf.nn.conv2d(output, weights[1], [1,2,2,1], 'SAME')
output = tf.nn.relu(output)
output = tf.nn.conv2d(output, weights[2], [1,2,2,1], 'SAME')
output = tf.nn.relu(output)
output = tf.reshape(output, [-1,25*25*128])
output = tf.matmul(output, weights[3])
output = tf.nn.relu(output)
output = tf.matmul(output, weights[4])
output = tf.reduce_sum(output)
return output
prediction = CNN(tf.cast(x_p, tf.float32), weights)
saver = tf.train.Saver()
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
saver.restore(sess, 'saved/model.ckpt')
for t in range(5):
print(t+1)
time.sleep(1)
while True:
x = ImageGrab.grab()
x = x.resize((100,100))
x = np.asarray(x)
output = sess.run(prediction, feed_dict={x_p:[x]})
print(output)
if output < 0.5 and output > 1.5:
pag.keyDown('W')
pag.keyUp('S')
pag.keyUp('D')
pag.keyUp('A')
elif output < 1.5 and output > 2.5:
pag.keyUp('W')
pag.keyDown('S')
pag.keyUp('D')
pag.keyUp('A')
elif output < 2.5 and output > 3.5:
pag.keyDown('W')
pag.keyUp('S')
pag.keyDown('D')
pag.keyUp('A')
elif output < 3.5 and output > 4.5:
pag.keyDown('W')
pag.keyUp('S')
pag.keyUp('D')
pag.keyDown('A')
elif output < 4.5 and output > 5.5:
pag.keyDown('W')
pag.keyUp('S')
pag.keyDown('D')
pag.keyUp('A')
elif output < 5.5 and output > 6.5:
pag.keyDown('W')
pag.keyUp('S')
pag.keyUp('D')
pag.keyDown('A')
elif output < 6.5 and output > 7.5:
pag.keyUp('W')
pag.keyDown('S')
pag.keyDown('D')
pag.keyUp('A')
elif output < 7.5 and output > 8.5:
pag.keyUp('W')
pag.keyDown('S')
pag.keyUp('D')
pag.keyDown('A')
else:
pag.keyUp('W')
pag.keyUp('S')
pag.keyUp('D')
pag.keyUp('A')
しかし、問題は、出力が持っているにもかかわらず、唯一のELSE文火災ということです(例えば)1.3という値になります。私は問題がif文の変数出力によって引き起こされていることを知ることができましたが、問題を解決できませんでした。
あなたのロジックは欠陥がある:
問題は、私はあなたが書きたいと思います他のすべてのelif
でも同じです。数字は同時に1.5未満で2.5よりも大きいことができますか?私はあなたが 'elif 1.5