4.3 使用可能なConda環境をダウンロードして使用するためのOMLユーザー・タスク

ユーザーADMINがオブジェクト・ストレージに環境をインストールすると、OMLユーザーとして、ノートブックのR段落および埋込み実行でその環境をダウンロード、アクティブ化および使用できるようになります。

オブジェクト・ストレージに保持されているすべての環境のリスト

list-saved-envsコマンドを使用して、オブジェクト・ストレージに保存された環境のリストを取得します。

%conda

list-saved-envs 

オブジェクト・ストレージに保持されている名前付き環境に関する情報の取得

-eパラメータの引数として環境名を指定し、環境に関する情報をリクエストします。

%conda

list-saved-envs -e myrenv

出力は、次のようなものです。

{
  "name": "myrenv",
  "size": "831.5 MiB",
  "description": "Install R forecast and ggplot2 packages",
  "tags": {
    "application": "OML4R",
    "user": "OMLUSER"
  },
  "number_of_installed_packages": 121
}

環境のダウンロードとアクティブ化

downloadコマンドを使用して、オブジェクト・ストレージから環境をダウンロードします。ダウンロードした環境をアクティブ化するには、activateコマンドを使用します。

ノート:

downloadコマンドが含まれる段落は、ノートブックの最初の段落である必要があります。
%conda

download myrenv
activate myrenv
Downloading conda environment myrenv
Download successful for conda environment myrenv

環境で使用可能なパッケージのリスト

listコマンドを使用して、アクティブな環境内の全パッケージのリストを取得します。

%conda

list

出力は、次のようなものです。

