UOMOP
DeepJSCC 본문
import pandas as pd
import matplotlib.pyplot as plt
# 예시 데이터를 생성합니다. 실제 데이터로 대체해야 합니다.
data = {
'SNRdB': [0, 5, 10, 15, 20, 25, 30, 35, 40],
'16': [14.887, 16.154, 17.048, 17.507, 17.702, 17.766, 17.786, 17.804, 17.803],
'32': [15.842, 17.312, 18.337, 18.996, 19.249, 19.333, 19.365, 19.381, 19.396],
'64': [16.925, 18.627, 19.936, 20.736, 21.071, 21.193, 21.251, 21.281, 21.281],
'128': [18.112, 20.226, 21.793, 22.851, 23.307, 23.497, 23.555, 23.599, 23.607],
'256': [19.446, 21.943, 23.946, 25.371, 26.066, 26.321, 26.457, 26.491, 26.524],
'512': [20.935, 23.658, 26.053, 28.223, 29.422, 29.971, 30.234, 30.377, 30.413],
'1024': [22.483, 25.216, 27.631, 29.473, 30.941, 31.756, 32.044, 32.235, 32.329]
}
# 데이터를 DataFrame으로 변환합니다.
df = pd.DataFrame(data)
# 압축률 계산
output_lengths = [16, 32, 64, 128, 256, 512, 1024]
compression_rates = [length / 3072 for length in output_lengths]
from fractions import Fraction
# 압축률을 분수 형태로 계산하는 함수
def calculate_compression_rate_fractions(output_lengths, total_pixels=3072):
return [Fraction(ol, total_pixels).limit_denominator() for ol in output_lengths]
# 분수 형태의 압축률 계산
compression_rates_fractions = calculate_compression_rate_fractions(output_lengths)
# 그래프를 그립니다.
plt.figure(figsize=(8, 6))
# 각 output length에 대해 별도의 선을 그립니다.
for ol, cr in zip(output_lengths, compression_rates_fractions):
plt.plot(df['SNRdB'], df[str(ol)], label=f'Compression Rate {cr}')
# 범례를 표시합니다.
plt.legend()
# 축 라벨을 설정합니다.
plt.xlabel('SNRdB')
plt.ylabel('PSNR')
# 그래프 제목을 설정합니다.
plt.title('PSNR vs SNRdB for Different Compression Rates')
plt.ylim(0, 40)
# 그래프를 보여줍니다.
plt.grid(True)
plt.show()
'Main' 카테고리의 다른 글
High Attention Selection (0) | 2024.03.15 |
---|---|
Low Attention Selection (0) | 2024.03.15 |
Patch selection with zero padding (0) | 2024.03.13 |
cifar10 patch correlation map (0) | 2024.03.11 |
DDPM cifar10 Simple Unet (1) | 2024.02.14 |
Comments