import tensorflow as tf
class MyModel(tf.keras.Model):
def __init__(self, **kwargs):
super(MyModel, self).__init__(**kwargs)
self.dense1 = tf.keras.layers.Dense(2 , activation = 'swish')
self.dense2 = tf.keras.layers.Dense(1)
def call(self, x):
h = self.dense1(x)
y = self.dense2(h)
return y
model = MyModel() # model.compile(loss="mse") model.compile(loss='mse')
model.compile(loss='mse')
model(독립.values) # fit . predict 를 하면 자동으로 실행
packing = 한 변수에 여러 개의 데이터를 할당하여, 여러개의 객체를 하나의 객체로 합쳐주는 것
unpacking = 패킹과 반대되는 개념으로, 한 변수의 데이터를 각각의 변수로 반환하는 것
a = [1,2,3,4]
print(a)
b,c,d,e = [1,2,3,4]
b,*c = [1,2,3,4] # packing * 을 사용하면 나머지 데이터를 전부 가진다
print(b,c)
d = [*a , 5 , 6] # unpacking 리스트 안에 unpacking 을 하면 해당 데이터를 추가한다.
print(d)
a = {'a':1 , 'b':2,'c':3}
print(a)
b = {**a , 'd':4,'e':5}
print(b)
a,**b = {"a":1 , "b":2 , "c":3} # dict 는 packing 은 안된다
print(a,b)
data = [[**d , "aivler":True] for d in data] # 파이썬에서 dict unpacking 기법
# 함수 unpacking
def add(a,b,c):
return a,b,c
d = [1,2,3]
print(add(*d)) # unpacking 을 통해서 보낼수 있다.
d = {"a" : 1 , "c": 3 , "b": 2}
print(add(**d)) # unpacking
def add(*a):
print(a)
return sum(a)
import tensorflow as tf
class MyModel(tf.keras.Model):
def __init__(self,**kwargs):
super(MyModel , self).__init__(**kwargs)
self.flatten = tf.keras.layers.Flatten()
self.dense1 = tf.keras.layers.Dense(64 , activation = 'swish')
self.bn1 = tf.keras.layers.BatchNormalization()
self.dense2 = tf.keras.layers.Dense(20 , activation = 'swish')
self.bn2 = tf.keras.layers.BatchNormalization()
self.dense3 = tf.keras.layers.Dense(10 , activation = 'softmax')
def call(self,x):
h = self.flatten(x)
h = self.dense1(h)
h = self.bn1(h)
h = self.dense2(h)
h = self.bn2(h)
y = self.dense3(h)
return y
model = MyModel()
model.compile(loss='sparse_categorical_crossentropy' , metrics = 'accuracy')
model.build(input_shape = [28,28]) # input shape 을 지정해주는 부분