TensorDash--每位数据科学家必备的工具
TensorDash: 一个远程监控你的机器学习模型的应用程序
训练一个机器学习模型是很耗时的。即使在过去几年里计算机技术的进步,训练机器学习模型也需要花费大量时间。即使是最简单的模型也有超过100万个参数。在更大的规模上,这些模型有超过10亿个参数(GPT-3有超过1750亿个参数!),训练这些模型需要几天,如果不是几周的话。作为一名数据科学家,我们希望密切关注模型的指标,以了解模型是否按照预期执行。但是坐在你的电脑旁,花几个小时监控指标是没有意义的。如果能在你的手机上获取这些数据不是很好吗?
你的模型训练了几个小时之后你刚好离开了,但你回来的时候,你的模型已经崩溃了?这是令人沮丧的,完全是浪费时间。由于大多数人没有足够的能力在本地训练机器学习模型,所以像GCP、Google Colab、AWS和Azure这样的云服务是用户根据使用情况付费的首选。在这种情况下,如果模型在训练期间崩溃了,那么您就需要为服务付费,而不是使用它。如果你被告知你的模特状态,它将帮助你避免FOMO。
TensorDash
TensorDash是一款免费的开源应用程序,可让您通过所有指标的详细图表来远程监控机器学习模型。当训练完成或模型崩溃时,它还会通知您。它支持所有主流的机器学习框架,例如TensorFlow,Pytorch,Keras和Fastai。
现在,您不必再坐在计算机前,也不必为提高准确性而祈祷。您可以在舒适的家中做到这一点。
使用TensorDash
- 从Play商店安装TensorDash应用。对iOS设备的支持即将推出。
- 创建一个帐户。
- 使用命令安装TensorDash python软件包pip install tensor-dash。
- 请按照以下说明在各自的框架中使用TensorDash。
Keras/tf.keras
使用Keras和tf.keras进行远程监视可使用回调函数。导入Tensordash,使用模型名字、帐户邮件ID和密码作为参数定义TensorDash对象。通过fit()函数中的回调传递TensorDash对象。要在模型崩溃时得到通知,请在异常处理下添加fit()函数,并在except中调用sendCrash()方法。
以下是在Keras/tf.keras上使用TensorDash的示例代码
from tensordash.tensordash import Tensordash
histories = Tensordash(
ModelName = '<YOUR_MODEL_NAME>',
email = '<YOUR_EMAIL_ID>',
password = '<YOUR PASSWORD>')
try:
model.fit(
X_train,
y_train,
epochs = epochs,
validation_data = validation_data,
batch_size = batch_size,
callbacks = [histories])
except:
histories.sendCrash()
PyTorch
从Tensordash包中导入Torchdash。创建一个以模型名称、电子邮件ID和密码作为参数的Torchdash对象。使用训练循环内对象的sendLoss()方法将模型度量发送到您的帐户。将损失(loss)、准确性(accuracy)、验证损失(validation loss)和验证准确性(validation accuracy)指标作为参数传递(注意,您必须添加至少一个指标)。若要在模型崩溃时得到通知,请在异常处理下添加训练循环,并在例外中调用sendCrash()方法。
下面是在PyTorch上使用TensorDash的示例代码
from tensordash.torchdash import Torchdash
histories = Torchdash(
ModelName = '<YOUR_MODEL_NAME>',
email = '<YOUR_EMAIL_ID>',
password = '<YOUR PASSWORD>')
try:
for epoch in range(epochs):
losses = []
for data in trainset:
X, y = data
net.zero_grad()
output = net(X.view(data_shape))
loss = F.nll_loss(output, y)
loss.backward()
optimizer.step()
losses = np.asarray(losses)
histories.sendLoss(loss = np.mean(losses), epoch = epoch, total_epochs = epochs) // Add this line to your training loop
except:
histories.sendCrash()
Fast.ai
通过回调远程监控Fast.ai工作。导入Fastdash。使用模型名称、帐户电子邮件ID和密码作为参数定义一个Fastdash对象。通过回调fit()函数传递Fastdash对象。若要在模型崩溃时得到通知,请在异常处理中添加fit()函数,并在except中调用sendCrash()方法。
下面是使用Fast.ai的示例代码
from tensordash.fastdash import Fastdash
my_cb = Tensordash(
ModelName = '<YOUR_MODEL_NAME>',
email = '<YOUR_EMAIL_ID>',
password = '<YOUR PASSWORD>')
try:
learn.fit(epochs, learning_rate, callbacks = my_cb)
except:
my_cb.sendCrash()
TensorFlow
从Tensordash包中导入Customdash。创建一个以模型名称、电子邮件ID和密码作为参数的Customdash对象。使用训练循环内对象的sendLoss()方法将模型指标发送到您的帐户。将损失(loss)、准确性(accuracy)、验证损失(validation loss)和验证准确性(validation accuracy)指标作为参数传递(注意,您必须添加至少一个指标)。若要在模型崩溃时得到通知,请在异常处理下添加训练循环,并在例外中调用sendCrash()方法。
from tensordash.tensordash import Customdash
histories = Customdash(
ModelName = '<YOUR_MODEL_NAME>',
email = '<YOUR_EMAIL_ID>',
password = '<YOUR PASSWORD>')
try:
for epoch in range(num_epochs):
epoch_loss_avg = tf.keras.metrics.Mean()
epoch_accuracy = tf.keras.metrics.SparseCategoricalAccuracy()
for x, y in train_dataset:
loss_value, grads = grad(model, x, y)
optimizer.apply_gradients(zip(grads, model.trainable_variables))
epoch_loss_avg(loss_value)
epoch_accuracy(y, model(x, training=True))
train_loss_results.append(epoch_loss_avg.result())
train_accuracy_results.append(epoch_accuracy.result())
histories.sendLoss(loss = epoch_loss_avg.result(), accuracy = epoch_accuracy.result(), epoch = epoch, total_epochs = epochs) // Add this line to your training loop
except:
histories.sendCrash()
总结
TensorDash是完全免费和开源的。Github