R Academy · 课时

在 R 中设置 Keras 和 TensorFlow

安装 keras R 软件包,配置 Python 后端并验证设置

第 1 / 4 课13 个步骤

在 R 中设置 Keras 和 TensorFlow 是 CoddyKit 上的免费 R Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 R Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 R Academy 课程共包含 4 节课。

使用 Keras 在 R 中进行深度学习

keras R 包为 TensorFlow 提供了高级接口。该包由 Posit(原 RStudio)维护,并且与 Python Keras API 高度一致。R keras 在底层使用 reticulate 调用 Python TensorFlow,因此您可以通过 R 语法使用 TensorFlow 的全部功能。

# Install the R package from CRAN
# install.packages('keras')

# Then install TensorFlow Python environment
library(keras)
install_keras()  # creates a Python venv with TF installed

# For GPU-enabled TensorFlow:
# install_keras(tensorflow = 'gpu')

install_keras() 与后端

install_keras() 会创建专用的 Python 环境(Miniconda 或 virtualenv),并安装 TensorFlow 及其依赖项。您可以指定 TensorFlow 版本、Python 版本,以及是否安装 CPU 或 GPU 支持。默认情况下,它会安装最新的稳定版 CPU 版本。

library(keras)

# Install specific TF version in a custom env
install_keras(
  method      = 'conda',
  envname     = 'r-keras-tf2',
  tensorflow  = '2.15',
  version     = 'default'
)

# Check which Python environment is active
reticulate::py_config()

library(keras) 与 is_keras_available()

library(keras) 会加载 R 绑定。加载后,请使用 is_keras_available() 检查 Keras/TF Python 后端是否确实可访问。如果已安装 TensorFlow 且可以导入,该函数会返回 TRUE;如果缺少 Python 环境,则会返回 FALSE 并显示有帮助的提示。

library(keras)

# Check backend availability
if (is_keras_available()) {
  cat('Keras is ready!\n')
} else {
  cat('Keras not available. Run install_keras() first.\n')
}

# Check TensorFlow Python availability
library(tensorflow)
tf$constant('Hello TensorFlow')

tensorflow 包

tensorflow R 包通过 reticulate 直接提供对 TensorFlow Python API 的访问。install_tensorflow() 的工作方式与 install_keras() 类似,但只安装 TensorFlow,不包含 Keras 的附加组件。当您需要执行底层 TF 操作时,可以使用它。

library(tensorflow)

# Install TF separately if needed
# tensorflow::install_tensorflow()

# Check TF version
tf_version()

# Low-level tensor operation
a <- tf$constant(c(1.0, 2.0, 3.0))
b <- tf$constant(c(4.0, 5.0, 6.0))
c_val <- tf$add(a, b)
print(c_val)

k_backend() — 识别后端

k_backend() 会返回一个字符串,用于标识 Keras 正在使用的后端。现代 Keras R(keras3)始终使用 TensorFlow。在旧版 keras(v2)中,也可以使用 Theano 或 CNTK。了解后端有助于调试环境问题。

library(keras)

# Check which backend is active
k_backend()  # should return 'tensorflow'

# Check TF version via keras
tf_version()

# Number of tensor dimensions backend uses internally
k_image_data_format()  # 'channels_last' or 'channels_first'

检查 GPU 是否可用

对于大型网络,使用 GPU 进行训练的速度可能比 CPU 快 10 到 50 倍。请使用 TensorFlow 的设备 API 检查 GPU 是否可用,并列出检测到的设备。如果您拥有 NVIDIA GPU 并已安装 CUDA,TensorFlow 会自动使用它。

library(tensorflow)

# List all available devices
devices <- tf$config$list_physical_devices()
print(devices)

# Check specifically for GPUs
gpus <- tf$config$list_physical_devices('GPU')
if (length(gpus) > 0) {
  cat('GPU available:', gpus[[1]]$name, '\n')
} else {
  cat('No GPU found — using CPU\n')
}

管理 Python 环境

在底层,R keras 使用 reticulate 包调用 Python。请使用 reticulate::use_condaenv() 或 reticulate::use_virtualenv(),选择已安装 TensorFlow 的 Python 环境。必须在加载 keras 之前调用这些函数。

# Select the conda environment before loading keras
library(reticulate)
use_condaenv('r-keras-tf2', required = TRUE)

library(keras)

# Confirm Python path
py_config()$python

# Confirm TF is importable
pytf <- import('tensorflow', convert = FALSE)
cat('TF Version:', pytf$__version__)

keras3 与 keras2 的 API 差异

R keras 包在 3 版(keras3)中经历了重大重写,该版本于 2024 年发布。新 API 使用 keras_model_sequential(),而不是 keras_model_sequential() |>,并采用基于管道的层添加方式。旧代码使用 %>%;现代代码使用 R 的原生管道 |>。