# packages in environment at /u01/.conda/envs/myrenv:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
_r-mutex                  1.0.1               anacondar_1    conda-forge
binutils_impl_linux-64    2.39                 h6ceecb4_0    conda-forge
bwidget                   1.9.14               ha770c72_1    conda-forge
bzip2                     1.0.8                h7f98852_4    conda-forge
c-ares                    1.18.1               h7f98852_0    conda-forge
ca-certificates           2022.9.24            ha878542_0    conda-forge
cairo                     1.16.0            ha61ee94_1014    conda-forge
curl                      7.86.0               h2283fc2_1    conda-forge
expat                     2.5.0                h27087fc_0    conda-forge
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 hab24e00_0    conda-forge
fontconfig                2.14.1               hc2a2eb6_0    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
freetype                  2.12.1               hca18f0e_0    conda-forge
fribidi                   1.0.10               h36c2ea0_0    conda-forge
gcc_impl_linux-64         12.2.0              hcc96c02_19    conda-forge
gettext                   0.21.1               h27087fc_0    conda-forge
gfortran_impl_linux-64    12.2.0              h55be85b_19    conda-forge
graphite2                 1.3.13            h58526e2_1001    conda-forge
gsl                       2.7                  he838d99_0    conda-forge
gxx_impl_linux-64         12.2.0              hcc96c02_19    conda-forge
harfbuzz                  5.3.0                h418a68e_0    conda-forge
icu                       70.1                 h27087fc_0    conda-forge
jpeg                      9e                   h166bdaf_2    conda-forge
kernel-headers_linux-64   2.6.32              he073ed8_15    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
krb5                      1.19.3               h08a2579_0    conda-forge
ld_impl_linux-64          2.39                 hc81fddc_0    conda-forge
lerc                      4.0.0                h27087fc_0    conda-forge
libblas                   3.9.0           16_linux64_openblas    conda-forge
libcblas                  3.9.0           16_linux64_openblas    conda-forge
libcurl                   7.86.0               h2283fc2_1    conda-forge
libdeflate                1.14                 h166bdaf_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 h516909a_1    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc-devel_linux-64     12.2.0              h3b97bd3_19    conda-forge
libgcc-ng                 12.2.0              h65d4601_19    conda-forge
libgfortran-ng            12.2.0              h69a702a_19    conda-forge
libgfortran5              12.2.0              h337968e_19    conda-forge
libglib                   2.74.1               h7a41b64_0    conda-forge
libgomp                   12.2.0              h65d4601_19    conda-forge
libiconv                  1.17                 h166bdaf_0    conda-forge
liblapack                 3.9.0           16_linux64_openblas    conda-forge
libnghttp2                1.47.0               hff17c54_1    conda-forge
libopenblas               0.3.21          pthreads_h78a6416_3    conda-forge
libpng                    1.6.38               h753d276_0    conda-forge
libsanitizer              12.2.0              h46fd767_19    conda-forge
libssh2                   1.10.0               hf14f497_3    conda-forge
libstdcxx-devel_linux-64  12.2.0              h3b97bd3_19    conda-forge
libstdcxx-ng              12.2.0              h46fd767_19    conda-forge
libtiff                   4.4.0                h55922b4_4    conda-forge
libuuid                   2.32.1            h7f98852_1000    conda-forge
libwebp-base              1.2.4                h166bdaf_0    conda-forge
libxcb                    1.13              h7f98852_1004    conda-forge
libxml2                   2.10.3               h7463322_0    conda-forge
libzlib                   1.2.13               h166bdaf_4    conda-forge
make                      4.3                  hd18ef5c_1    conda-forge
ncurses                   6.3                  h27087fc_1    conda-forge
openssl                   3.0.7                h166bdaf_0    conda-forge
pango                     1.50.11              h382ae3d_0    conda-forge
pcre2                     10.37                hc3806b6_1    conda-forge
pixman                    0.40.0               h36c2ea0_0    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
r-backports               1.4.1             r41h06615bd_1    conda-forge
r-base                    4.1.3                h7880091_3    conda-forge
r-brio                    1.1.3             r41h06615bd_1    conda-forge
r-callr                   3.7.3             r41hc72bb7e_0    conda-forge
r-cli                     3.4.1             r41h7525677_1    conda-forge
r-colorspace              2.0_3             r41h06615bd_1    conda-forge
r-crayon                  1.5.2             r41hc72bb7e_1    conda-forge
r-curl                    4.3.3             r41h06615bd_1    conda-forge
r-desc                    1.4.2             r41hc72bb7e_1    conda-forge
r-diffobj                 0.3.5             r41h06615bd_1    conda-forge
r-digest                  0.6.30            r41h7525677_0    conda-forge
r-ellipsis                0.3.2             r41h06615bd_1    conda-forge
r-evaluate                0.18              r41hc72bb7e_0    conda-forge
r-fansi                   1.0.3             r41h06615bd_1    conda-forge
r-farver                  2.1.1             r41h7525677_1    conda-forge
r-forecast                8.18              r41h37cf8d7_0    conda-forge
r-fracdiff                1.5_2             r41h64d53c3_0    conda-forge
r-fs                      1.5.2             r41h7525677_2    conda-forge
r-generics                0.1.3             r41hc72bb7e_1    conda-forge
r-ggplot2                 3.4.0             r41hc72bb7e_0    conda-forge
r-glue                    1.6.2             r41h06615bd_1    conda-forge
r-gtable                  0.3.1             r41hc72bb7e_1    conda-forge
r-isoband                 0.2.6             r41h7525677_1    conda-forge
r-jsonlite                1.8.3             r41h06615bd_0    conda-forge
r-labeling                0.4.2             r41hc72bb7e_2    conda-forge
r-lattice                 0.20_45           r41h06615bd_1    conda-forge
r-lifecycle               1.0.3             r41hc72bb7e_1    conda-forge
r-lmtest                  0.9_40            r41h8da6f51_1    conda-forge
r-magrittr                2.0.3             r41h06615bd_1    conda-forge
r-mass                    7.3_58.1          r41h06615bd_1    conda-forge
r-matrix                  1.5_1             r41h5f7b363_0    conda-forge
r-mgcv                    1.8_41            r41h5f7b363_0    conda-forge
r-munsell                 0.5.0           r41hc72bb7e_1005    conda-forge
r-nlme                    3.1_160           r41h8da6f51_0    conda-forge
r-nnet                    7.3_18            r41h06615bd_1    conda-forge
r-pillar                  1.8.1             r41hc72bb7e_1    conda-forge
r-pkgconfig               2.0.3             r41hc72bb7e_2    conda-forge
r-pkgload                 1.3.1             r41hc72bb7e_0    conda-forge
r-praise                  1.0.0           r41hc72bb7e_1006    conda-forge
r-processx                3.8.0             r41h06615bd_0    conda-forge
r-ps                      1.7.2             r41h06615bd_0    conda-forge
r-quadprog                1.5_8             r41hd009a43_4    conda-forge
r-quantmod                0.4.20            r41hc72bb7e_1    conda-forge
r-r6                      2.5.1             r41hc72bb7e_1    conda-forge
r-rcolorbrewer            1.1_3             r41h785f33e_1    conda-forge
r-rcpp                    1.0.9             r41h7525677_0    conda-forge
r-rcpparmadillo           0.11.4.2.1        r41h9f5de39_0    conda-forge
r-rematch2                2.1.2             r41hc72bb7e_2    conda-forge
r-rlang                   1.0.6             r41h7525677_1    conda-forge
r-rprojroot               2.0.3             r41hc72bb7e_1    conda-forge
r-scales                  1.2.1             r41hc72bb7e_1    conda-forge
r-testthat                3.1.5             r41h7525677_1    conda-forge
r-tibble                  3.1.8             r41h06615bd_1    conda-forge
r-timedate                4021.106          r41hc72bb7e_1    conda-forge
r-tseries                 0.10_52           r41hd009a43_0    conda-forge
r-ttr                     0.24.3            r41h06615bd_1    conda-forge
r-urca                    1.3_3             r41h8da6f51_0    conda-forge
r-utf8                    1.2.2             r41h06615bd_1    conda-forge
r-vctrs                   0.5.0             r41h7525677_0    conda-forge
r-viridislite             0.4.1             r41hc72bb7e_1    conda-forge
r-waldo                   0.4.0             r41hc72bb7e_1    conda-forge
r-withr                   2.5.0             r41hc72bb7e_1    conda-forge
r-xts                     0.12.2            r41h06615bd_0    conda-forge
r-zoo                     1.8_11            r41h06615bd_1    conda-forge
readline                  8.1.2                h0f457ee_0    conda-forge
sed                       4.8                  he412f7d_0    conda-forge
sysroot_linux-64          2.12                he073ed8_15    conda-forge
tk                        8.6.12               h27826a3_0    conda-forge
tktable                   2.10                 hb7b940f_3    conda-forge
xorg-kbproto              1.0.7             h7f98852_1002    conda-forge
xorg-libice               1.0.10               h7f98852_0    conda-forge
xorg-libsm                1.2.3             hd9c2040_1000    conda-forge
xorg-libx11               1.7.2                h7f98852_0    conda-forge
xorg-libxau               1.0.9                h7f98852_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xorg-libxext              1.3.4                h7f98852_1    conda-forge
xorg-libxrender           0.9.10            h7f98852_1003    conda-forge
xorg-libxt                1.2.1                h7f98852_2    conda-forge
xorg-renderproto          0.11.1            h7f98852_1002    conda-forge
xorg-xextproto            7.3.0             h7f98852_1002    conda-forge
xorg-xproto               7.0.31            h7f98852_1007    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
zlib                      1.2.13               h166bdaf_4    conda-forge
zstd                      1.5.2                h6239696_4    conda-forge

