フィズバズの問題を解決tensorflow

質問は次のとおりです。

ネチズンのブログ、彼は一度にインタビューを記録し、インタビュアーがホワイトボードにTensorFlowと排他的論理和(XOR)機能を実現するために、単純なネットワークを書くように頼んだ会いました。これ自体は難しいことではない、単層パーセプトロンは、XOR問題を解決することはできませんニューラルネットワークを学習常識であり、単純な二層ニューラルネットワークを容易に解決することができました。しかし、問題の難しさは、我々がTensorFlowと通常の直接接触はCNNを書くために使用、学習やその他の関連するネットワークの深さは、この単純なネットワークを実現しながら、基本的にはやったことがないということです。しかも、ホワイトボードに書かれた必要、あなたはバグ無料にしたい場合は、簡単なことではああではありません。

 1 from keras.layers.normalization import BatchNormalization
 2 from keras.models import Sequential
 3 from keras.utils import np_utils
 4 from keras.layers.core import Dense, Dropout, Activation
 5 from keras.optimizers import SGD, Adam
 6 import numpy as np
 7 
 8 def fizzbuzz(start,end):
 9     x_train, y_train = [], []
10     for i in range(start, end+1):
11         num = i
12         tmp = [0]*10
13         j = 0
14         while num:
15             tmp[j] = num & 1
16             num = num >> 1
17             j += 1
18         x_train.append(tmp)
19         if i % 3 == 0 and i % 5 ==0:
20             y_train.append([0, 0, 0, 1])
21         elif i % 3 == 0:
22             y_train.append([0, 1, 0, 0])
23         elif i % 5 == 0:
24             y_train.append([0, 0, 1, 0])
25         else :
26             y_train.append([1, 0, 0, 0])
27     return np.array(x_train), np.array(y_train)
28 
29 
30 x_train, y_train = fizzbuzz(101, 1000) 
31 x_test, y_test = fizzbuzz(1, 100)
32 
33 model = Sequential()
34 model.add(Dense(input_dim=10, output_dim=1000))
35 model.add(Activation('relu'))
36 model.add(Dense(output_dim=4))
37 model.add(Activation('softmax'))
38 
39 model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
40 
41 model.fit(x_train, y_train, batch_size=20, nb_epoch=100)
42 
43 result = model.evaluate(x_test, y_test, batch_size=1000)
44 
45 print('Acc:', format(result[1],  '0.2f'))

参数不同结果不同

 

 

 

 参考博客:https://www.cnblogs.com/baobaotql/p/11516611.html

おすすめ

転載: www.cnblogs.com/cfancy/p/12342305.html