小编Sim*_*mon的帖子

重启后AWS EC2实例失去对GPU的支持

在星期二重新启动实例时,我首先遇到了一个问题,即在使用Ubuntu Deep Learning AMI的AWS p2.xlarge计算机上失去了对GPU的支持。

我现在在两天内测试了三遍,并且一个同事也遇到了同样的问题,所以我猜这是一个AWS错误。尽管也许有人对如何更好地进行调试有所了解。

基本上,在关闭并重新引导后,该实例不再在内核中加载nvidia模块。此外,根据dmesg,似乎加载了另一个内核。所有这些都是在没有我积极引起的情况下发生的。

以下是使用新实例而不使用自定义代码来重现该问题的步骤。我在爱尔兰(eu-west-1)工作,该实例在可用区eu-west-1a中启动:

  • 使用“深度学习AMI(Ubuntu)版本21.2(ami-0e9085a8d461c2d01)”启动实例
  • 实例类型:p2.xlarge,所有默认值
  • 登录实例后,仅运行以下四个命令:
ubuntu@...:~$ lsmod | grep nvidia
nvidia              16592896  0
ipmi_msghandler        49152  1 nvidia
Run Code Online (Sandbox Code Playgroud)
dmesg | less
...
[    0.000000] Linux version 4.4.0-1075-aws (buildd@lgw01-amd64-035) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #85-Ubuntu SMP Thu Jan 17 17:15:12 UTC 2019 (Ubuntu 4.4.0-1075.85-aws 4.4.167)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-1075-aws root=UUID=96950bba-70e8-4a4b-9d78-d2bc1c767e04 ro console=tty1 console=ttyS0 nvme.io_timeout=4294967295
...
Run Code Online (Sandbox Code Playgroud)
ubuntu@...:~$ nvidia-smi
Tue Mar 19 16:41:53 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.79       Driver Version: 410.79       CUDA Version: …
Run Code Online (Sandbox Code Playgroud)

kernel gpu nvidia amazon-ec2 amazon-web-services

9
推荐指数
1
解决办法
813
查看次数

Tensorflow:将Keras模型集成到Estimator模型中

我正在研究在估计器的model_fn中使用预训练的keras.applications模型的问题

在我的研究小组中,我们使用Tensorflow估计器,因为它们通过并行训练和评估,训练的热启动,易于使用等提供了许多优势。因此,我需要一个可以在估计器的model_fn中使用的解决方案。

基本上,我想在model_fn中使用预训练图,尽管我可以使用来自keras.applications的模型。不幸的是,到目前为止,我无法以适当的方式将keras.applications模型插入到model_fn中。

我想使用不带顶层(resnet50,mobilenet,nasnet ...)的可视提取器来提取特征向量,稍后我可能要微调此提取。这将排除使用视觉提取器作为model_fn外部的预处理步骤。

在对真实数据集进行了大量尝试之后,我又恢复了旧的MNIST,并提出了一个最小的示例来表明我在寻找什么。我在这里查看了关于stackoverflow的信息,并且最初遵循了这一解释

在下面的示例中,我尝试将具有移动网络架构的MNIST数据集归类为可视提取器。有两个使用这些功能的示例版本和一个完全不使用keras模型的示例。该代码非常接近TF官方custom_estimator示例。仅缩小数据集以使其易于装入内存,并且将图像放大并转换为rgb以适应网络结构。

示例案例1和2导致停滞的训练损失和评估的恒定损失。第三种情况表明,没有模型,损失的确会减少(尽管总体性能很差,可以预见)。在这个示例中,我并没有追求高性能!我只是想表明我遇到的困难,希望有人能提供帮助。

想法和进一步的想法:

  • 评估损失恒定的事实可能意味着该模型根本不会传递输入。但是,我该如何验证呢?在这种混合tf / keras的情况下,我无法获取tf.historgram来绘制激活或权重。
  • 另一则帖子指出,keras在后台保持一个会话。尽管由于estimator API建立了两个用于训练和评估的图形,但这可能会在后台变成混乱的情况。
  • 如果有一种方法可以仅使用权重图,则不需要keras模型的OO接口,但是那怎么办?
  • 在不使用模型功能的情况下,在keras后端中设置学习阶段也会造成损失的增加,这表明了两个会话的问题,因此在下面进行注释。

我还在github上打开了一个问题,因为在我看来该功能应该可以工作。

在下面,您可以找到独立的示例。复制/粘贴后,它应该立即可用。任何帮助深表感谢!


        import tensorflow as tf
        import numpy as np

        from keras.datasets import mnist


        # switch to example 1/2/3
        EXAMPLE_CASE = 3

        # flag for initial weights loading of keras model
        _W_INIT = True


        def dense_net(features, labels, mode, params):
            # --- code to load a keras application ---

            # commenting in this …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow tensorflow-estimator transfer-learning

7
推荐指数
0
解决办法
473
查看次数