例4-1 Conda環境でのパッケージの使用

次の例に、インストールしてアクティブ化した環境での使用可能なパッケージの使用を示します。

  1. ライブラリをロードし、警告を抑制します。

    %r
    
    library(ggplot2)
    library(forecast)
  2. データをロードして準備します。

    %r
    
    data("AirPassengers")
    # Through the end of 1956, no months in 1957
    air.train <- window(AirPassengers, end = 1956+11/12)
    # everything in 1957 and beyond
    air.test  <- window(AirPassengers, start = 1957)
    n.test <- length(air.test)
    
  3. arimaモデルをデータに適合させ、パフォーマンスを計算します。

    %r
    
    air.model <- auto.arima(air.train)
  4. 日ごとの複数ステップ予測を作成します

    %r
    
    accuracy(air.model)
    air.multi.forecast <- air.model %>% forecast(h = n.test)
    air.multi.forecast %>% autoplot()

    出力は、次のようなものです。

    図4-1 日ごとの複数ステップ予測


    日ごとの複数ステップ予測

  5. テスト・データとパフォーマンスを比較します。

    %r
    
    accuracy(air.multi.forecast, x = air.test)
    air.multi.forecast %>%
      autoplot() +
      geom_line(
        aes(
          x = as.numeric(time(air.test)),
          y = as.numeric(air.test)
        ),
        col = "red"
      )

    この例の出力は次のようになります。

    図4-2 テストおよびトレーニング・データ・セットのパフォーマンス



