tensorflow实现多层感知机

    xiaoxiao2022-07-08  211

    '''tensorflow 多层感知机识别手写数字''

    #导入数据

    import tensorflow as tf

    import tensorflow.tutorials.minist.input_data as input_data

    minist=input_data.read_datasets('MNIST_data/',one_hot=True)

     

     

    #使用layer函数

    def layer(output_dim,input_dim,inputs,activation=None):

          W=tf.Variable(tf.random_normal([input_dim,ouput_dim]))

          b=tf.Variable(tf.random_normal([1,output_dim]))

          xWb=tf.matmul(inputs,W)+b

         if activation is None:

             outputs=xWb

        else:

             outputs=activation(xWb)

       return ouputs

    #建立输入层

    x=tf.placeholder('float',[None,784])

    #建立隐藏层

    h1=layer(out_dim=256,input_dim=784,inputs=x,activation=tf.nn.relu)

    #建立输出层

    y_predict=layer(output_dim=10,input_dim=256,inputs=h1,activation=None)

    '''定义训练方式'''

    #建立训练数据label真实值的placeholder

    y_label=tf.placeholder('float',[None,10])

    #定义损失函数

    loss_function=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=y_predict,labels=y_label))

    #定义优化器

    optimizer=tf.train.Adamoptimizer(learning_rate=0.001).minimize(loss_function)

    '''定义评估模型准确率的方式'''

    correct_prediction=tf.equal(tf.argmax(y_label,1),tf.argmax(y_predict,1))

    #计算预测结果正确结果的平均值

    accurary=tf.reduce_mean(tf.cast(correct_prediction,'float'))

    trainEpochs=15

    batchsize=100

    loss_list=[];epoch_list=[];accurary_list=[]

    from time import time

    startTime=time()

    sess=tf.Session()

    sess.run(tf.global_variables_initializer())

    for epoch in range(trainEpochs):

          for i in range(totalBatchs):

    ###未完待续####

       

     

     

    最新回复(0)