用tensorflow实现弹性网络回归算法

  

本文实例为大家分享了tensorflow实现弹性网络回归算法,供大家参考,具体内容如下

  

python代码:

        #用tensorflow实现弹性网络算法(多变量)   #使用鸢尾花数据集,后三个特征作为特征,用来预测第一个特征。         # 1导入必要的编程库,创建计算图,加载数据集   进口matplotlib。pyplot作为plt   进口tensorflow特遣部队   进口numpy np   从sklearn导入数据集   从tensorflow.python.framework进口操作      ops.get_default_graph ()   税=tf.Session ()   虹膜=datasets.load_iris ()      x_vals=np。阵列([[x [1], [2], x [3]] x iris.data))   y_vals=np。数组([y y iris.data] [0])         # 2声明学习率,批量大小,占位符和模型变量,模型输出   learning_rate=0.001   batch_size=50   x_data=特遣部队。占位符(形状=(没有3)dtype=tf.float32) #占位符大小为3   y_target=特遣部队。占位符(=[没有,1],形状dtype=tf.float32)   一个=tf.Variable (tf.random_normal(形状=(3,1)))   b=tf.Variable (tf.random_normal(形状=[1]))   model_output=tf.add (tf。matmul (x_data), b)         # 3对于弹性网络回归算法,损失函数包括L1正则和L2正则   elastic_param1=tf.constant (1)。   elastic_param2=tf.constant (1)。   l1_a_loss=tf.reduce_mean (abs ())   l2_a_loss=tf.reduce_mean (tf.square (A))   e1_term=特遣部队。乘(elastic_param1 l1_a_loss)   e2_term=特遣部队。乘(elastic_param2 l2_a_loss)   损失=tf.expand_dims (tf.add (tf.add (tf.reduce_mean (tf。平方(y_target - model_output)), e1_term), e2_term), 0)            # 4初始化变量,声明优化器,然后遍历迭代运行,训练拟合得到参数   init=tf.global_variables_initializer ()   sess.run (init)   my_opt=tf.train.GradientDescentOptimizer (learning_rate)   train_step=my_opt.minimize(亏损)      loss_vec=[]   因为我在范围(1000):   rand_index=np.random.choice (len (x_vals),大?batch_size)   rand_x=x_vals [rand_index]   rand_y=np.transpose ([y_vals [rand_index]])   sess.run (train_step feed_dict={x_data: rand_x y_target: rand_y})   temp_loss=sess.run(损失,feed_dict={x_data: rand_x y_target: rand_y})   loss_vec.append (temp_loss)   如果(i + 1) % 250==0:   打印(“步”+ str (i + 1) +“=? str (sess.run (A)) + " b=' + str (sess.run (b)))   print('='损失+ str (temp_loss))         #现在能观察到,随着训练迭代后损失函数已收敛。   plt。情节(loss_vec k——)   plt。标题(“每一代损失”)   plt.xlabel(代)   plt.ylabel(“损失”)   plt.show ()      

本文参考书《Tensorflow机器学习实战指南》
  

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

用tensorflow实现弹性网络回归算法