Rstudio Serverの動作確認で使ったRとpythonのサンプル

Rstudio Serverの動作確認で使用したRとpythonのサンプルをメモとして残しておく

Rを実行したマシンのスペック確認

2#パッケージのインストール
3# RHEL9+renv環境だとdevtoolsのインストールで失敗した
4install.packages("rlang")
5install.packages("devtools")
6devtools::install_github("csgillespie/benchmarkme")
7#パッケージの読み込み
8library("benchmarkme")
9 
10#全てのベンチマークを実行:benchmark_stdコマンド
11#各ベンチマークの詳細はヘルプを参照
12res <- benchmark_std()
13#結果をプロット
14plot(res)
15 
16#CPU情報の取得:get_cpuコマンド
17get_cpu()
18 
19#使用環境情報の取得:get_platform_infoコマンド
20get_platform_info()
21 
22#使用中のRの情報を取得:get_r_versionコマンド
23get_r_version()
24 
25 
26#システム情報に関する全コマンドを実施:get_sys_detailsコマンド
27#Sys.info(),get_platform_info(),get_r_version(),get_ram(),get_cpu()
28#get_byte_compiler(),get_linear_algebra(),installed.packages(),実行時間のコマン ドを実施
29#表示が多いので省略
30get_sys_details()

Rでgrid描画のテスト

1#http://www.okadajp.org/RWiki/?grid+%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E4%BA%8B%E5%A7%8B
2 
3library(grid)
4 
5grid.multipanel(vp=viewport(0.5, 0.5, 0.8, 0.8))  # デモ(1)
6grid.plot.and.legend()                            # デモ(2)
7grid.plot.and.legend                              # 関数定義
8 
9grid.newpage()
10#grid.arrows(x = c(0.25, 0.75), y = 0.5)
11grid.circle(x=0.5, y=0.5, r=0.5)
12grid.frame(name=NULL, gp=gpar(), vp=NULL)
13grid.grill(h = seq(0.25, 0.75, 0.25), v = seq(0.25, 0.75, 0.25))
14 
15grid.lines(x = c(0.25, 0.75), y = 0.5)
16grid.line.to(x=1, y=1)
17 
18grid.polygon(x=c(0, 0.5, 1, 0.5), y=c(0.5, 1, 0.5, 0))
19grid.rect(x = 0.5, y = 0.5, width = 0.7, height = 0.3)
20grid.segments(x0 = 0, y0 = 0, x1 = 0.5, y1 = 0.5)
21grid.text(label="abc", x = 0.5, y = 0.5)
22grid.text(label="g実験g", x = 0.8, y = 0.5)
23grid.xaxis(at = NULL, label = T, main = T, name = NULL)
24grid.yaxis(at = NULL, label = T, main = T, name = NULL)

pythonとtensorflow/cudaのサンプル

1import tensorflow as tf
2import torch
3torch.cuda.is_available()
4 
5mnist = tf.keras.datasets.mnist
6 
7(x_train, y_train),(x_test, y_test) = mnist.load_data()
8x_train, x_test = x_train / 255.0, x_test / 255.0
9 
10model = tf.keras.models.Sequential([
11  tf.keras.layers.Flatten(),
12  tf.keras.layers.Dense(512, activation=tf.nn.relu),
13  tf.keras.layers.Dropout(0.2),
14  tf.keras.layers.Dense(10, activation=tf.nn.softmax)
15])
16model.compile(optimizer='adam',
17              loss='sparse_categorical_crossentropy',
18              metrics=['accuracy'])
19 
20model.fit(x_train, y_train, epochs=5)
21model.evaluate(x_test, y_test)

rstanのサンプル

2 
3install.packages("rstan")
4install.packages("cmdstanr", repos = c("https://mc-stan.org/r-packages/", getOption("repos")))
5library(cmdstanr)
6install_cmdstan()
7 
10library(rstan)
11options(mc.cores = parallel::detectCores())
12rstan_options(auto_write = TRUE)
13 
14# 例 1: Eight Schools
15schools_dat <- list(J = 8,
16                    y = c(28,  8, -3,  7, -1,  1, 18, 12),
17                    sigma = c(15, 10, 16, 11,  9, 11, 10, 18))
18fit <- stan(file = 'rstan-sample-input.stan', data = schools_dat)
19# ↑ の処理は時間がかかる
20print(fit)
21plot(fit)
22pairs(fit, pars = c("mu", "tau", "lp__"))
23 
24la <- extract(fit, permuted = TRUE) # arraysのlistを返す
25mu <- la$mu
26 
27### iterations, chains, parametersの3次元arrayを返す
28a <- extract(fit, permuted = FALSE)
29 
30### stanfitオブジェクトにS3関数を使う
31a2 <- as.array(fit)
32m <- as.matrix(fit)
33d <- as.data.frame(fit)

上記サンプル用のデータファイル rstan-sample-input.stan

1data {
2  int<lower=0> J;         // 学校の数
3  real y[J];              // 推定されている教育の効果
4  real<lower=0> sigma[J]; // 教育の効果の標準誤差
5}
6 
7parameters {
8  real mu;                // 処置の効果(全体平均)
9  real<lower=0> tau;      // 処置の効果の標準偏差
10  vector[J] eta;          // 学校ごとのスケール前のバラつき
11}
12 
13transformed parameters {
14  vector[J] theta = mu + tau * eta;        // 学校ごとの処置の効果
15}
16 
17model {
18  target += normal_lpdf(eta | 0, 1);       // 事前分布の対数密度
19  target += normal_lpdf(y | theta, sigma); // 対数尤度
20}

Rでラインを引く

2 
3temperature<-c(22,23,23,24,24,25,25,25,26,26)
4coffee<-c(100,103,105,110,118,118,120,122,124,125)
5plot(temperature,coffee)
6 
7plot(temperature,coffee,
8     xlim=c(20,30),
9     ylim=c(90,130),
10     main=("コーヒーの売れ行き"),
11     pch=17
12)
13prd<-lm(coffee~temperature)
14abline(prd)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

StatCounter - Free Web Tracker and Counter