-
Notifications
You must be signed in to change notification settings - Fork 124
/
Copy pathanalysis_plots.Rmd
48 lines (39 loc) · 3.97 KB
/
analysis_plots.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
---
title: "power_usage"
output: pdf_document
---
```{r}
library(ggplot2)
```
```{r}
power_data <- read.table("observations_agg.csv",header=TRUE,sep=",")
e_a_model <- lm(formula = total_energy ~ accuracy, data = power_data) # 0.00136 **
e_p_model <- lm(formula = total_energy ~ params, data = power_data) # 0.0118 *
e_m_model <- lm(formula = total_energy ~ multiplies, data = power_data) # 0.0000837 ***
t_p_model <- lm(formula = time ~ params, data = power_data) # 0.0152 *
t_m_model <- lm(formula = time ~ multiplies, data = power_data) # 0.001546 **
e_p_m_model <- lm(formula = total_energy ~ params + multiplies, data = power_data) # a_r = 0.9596
t_p_m_model <- lm(formula = time ~ params + multiplies, data = power_data) # a_r = 0.8502
summary(t_p_m_model)
```
```{r}
#pairs(~ accuracy + total_energy + peak_power + time + params + multiplies, data = power_data)
```
```{r}
fancy_scientific_mil <- function(l) {
l <- paste(round(l / 1e6, 1), "")
print(l)
parse(text=l)
}
library(ggplot2)
lb <- "R^2==0.8919~(italic(p)==0.0014)"
ggplot(power_data, aes(x = accuracy)) + geom_point(aes(y = total_energy, shape = model), size=4) + stat_smooth(aes(x = accuracy, y = total_energy), method = "lm", level = 0.95) + annotate("text", x = 77, y = 370, label = lb, size=5, parse=TRUE) + ylab("Energy per Query (mJ)") + xlab("Accuracy (%)") + theme(axis.title = element_text(size = rel(1.8)), axis.text = element_text(size = rel(1.8)),legend.title=element_text(size=14),legend.text=element_text(size=14)) + scale_shape_manual(values = c(4,8,15,16,17,18,21))
lb <- "R^2==0.7498~(italic(p)==0.0118)"
ggplot(power_data, aes(x = params)) + geom_point(aes(y = total_energy, shape = model), size=4) + stat_smooth(aes(x = params, y = total_energy), method = "lm", level = 0.95) + annotate("text", x = 7e+5, y = 425, label = lb, size=5, parse=TRUE) + ylab("Energy per Query (mJ)") + xlab("Number of Parameters (millions)") + theme(axis.title = element_text(size = rel(1.8)), axis.text = element_text(size = rel(1.8)),legend.title=element_text(size=14),legend.text=element_text(size=14)) + scale_shape_manual(values = c(4,8,15,16,17,18,21)) + scale_x_continuous(labels=fancy_scientific_mil)
lb <- "R^2==0.9641~(italic(p)==1e-04)"
ggplot(power_data, aes(x = multiplies)) + geom_point(aes(y = total_energy, shape = model), size=4) +stat_smooth(aes(x = multiplies, y = total_energy), method = "lm", level = 0.95) + annotate("text", x = 5e+7, y = 410, label = lb, size=5, parse=TRUE) + ylab("Energy per Query (mJ)") + xlab("Number of Multiplies (millions)") + theme(axis.title = element_text(size = rel(1.6)), axis.text = element_text(size = rel(1.6)),legend.title=element_text(size=14),legend.text=element_text(size=14)) + scale_shape_manual(values = c(4,8,15,16,17,18,21)) + scale_x_continuous(labels=fancy_scientific_mil)
lb <- "R^2==0.7237~(italic(p)==0.0152)"
ggplot(power_data, aes(x = params)) + geom_point(aes(y = time, shape = model), size=4) + stat_smooth(aes(x = params, y = time), method = "lm", level = 0.95) + annotate("text", x = 7e+5, y = 230, label = lb, size=5, parse=TRUE) + ylab("Latency per Query (ms)") + xlab("Number of Parameters (millions)") + theme(axis.title = element_text(size = rel(1.6)), axis.text = element_text(size = rel(1.6)),legend.title=element_text(size=14),legend.text=element_text(size=14)) + scale_shape_manual(values = c(4,8,15,16,17,18,21)) + scale_x_continuous(labels=fancy_scientific_mil)
lb <- "R^2==0.8863~(italic(p)==0.0015)"
ggplot(power_data, aes(x = multiplies)) + geom_point(aes(y = time, shape = model), size=4) + stat_smooth(aes(x = multiplies, y = time), method = "lm", level = 0.95) + annotate("text", x = 5e+7, y = 220, label = lb, size=5, parse=TRUE) + ylab("Latency per Query (ms)") + xlab("Number of Multiplies (millions)") + theme(axis.title = element_text(size = rel(1.6)), axis.text = element_text(size = rel(1.6)),legend.title=element_text(size=14),legend.text=element_text(size=14)) + scale_shape_manual(values = c(4,8,15,16,17,18,21)) + scale_x_continuous(labels=fancy_scientific_mil)
```