본문 바로가기

카테고리 없음

[I2S] 9300만개 학습, char 개수 세기

CID-SMILES에는 총 111325461개(1억 1천 1백만개)가 존재한다. 

그중 smiles길이가 70이하이고 빈도가 낮은 char의 하위 절반에 속한 문자들을 포함하지 않는 smiles만 택했더니 약 9300만개가 나왔다.

총 1억 1천만 개 중에 9300만(93248512)개면.. 

상당수.

 

약 0.84 정도를 포함하는 수치

 

111325461개 smiles를 집합에는 총 68개 의 문자가 있다.

['L', ')', 's', 'c', 'd', '4', '=', '5', '0', 'm', '(', 'G', 'F', 'r', 'R', 'b', 'y', '1', 'f', 'i', 'u', 'M', 't', '8', '9', 'n', 'U', 'C', 'N', '/', '6', 'a', 'k', 'T', 'H', '2', 'e', 'W', ']', 'S', 'Z', 'P', '[', 'A', 'Y', '%', 'h', '#', 'g', 'K', 'X', 'D', 'o', 'l', 'I', 'E', '\\', 'O', '.', '-', '3', 'p', '+', 'V', '*', '@', '7', 'B']

 

 

{'k': 37, '*': 333, 'p': 441, 'X': 460, 'y': 1987, 'D': 2020, 'E': 4476, 'm': 5395, 'f': 13768, 'c': 16670, 'h': 17005, 'V': 24060, 'G': 40490, 's': 40493, 'W': 40871, 'b': 42762, 'd': 43453, '0': 46480, 'o': 50978, 't': 51219, 'U': 59561, 'g': 62102, 'M': 66626, 'L': 69534, 'R': 69605, 'Y': 77676, 'T': 85057, 'K': 93051, 'u': 100652, 'Z': 109479, 'A': 132074, 'n': 166939, '%': 206262, 'e': 229035, 'a': 375835, 'i': 2046967, 'P': 2440442, 'I': 2838061, '9': 3039708, '8': 4138257, '7': 6121391, '\\': 6838016, '#': 8217763, 'r': 8961850, '.': 9362297, 'B': 9578830, '-': 10439048, '+': 10597229, '6': 11443274, '/': 21684958, 'l': 25710458, '5': 26770497, 'S': 43140359, 'F': 45605178, 'H': 50420422, '4': 62959492, ']': 78281800, '[': 78281800, '@': 79656796, '3': 118730477, '2': 185286490, '1': 221529546, 'N': 301344066, 'O': 306881371, ')': 561555966, '(': 561555966, '=': 772050442, 'C': 2174727463}

 

이중 34개를 삭제한다)

 

batch22800에서 갑자기 에러가 뜬다.. 무슨일인가?

이유는 잘 모르겠고.. 

if batch < 22800 :

dataset = dataset.apply(tf.data.experimental.ignore_errors()) #to slove dataloss error

 

주고 다시 실행 해 보았다.

근데 22800 batch까지 넘어가는데 너무 오래걸린다. 왜 그런걸까?모르겠다...ㅜㅜ

 

UnavailableError
: Socket closed Additional GRPC error information: {"created":"@1605334055.456088564","description":"Error received from peer ipv4:10.48.205.218:8470","file":"external/com_github_grpc_grpc/src/core/lib/surface/call.cc","file_line":1056,"grpc_message":"Socket closed","grpc_status":14}

 

FailedPreconditionError: Unable to enqueue when not opened, queue: [0000:00:04.0 PE0 C0 MC0 TN0 Queue HBM_WRITE]. State is: FAILED Additional GRPC error information: {"created":"@1605342455.568123756","description":"Error received from peer ipv4:10.27.86.130:8470","file":"external/com_github_grpc_grpc/src/core/lib/surface/call.cc","file_line":1056,"grpc_message":"Unable to enqueue when not opened, queue: [0000:00:04.0 PE0 C0 MC0 TN0 Queue HBM_WRITE]. State is: FAILED","grpc_status":9}

 

메모리 문제인것 같아서 

# dataset = dataset.cache() #데이터 셋이 처음 반복될때 메모리에 캐시됩니다. 이후반복에는 캐시된 데이터를 사용합니다.

이를 주석처리했다.

 

다시 학습을 진행하고 있다.

 

learning_rate을 어떻게 설정하느냐는 매우 중요하다.

0.5씩 감소시켜서.. 현재

val_loss 0.1181

 

 

0.00051 = 5.1e-04

0.000006365 = 6.375e-05

천천히 val_loss가 감소되고있다.

train_loss = 0.1139

val_loss = 0.1181

train_loss와 val_loss의 차이가 굉장히 좁혀졌다. 학습이 잘 되어가고 있다는 증거이다.