python 출력 결과 새로 고침 및 진도 바 구현 작업
python 출력 은 주로 print 함 수 를 사용 합 니 다.print 함수 소개:
print(*objects, sep=' ', end='', file=sys.stdout, flush=False)
*objects 는 인쇄 할 값 을 표시 하고 여러 개의 이름 없 는 인자 나 인쇄 할 값 을 표시 합 니 다.
sep=',위 에서 인쇄 할 값 의 중간 간격 에 대응 하여 기본적으로 빈 칸 입 니 다.
end='',입력 값 이 인쇄 된 후의 끝 기호 입 니 다.기본 값 은 줄 바 꿈 문자 이 고 스스로 설정 할 수 있 습 니 다.
file=sys.stdout,인쇄 출력 파 라 메 터 를 설정 하고 기본 값 으로 터미널 에 인쇄 하 며 인쇄 를 파일 에 저장 할 수 있 습 니 다.
flush=False,인쇄 결 과 를 새로 고 칠 지 여부 입 니 다.
한 줄 의 출력 결과 와 새로 고침
한 줄 에 출력 결 과 를 표시 하고 새로 고침 할 때마다'\r'는 현재 의 시작 으로 돌아 가 는 것 을 표시 합 니 다.end='는 끝 문자 가 비어 있 음 을 표시 합 니 다.그러면 매번 결 과 를 업데이트 할 수 있 습 니 다.
import time
for i in range(15):
time.sleep(0.5) # , sleep
print('\r', i, end='')
# print('\r', 15-i, end='') #
위의 코드 에 문제 가 있 습 니 다.출력 i 가 크 고 작 을 때 자릿수 변화 가 있 을 때 결과 가 정확 하지 않 습 니 다.format 으로 출력 을 포맷 하여 문 제 를 해결 할 수 있 습 니 다.
import time
for i in range(15):
time.sleep(0.5)
print('\r', "{:d}".format(15-i), end='')
모형 훈련 중 loss 와 acc 의 리 셋 출력우 리 는 기계 학습 과 깊이 있 는 학습 모델 을 훈련 할 때 한 동안 손실 함수 와 정확 도 를 출력 합 니 다.매번 직접 print 로 출력 하고 단말 기 는 많은 정 보 를 출력 합 니 다.여 기 는 한 줄 로 출력 하고 새로 고침 하 는 방법 으로 이런 정 보 를 출력 합 니 다.우 리 는 epochs 와 batch 의 수량 을 설정 하고 매번 batch 출력 이 새로 고침 되 며 한 epoch 가 끝 난 후에 train 과 test 의 결 과 를 동시에 출력 합 니 다.
import time
# epochs batch
epochs = 5
n_batch = 15
# loss acc
train_loss = 1.2345
train_acc = 0.345678
test_loss = 1.1234
test_acc = 0.235467
for i in range(epochs):
for j in range(n_batch):
time.sleep(0.5)
train_loss -= 0.001
train_acc += 0.0001
print("\rEpoch: {:d} batch: {:d} loss: {:.4f} acc: {:.4f} | {:.2%}"
.format(i+1, j+1, train_loss, train_acc, (j+1)*1.0/n_batch), end='')
test_loss -= 0.001
test_acc += 0.0001
print("\rEpoch: {:d}/{:d} train_loss: {:.4f} test_loss: {:.4f} train_acc: {:.4f} test_acc: {:.4f}"
.format(i+1, 5, train_loss, test_loss, train_acc, test_acc), end='
')
여기 주의 하 세 요.print 에 있 는"Epoch"앞 에"\r"가 있 습 니 다.이것 은 반드시 있어 야 합 니 다.동시에 안쪽 순환 end=",바깥 순환 end="가 있어 야 합 니 다.최종 인쇄 결 과 는 다음 과 같 습 니 다.tqdm 진행 표시 줄
먼저 tqdm:pip install tqdm 설치
간단하게 사용 하고 정 수 를 읽 으 며 tqdm 에 list 를 직접 전달 합 니 다.만약 에 정수 가 주어진 다 면 trange 를 직접 사용 할 수 있 습 니 다.
import time
from tqdm import tqdm, trange
for i in tqdm(range(100)):
time.sleep(0.05)
# do something
# for i in trange(100):
# time.sleep(0.05)
# # do something
결 과 는 다음 과 같 습 니 다.백분율 과 현재 몇 개 까지 처 리 했 는 지 보 여 줍 니 다.tdqm 에서 입력 한 list 는 문자열 일 수도 있 고 출력 진도 항목 에 대한 설명 을 추가 할 수도 있 습 니 다.
import time
from tqdm import tqdm
pbar = tqdm(["a", "b", "c", "d", "e"])
for char in pbar:
time.sleep(0.8)
pbar.set_description("Processing %s" % char)
# pbar.set_description("Processing {0}".format(char))
이상 의 python 출력 결과 갱신 및 진도 항목 의 실현 작업 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.