zoukankan      html  css  js  c++  java
  • tensorflow2.0——波士顿房价数据与房间数关系的预测

    import tensorflow as tf
    import matplotlib.pylab as plt
    import numpy as np
    
    # 调用数据
    boston_house = tf.keras.datasets.boston_housing
    (train_x, train_y), (test_x, test_y) = boston_house.load_data(test_split=0.1)
    room_num = train_x[:, 5]                # 房间数
    price = train_y                         # 标记值
    w = tf.Variable(np.random.randn())      # 系数W
    b = tf.Variable(np.random.randn())      # 偏置b
    iter = 1000                             # 迭代次数
    learn_rate = 0.0001                     # 学习率
    loss_list = []                          #   存放loss值
    for i in range(iter):
        with tf.GradientTape() as tape:
            price_pre = w * room_num + b
            loss = pow(tf.reduce_mean(price - price_pre), 2) / 2
        dloss_dw, dloss_db = tape.gradient(loss, [w, b])                #   求偏导
        w.assign_sub(learn_rate * dloss_dw)                             #   更新参数w
        w.assign_sub(learn_rate * dloss_db)
        if i % 100 == 0:
            print('i:', i)
            print('loss:{},w:{}'.format(loss, w))
            loss_list.append(loss)
    
    plt.rcParams["font.family"] = 'SimHei'              # 将字体改为中文
    plt.rcParams['axes.unicode_minus'] = False          # 设置了中文字体默认后,坐标的"-"号无法显示,设置这个参数就可以避免
    plt.subplot(221)
    plt.plot(loss_list, label='训练集损失值')
    plt.legend()
    
    plt.subplot(223)
    test_room = test_x[:,5]
    pre_y = w * test_room+ b
    plt.plot(test_room, pre_y, label='预测线')
    plt.scatter(test_room ,test_y,s = 2)
    plt.legend()
    plt.show()

  • 相关阅读:
    <form:select>的使用
    存储过程-删除、新建索引
    java 反射常用总结
    java判断是否是数字
    jquery遍历数组添加行删除行
    oracle常用sql
    cxf (zhuan)
    linux 常用命令--个人小结一
    java发送邮件
    socket和webservice特点
  • 原文地址:https://www.cnblogs.com/cxhzy/p/13409854.html
Copyright © 2011-2022 走看看