Rstudio Serverの動作確認で使用したRとpythonのサンプルをメモとして残しておく
Rを実行したマシンのスペック確認
3 | # RHEL9+renv環境だとdevtoolsのインストールで失敗した |
4 | install.packages("rlang") |
5 | install.packages("devtools") |
6 | devtools::install_github("csgillespie/benchmarkme") |
10 | #全てのベンチマークを実行:benchmark_stdコマンド |
12 | res <- benchmark_std() |
19 | #使用環境情報の取得:get_platform_infoコマンド |
22 | #使用中のRの情報を取得:get_r_versionコマンド |
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(),実行時間のコマン ドを実施 |
Rでgrid描画のテスト
5 | grid.multipanel(vp=viewport(0.5, 0.5, 0.8, 0.8)) # デモ(1) |
6 | grid.plot.and.legend() # デモ(2) |
7 | grid.plot.and.legend # 関数定義 |
10 | #grid.arrows(x = c(0.25, 0.75), y = 0.5) |
11 | grid.circle(x=0.5, y=0.5, r=0.5) |
12 | grid.frame(name=NULL, gp=gpar(), vp=NULL) |
13 | grid.grill(h = seq(0.25, 0.75, 0.25), v = seq(0.25, 0.75, 0.25)) |
15 | grid.lines(x = c(0.25, 0.75), y = 0.5) |
18 | grid.polygon(x=c(0, 0.5, 1, 0.5), y=c(0.5, 1, 0.5, 0)) |
19 | grid.rect(x = 0.5, y = 0.5, width = 0.7, height = 0.3) |
20 | grid.segments(x0 = 0, y0 = 0, x1 = 0.5, y1 = 0.5) |
21 | grid.text(label="abc", x = 0.5, y = 0.5) |
22 | grid.text(label="g実験g", x = 0.8, y = 0.5) |
23 | grid.xaxis(at = NULL, label = T, main = T, name = NULL) |
24 | grid.yaxis(at = NULL, label = T, main = T, name = NULL) |
pythonとtensorflow/cudaのサンプル
3 | torch.cuda.is_available() |
5 | mnist = tf.keras.datasets.mnist |
7 | (x_train, y_train),(x_test, y_test) = mnist.load_data() |
8 | x_train, x_test = x_train / 255.0, x_test / 255.0 |
10 | model = 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) |
16 | model.compile(optimizer='adam', |
17 | loss='sparse_categorical_crossentropy', |
20 | model.fit(x_train, y_train, epochs=5) |
21 | model.evaluate(x_test, y_test) |
rstanのサンプル
3 | install.packages("rstan") |
11 | options(mc.cores = parallel::detectCores()) |
12 | rstan_options(auto_write = TRUE) |
15 | schools_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)) |
18 | fit <- stan(file = 'rstan-sample-input.stan', data = schools_dat) |
22 | pairs(fit, pars = c("mu", "tau", "lp__")) |
24 | la <- extract(fit, permuted = TRUE) # arraysのlistを返す |
27 | ### iterations, chains, parametersの3次元arrayを返す |
28 | a <- extract(fit, permuted = FALSE) |
30 | ### stanfitオブジェクトにS3関数を使う |
33 | d <- as.data.frame(fit) |
上記サンプル用のデータファイル rstan-sample-input.stan
2 | int<lower=0> J; // 学校の数 |
3 | real y[J]; // 推定されている教育の効果 |
4 | real<lower=0> sigma[J]; // 教育の効果の標準誤差 |
8 | real mu; // 処置の効果(全体平均) |
9 | real<lower=0> tau; // 処置の効果の標準偏差 |
10 | vector[J] eta; // 学校ごとのスケール前のバラつき |
13 | transformed parameters { |
14 | vector[J] theta = mu + tau * eta; // 学校ごとの処置の効果 |
18 | target += normal_lpdf(eta | 0, 1); // 事前分布の対数密度 |
19 | target += normal_lpdf(y | theta, sigma); // 対数尤度 |
Rでラインを引く
3 | temperature<-c(22,23,23,24,24,25,25,25,26,26) |
4 | coffee<-c(100,103,105,110,118,118,120,122,124,125) |
5 | plot(temperature,coffee) |
7 | plot(temperature,coffee, |
13 | prd<-lm(coffee~temperature) |