例4-2 関数を作成し、OML4Rスクリプト・リポジトリに保存

OML4Rでは、関数はEmbedded R Executionで実行できるように、文字列としてスクリプト・リポジトリに保存されます。関数multi.forecastを作成し、関数が想定どおりに動作することを検証した後、OML4Rスクリプト・リポジトリに保存します。

%r

multi.forecast <- function() {
	library(forecast)
	library(ggplot2)
	data("AirPassengers")
        air.train <- window(AirPassengers, end = 1956+11/12)
        air.test  <- window(AirPassengers, start = 1957)
        n.test <- length(air.test)
	air.model <- auto.arima(air.train)
	accuracy(air.model)
	air.multi.forecast <- air.model %>% forecast(h = n.test)
	air.multi.forecast %>% autoplot()
	res <- accuracy(air.multi.forecast, x = air.test)
	print(air.multi.forecast %>%
		autoplot() + geom_line(
		aes(x = as.numeric(time(air.test)), y = as.numeric(air.test)), col = "red"))
	return(res)}

Rでユーザー定義関数を実行します。

%r

multi.forecast()

この例の出力は次のようになります。

図4-3 テストおよびトレーニング・データ・セットのパフォーマンス



Embedded R Execution用のR APIを使用してユーザー定義関数を実行します。


%r

ore.doEval(FUN=multi.forecast, ore.graphics=TRUE)

この例の出力は、次のようになります。

図4-4 テストおよびトレーニング・データ・セットのパフォーマンス



ore.scriptCreate関数を使用して、1つのユーザー定義R関数をOML4Rスクリプト・リポジトリに格納します。パラメータ"multi.forecast"は、ユーザー定義関数の名前を指定する文字列です。パラメータmulti.forecastは、実行するR関数です。


%r

ore.scriptCreate("multi.forecast", multi.forecast, overwrite=TRUE)

埋込みR実行にR APIを使用して、スクリプト・リポジトリに保存したユーザー定義R関数を実行します。ユーザー定義関数を名前付きスクリプトとして参照して実行します


%r
ore.doEval(FUN.NAME="multi.forecast", ore.graphics=TRUE)

この例の出力は、次のようになります。

図4-5 テストおよびトレーニング・データ・セットのパフォーマンス



現在の環境の非アクティブ化

deactivateコマンドを使用して、環境を非アクティブ化します。

ノート:

一度にサポートされるアクティブな環境は1つのみです。そのため、新しくアクティブ化された環境によって古い環境が置き換えられます。ベスト・プラクティスとして、ログオフする前に環境を非アクティブ化します。
%conda

deactivate
Conda environment deactivated