質問は次のとおりです。
ネチズンのブログ、彼は一度にインタビューを記録し、インタビュアーがホワイトボードに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'))
参数不同结果不同