{"metadata":{"kernelspec":{"name":"ir","display_name":"R","language":"R"},"language_info":{"name":"R","codemirror_mode":"r","pygments_lexer":"r","mimetype":"text/x-r-source","file_extension":".r","version":"4.4.0"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[],"dockerImageVersionId":30751,"isInternetEnabled":true,"language":"r","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"install.packages(\"keras\")\ninstall.packages(\"tensorflow\")\n\n# Load libraries\nlibrary(keras)\nlibrary(tensorflow)\n\n# Install TensorFlow backend (run once if not installed)\ninstall_tensorflow()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-03-11T06:45:49.179437Z","iopub.execute_input":"2026-03-11T06:45:49.181174Z","iopub.status.idle":"2026-03-11T06:47:01.010021Z","shell.execute_reply":"2026-03-11T06:47:01.008441Z"}},"outputs":[{"name":"stderr","text":"Installing package into ‘/usr/local/lib/R/site-library’\n(as ‘lib’ is unspecified)\n\nInstalling package into ‘/usr/local/lib/R/site-library’\n(as ‘lib’ is unspecified)\n\n","output_type":"stream"},{"name":"stdout","text":"Virtual environment 'r-tensorflow' removed.\nUsing Python: /usr/bin/python3.10\nCreating virtual environment 'r-tensorflow' ... \n","output_type":"stream"},{"name":"stderr","text":"+ /usr/bin/python3.10 -m venv /root/.virtualenvs/r-tensorflow\n\n","output_type":"stream"},{"name":"stdout","text":"Done!\nInstalling packages: pip, wheel, setuptools\n","output_type":"stream"},{"name":"stderr","text":"+ /root/.virtualenvs/r-tensorflow/bin/python -m pip install --upgrade pip wheel setuptools\n\n","output_type":"stream"},{"name":"stdout","text":"Virtual environment 'r-tensorflow' successfully created.\nUsing virtual environment 'r-tensorflow' ...\n","output_type":"stream"},{"name":"stderr","text":"+ /root/.virtualenvs/r-tensorflow/bin/python -m pip install --upgrade --no-user 'tensorflow==2.20.*'\n\n","output_type":"stream"},{"name":"stdout","text":"\nInstallation complete.\n\n","output_type":"stream"}],"execution_count":29},{"cell_type":"code","source":"X_train <- array(runif(1000), dim = c(100, 10, 10))\n\n# Create labels from 0–9 (10 classes)\nlabels <- sample(0:9, 100, replace = TRUE)\n\n# Convert labels to categorical (one-hot encoding)\ny_train <- to_categorical(labels, num_classes = 10)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-03-11T06:47:01.012412Z","iopub.execute_input":"2026-03-11T06:47:01.013789Z","iopub.status.idle":"2026-03-11T06:47:01.029133Z","shell.execute_reply":"2026-03-11T06:47:01.027856Z"}},"outputs":[],"execution_count":30},{"cell_type":"code","source":"model <- keras_model_sequential() %>%\n  layer_lstm(\n    units = 50,\n    input_shape = c(10, 10)\n  ) %>%\n  layer_dense(\n    units = 10,\n    activation = \"softmax\"\n  )\nmodel %>% compile(\n  loss = \"categorical_crossentropy\",\n  optimizer = optimizer_adam(),\n  metrics = c(\"accuracy\")\n)\n\n# Show model architecture\nsummary(model)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-03-11T06:47:01.031380Z","iopub.execute_input":"2026-03-11T06:47:01.032605Z","iopub.status.idle":"2026-03-11T06:47:01.283459Z","shell.execute_reply":"2026-03-11T06:47:01.281804Z"}},"outputs":[{"name":"stdout","text":"Model: \"sequential_6\"\n________________________________________________________________________________\n Layer (type)                       Output Shape                    Param #     \n================================================================================\n lstm_6 (LSTM)                      (None, 50)                      12200       \n dense_6 (Dense)                    (None, 10)                      510         \n================================================================================\nTotal params: 12,710\nTrainable params: 12,710\nNon-trainable params: 0\n________________________________________________________________________________\n","output_type":"stream"}],"execution_count":31},{"cell_type":"code","source":"history <- model %>% fit(\n  X_train,\n  y_train,\n  epochs = 10,\n  batch_size = 32,\n  validation_split = 0.2\n)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-03-11T06:47:01.285669Z","iopub.execute_input":"2026-03-11T06:47:01.287021Z","iopub.status.idle":"2026-03-11T06:47:04.029097Z","shell.execute_reply":"2026-03-11T06:47:04.027457Z"}},"outputs":[],"execution_count":32},{"cell_type":"code","source":"\nscore <- model %>% evaluate(X_train, y_train)\n\nprint(score)\n\ncat(\"Test loss:\", score[\"loss\"], \"\\n\")\ncat(\"Test accuracy:\", score[\"accuracy\"], \"\\n\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-03-11T06:47:04.031464Z","iopub.execute_input":"2026-03-11T06:47:04.032766Z","iopub.status.idle":"2026-03-11T06:47:04.177544Z","shell.execute_reply":"2026-03-11T06:47:04.149501Z"}},"outputs":[{"name":"stdout","text":"    loss accuracy \n2.227077 0.160000 \nTest loss: 2.227077 \nTest accuracy: 0.16 \n","output_type":"stream"}],"execution_count":33},{"cell_type":"code","source":"predictions <- model %>% predict(X_train)\n\n# Show first prediction\nprint(predictions[1,])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-03-11T06:47:04.182092Z","iopub.execute_input":"2026-03-11T06:47:04.183701Z","iopub.status.idle":"2026-03-11T06:47:04.609933Z","shell.execute_reply":"2026-03-11T06:47:04.608191Z"}},"outputs":[{"name":"stdout","text":" [1] 0.09753080 0.14767092 0.12659180 0.04785443 0.06404027 0.07024606\n [7] 0.12305354 0.10367487 0.13839653 0.08094072\n","output_type":"stream"}],"execution_count":34},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}