Я наткнулся на пользовательскую фиктивную модель линейной регрессии, где код выглядит примерно так:
class RegressionModel(tf.keras.Model): # every new model has to use Model
'''
A Model that performs Linear Regression
'''
def __init__(self,in_units,out_units):
'''
args:
in_units: number of input neurons
out_units: number of output units
'''
super(RegressionModel,self).__init__() # constructor of Parent class
self.in_units = in_units
self.out_units = out_units
self.w = tf.Variable(tf.initializers.GlorotNormal()((self.in_units,self.out_units)))
# make weight which has initial weights according to glorot_normal distribution
self.b = tf.Variable(tf.zeros(self.out_units)) # bias is mostly zeros
def call(self,input_tensor):
'''
execurte forward pass
args:
input_tensor: input tensor which will be fed to the network
'''
return tf.matmul(input_tensor, self.w) + self.b
Я хочу спросить, почему weight
имеет 2-мерную форму in,out
, а смещение имеет только out
и более конкретно, почему weight
имеет 2D-форму?