国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

輕松實現TensorFlow微信跳一跳的AI

2020-02-16 11:27:48
字體:
來源:轉載
供稿:網友

作為python和機器學習的初學者,目睹了AI玩游戲的各種風騷操作,心里也是躍躍欲試。

然后發現微信跳一跳很符合需求,因為它不需要處理連續畫面(截屏太慢了)和復雜的操作,很適合拿來練手。于是…這個東西誕生了,目前它一般都可以跳到100多分,發揮好了能上200。

1.需要設備:

Android手機,數據線
ADB環境
Python環境(本例使用3.6.1)
TensorFlow(本例使用1.0.0)

2.大致原理

使用adb模擬點擊和截屏,使用兩層卷積神經網絡作為訓練模型,截屏圖片作為輸入,按壓毫秒數直接作為為輸出。

3.訓練過程

最開始想的用強化學習,然后發現讓它自己去玩成功率太!低!了!,加上每次截屏需要大量時間,就放棄了這個方法,于是考慮用自己玩的數據作為樣本喂給它,這樣就需要知道每次按壓的時間。

我是這樣做的,找一個手機寫個app監聽按壓屏幕時間,另一個手機玩游戲,然后兩個手指同時按兩個手機o(╯□╰)o

4.上代碼

首先,搭建模型:

第一層卷積:5*5的卷積核,12個featuremap,此時形狀為96*96*12
池化層:4*4 max pooling,此時形狀為24*24*12
第二層卷積:5*5的卷積核,24個featuremap,此時形狀為20*20*24
池化層:4*4 max pooling,此時形狀為5*5*24
全連接層:5*5*24連接到32個節點,使用relu激活函數和0.4的dropout率
輸出:32個節點連接到1個節點,此節點就代表按壓的時間(單位s)

# 輸入:100*100的灰度圖片,前面的None是batch size,這里都為1 x = tf.placeholder(tf.float32, shape=[None, 100, 100, 1]) # 輸出:一個浮點數,就是按壓時間,單位s y_ = tf.placeholder(tf.float32, shape=[None, 1])  # 第一層卷積 12個feature map W_conv1 = weight_variable([5, 5, 1, 12], 0.1) b_conv1 = bias_variable([12], 0.1) # 卷積后為96*96*12  h_conv1 = tf.nn.relu(conv2d(x, W_conv1) + b_conv1) h_pool1 = max_pool_4x4(h_conv1) # 池化后為24*24*12  # 第二層卷積 24個feature map W_conv2 = weight_variable([5, 5, 12, 24], 0.1) b_conv2 = bias_variable([24], 0.1) # 卷積后為20*20*24  h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2) h_pool2 = max_pool_4x4(h_conv2) # 池化后為5*5*24  # 全連接層5*5*24 --> 32 W_fc1 = weight_variable([5 * 5 * 24, 32], 0.1) b_fc1 = bias_variable([32], 0.1) h_pool2_flat = tf.reshape(h_pool2, [-1, 5 * 5 * 24]) h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)  # drapout,play時為1訓練時為0.6 keep_prob = tf.placeholder(tf.float32) h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob) # 學習率 learn_rate = tf.placeholder(tf.float32)  # 32 --> 1 W_fc2 = weight_variable([32, 1], 0.1) b_fc2 = bias_variable([1], 0.1) y_fc2 = tf.matmul(h_fc1_drop, W_fc2) + b_fc2  # 因輸出直接是時間值,而不是分類概率,所以用平方損失 cross_entropy = tf.reduce_mean(tf.square(y_fc2 - y_)) train_step = tf.train.AdamOptimizer(learn_rate).minimize(cross_entropy)             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉田县| 宝坻区| 勃利县| 武陟县| 金沙县| 临夏县| 永安市| 荣成市| 新安县| 寻乌县| 平顺县| 青海省| 曲阳县| 望谟县| 叶城县| 获嘉县| 遵化市| 同心县| 循化| 乳山市| 余庆县| 南乐县| 黑龙江省| 灵山县| 清涧县| 苗栗县| 乐业县| 鄂托克旗| 修水县| 合水县| 板桥市| 陆良县| 烟台市| 东丽区| 无棣县| 禹州市| 富裕县| 谢通门县| 曲周县| 涪陵区| 邹城市|