-
728x90
4/25
net = Architecture(class_cardinality=len(cardinal_classes), name="wavception")
batcher = get_batcher(training_list, 16, le_classes)
for i, (batch_x, batch_y) in enumerate(batcher):
_, loss, acc, s = sess.run([net.op.op, net.losses.softmax, net.summ.accuracy, net.summ.s_tr],
feed_dict={net.ph.wav_in: batch_x,
net.ph.target: batch_y,
net.ph.is_train: True})
이름, 국어, 영어, 수학이라는 4개의 변수를 담을 수 있는 클래스입니다.
말씀하신 것처럼 __init__이라는 생성자가 있죠.
__init__을 사용하면 클래스명을 쓰고 옆에 바로 인자들을 채워 넣음으로써 그 값들을 지닌 객체를 만들어 낼 수 있죠.
파이썬에서는 클래스에서 사용하는 함수의 첫번째 인자(parameter)를 self로 사용하는 것이 원칙입니다.
맨 위에서 클래스 선언 할 때는 def average(self)로 선언했는데, 실제로 사용할 때는 self는 빼고 그냥 hgd.average()라고 썼죠.
왜냐하면, 클래스의 함수는 선언할 때 첫번째 인자는 self라고 선언하는 것이 원칙이고, 사용할 때는 self는 무조건 주어지는 것이 파이썬의 원칙이니까 그건 빼고 쓰는거에요.
음성파일+노이즈(pink/white...) =filepaths = train_list + validation_list + test_list
-> train_list -> 동적할당->batching ->batch당 모델링 -> scoring_list로 예측
# 동적 할당
class NameSpacer:
def __init__(self, **kwargs): # {"wav_in": wav_in, "target": target, "is_train": is_train, "acc_dev": acc_dev, "loss_dev": loss_dev}
self.__dict__.update(kwargs)
self.placeholders = NameSpacer(**self.define_placeholders()) # self.__dict__.update(define_placeholders()) = NameSpacer().Placeholders/wav_in/.target/...728x90