• 简单粗暴的tensorflow模型与层


    #y_pred = a * X + b进行模型建立
    import tensorflow as tf
    X = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
    y = tf.constant([[10.0], [20.0]])
    class Linear(tf.keras.Model)#模型定义
        def __init__(self):
            super().__init__()
            self.dense = tf.keras.layers.Dense(     #全连接层
                units=1,                            #输出维度
                activation=None,                    #激活函数
                kernel_initializer=tf.zeros_initializer(),  #权重初始化
                bias_initializer=tf.zeros_initializer()     #偏置初始化
            )
    
        def call(self, input):
            output = self.dense(input)
            return output
    
    # 以下代码结构与前节类似
    model = Linear()
    optimizer = tf.keras.optimizers.SGD(learning_rate=0.01)     #模型优化器-梯度下降
    for i in range(100):
        with tf.GradientTape() as tape: #梯度录像带
            y_pred = model(X)           # 调用模型 y_pred = model(X) 而不是显式写出 y_pred = a * X + b
            loss = tf.reduce_mean(tf.square(y_pred - y))    #定义loss函数
        grads = tape.gradient(loss, model.variables)        # 计算梯度,使用 model.variables 这一属性直接获得模型中的所有变量
        optimizer.apply_gradients(grads_and_vars=zip(grads, model.variables))       #优化器进行梯度更新
    print(model.variables)
    
    
  • 相关阅读:
    null和undefined的区别
    "NetworkError: 404 Not Found fontawesome-webfont.woff?v=4.0.3
    php字符串
    php数组
    Oracle 和 MySQL的区别(不完整)
    拦截器和过滤器的区别
    SpringMVC和Struts2的区别
    Redis的介绍
    SpringBoot入门(2)
    SpringBoot入门(1)
  • 原文地址:https://www.cnblogs.com/wuyuan2011woaini/p/15904287.html
Copyright © 2020-2023  润新知