library(keras3)  # or library(keras) for keras2

# Modern keras3 API with native pipe
model <- keras_model_sequential(input_shape = c(784)) |>
  layer_dense(units = 128, activation = 'relu') |>
  layer_dense(units = 10, activation = 'softmax')

summary(model)

验证完整设置

在构建任何模型之前,请运行一次快速的端到端验证:创建一个极小的模型,编译它,然后使用合成数据训练它。如果整个过程无错误地运行,说明您的 Keras + TF 设置工作正常。

library(keras)

# Quick smoke test
model <- keras_model_sequential(input_shape = c(10)) |>
  layer_dense(units = 32, activation = 'relu') |>
  layer_dense(units = 1,  activation = 'linear')

model |> compile(
  optimizer = 'adam',
  loss      = 'mse'
)

# Train on random data
x_rand <- matrix(rnorm(1000 * 10), ncol = 10)
y_rand <- rnorm(1000)

model |> fit(x_rand, y_rand, epochs = 3, batch_size = 32, verbose = 0)
cat('Setup OK!')

会话与内存管理

TensorFlow 会大量使用 GPU 和 RAM。在交互式 R 会话中,切换实验时请调用 keras::backend()$clear_session() 以释放内存。为了保证结果可复现,请在构建模型之前设置 TF 和 R 的随机种子。

library(keras)

# Set seeds for reproducibility
set.seed(42)
tensorflow::set_random_seed(42)

# Clear any previous session state
keras::backend()$clear_session()

# Limit GPU memory growth (prevents OOM errors)
gpus <- tensorflow::tf$config$list_physical_devices('GPU')
if (length(gpus) > 0) {
  tensorflow::tf$config$experimental$set_memory_growth(
    gpus[[1]], TRUE
  )
}

工作流程概览

R 中典型的深度学习工作流程包括以下步骤:

  1. 安装:每台计算机运行一次 install_keras()
  2. 加载:library(keras)
  3. 准备数据:将特征标准化,并转换为矩阵
  4. 构建模型:keras_model_sequential() + 层
  5. 编译:指定损失函数、优化器和指标
  6. 拟合:fit(model, x, y, epochs, callbacks)
  7. 评估/预测:evaluate() + predict()
# Step-by-step outline (each step covered in next lessons)
library(keras)

# 1. Data ready as matrices (normalised)
# x_train, y_train, x_test, y_test

# 2. Model
model <- keras_model_sequential(input_shape = ncol(x_train)) |>
  layer_dense(128, activation = 'relu') |>
  layer_dense(1,   activation = 'sigmoid')

# 3. Compile
model |> compile('adam', 'binary_crossentropy', metrics = 'accuracy')

# 4. Fit
model |> fit(x_train, y_train, epochs = 20)

# 5. Evaluate
model |> evaluate(x_test, y_test)

快速检查

在 R 中调用 install_keras() 会做什么?

Keras 设置总结

“在 R 中设置 Keras 和 TensorFlow”要点:

  • install_keras() 会创建 Python 环境并安装 TensorFlow——每台计算机运行一次。
  • is_keras_available() 会在训练前检查后端是否可访问。
  • k_backend() 会识别后端(现代 keras 始终使用 TensorFlow)。
  • 通过 tf$config$list_physical_devices('GPU') 检查 GPU 是否可用。
  • 使用 reticulate::use_condaenv() 选择正确的 Python 环境。
  • 使用 set.seed() 和 tensorflow::set_random_seed() 设置种子,以确保结果可复现。
  • 在不同实验之间调用 backend()$clear_session() 以释放内存。
# Minimal verified setup check
library(keras)

if (!is_keras_available()) {
  install_keras()
}

cat('Backend:', k_backend(), '\n')
cat('TF Version:', tf_version(), '\n')
cat('Image format:', k_image_data_format(), '\n')
免费开始

用 AI 导师学习 R — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
43
课程
159

常见问题解答

「在 R 中设置 Keras 和 TensorFlow」课时是免费的吗?

是的 — 「在 R 中设置 Keras 和 TensorFlow」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 R Academy 课程的其余内容,请升级到 CoddyKit PRO。 R Academy 课程共包含 4 节课。

「在 R 中设置 Keras 和 TensorFlow」这节课中我会学到什么?

安装 keras R 软件包,配置 Python 后端并验证设置 你通过在浏览器中直接运行的动手代码来练习 R Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 R Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 R Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「在 R 中设置 Keras 和 TensorFlow」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 R Academy 课中编写并运行代码吗?

能。每节 R Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 在 R 中设置 Keras 和 TensorFlow
  2. 构建序列模型
  3. 卷积神经网络基础
  4. 训练、验证与防止过拟合
← 返回 R Academy