• tensorflow解决Fizz Buzz 的问题


    问题是:

    一个网友的博客,记录他在一次面试时,碰到面试官要求他在白板上用TensorFlow写一个简单的网络实现异或(XOR)功能。这个本身并不难,单层感知器不能解决异或问题是学习神经网络中的一个常识,而简单的两层神经网络却能将其轻易解决。但这个问题的难处在于,我们接触TensorFlow通常直接拿来写CNN,或者其他的深度学习相关的网络了,而实现这种简单网络,基本上从未做过;更何况,要求在白板上写出来,如果想bug free,并不是容易的事儿啊。

     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

  • 相关阅读:
    javascript小测试
    js设计模式--策略模式
    js设计模式--迭代器模式
    面试题自我解析
    js设计模式--工厂模式
    js设计模式--单体模式
    Python学习一:Python简介
    Angularjs学习笔记《一》
    实现字体最小,不是默认的12px,可以在视觉上最小达到6px
    css3 transform之后,图片的清晰度下降解决方式
  • 原文地址:https://www.cnblogs.com/cfancy/p/12342305.html
Copyright © 2020-2023  润新知