我正在尝试在远程集群上开发Python代码。如果我直接在集群上执行此操作,则必须先加载 Anaconda Lmod 模块,然后才能访问任何 conda 环境:
module load Anaconda3/2020.11
Run Code Online (Sandbox Code Playgroud)
为了提高生活质量,我想使用带有 Remote-SSH 扩展的 VSCode 在集群上工作。但是,我似乎无法加载选择 conda 环境作为 Python 解释器所需的模块。当我运行 Python 脚本时,在 VSCode 终端中运行module load XX命令似乎没有应用这些设置。
有没有办法在连接到远程计算机后使用 VSCode 加载模块,以便我可以访问 conda 环境并运行我的代码?
我使用keras(tensorflow版本 2.2.0)后端来训练分类器来区分两个数据集 A 和 B,我已将其混合到 pandas DataFrame 对象x_train(具有两列)中,并在 numpy array 中使用标签y_train。我想进行样本加权,以考虑到 A 的样本远多于 B 的事实。此外,A 由两个数据集 A1 和 A2 组成,其中 A1 远大于 A2;我也想使用我的样本权重来解释这一事实。我将样本权重放在一个名为 的 numpy 数组中w_train。训练样本约有 1000 万个。
这是示例代码:
model = Sequential()
model.add(Dense(64, input_dim=x_train.shape[1], activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x_train.iloc, y_train, sample_weight=w_train)
Run Code Online (Sandbox Code Playgroud)
当我使用sample_weight中的参数时model.fit(),我发现模型拟合初始化(即keras开始显示训练进度之前发生的任何事情)需要永远等待,太长的时间。当我将数据集限制为 1000 个样本时,问题就消失了,但当我增加到 100000 或 1000000 个样本时,我注意到初始化和拟合时间存在显着差异,因此我怀疑这与数据的方式有关正在加载。然而,仅仅添加sample_weights参数就会导致如此大的时间差异,这似乎很奇怪。
其他信息:我正在使用 …
我正在使用权重和偏差(链接)来管理超参数优化并记录结果。我正在使用带有 Tensorflow 后端的 Keras 进行训练,并且正在使用权重和偏差的开箱即用日志记录功能,我在其中运行
wandb.init(project='project_name', entity='username', config=config)
Run Code Online (Sandbox Code Playgroud)
然后将 a 添加WandbCallback()到 的回调中classifier.fit()。默认情况下,权重和偏差似乎会保存模型参数(即模型的权重和偏差)并将其存储在云中。这会耗尽我帐户的存储配额,而且是不必要的——我只关心跟踪模型损失/准确性作为超参数的函数。
我是否可以训练模型并使用权重和偏差记录损失和准确性,但不将模型参数存储在云中?我怎样才能做到这一点?