首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从AWS sagemaker中的操作系统环境获取gpu计数

无法从AWS sagemaker中的操作系统环境获取gpu计数
EN

Stack Overflow用户
提问于 2021-03-23 15:20:48
回答 1查看 154关注 0票数 1
代码语言:javascript
复制
if __name__ == '__main__':

print(os.environ[ 'JUPYTER_PATH'])


parser = argparse.ArgumentParser() 
args , _ =parser.parse_known_args()

print(os.environ)
parser.add_argument('--training', type=str, default=os.environ['SM_CHANNEL_TRANING'])
parser.add_argument('--gpu-count', type=int, default=os.environ['SM_NUM_GPUS'])


epochs         = 10
lr             = 0.2
batch_size     = 250
gpu_count      = 1
traning_dir    = args.training
#validation_dir = 


train_images = np.load(os.path.join(training_dir, 'traning.npz')[enter image description here][1])['image']
train_labels = np.load(os.path.join(training_dir, 'traning.npz'))['label']
train_images = np.load(os.path.join(validation_dir, 'validation.npz'))['image']
train_images = np.load(os.path.join(validation_dir, 'validation.npz'))['label']


K.set_image_data_format('channels_last')


train_images = train_image.reshape(train_images.shape[0], 32, 32, 3)
test_images = test_image.reshape(train_images.shape[0], 32, 32, 3)
input_shape = (32, 32, 3)


train_images = train_images.astype('float32')
test_images = test_images.astype('float32')
train_images /= 255 
test_images /= 255

train_labels = tenserflow.keras.utils.to.categorical(train_labels, 43)
test_labels =  tenserflow.keras.utils.to.categorical(test_labels, 43)




"""
parser = argparse.ArgumentParser()
parser.add_argument('--epochs', type=int, default=1)
parser.add_argument('--learning-rate', type=float, default=0.001)
parser.add_argument('--batch-sizes', type=int, default=32)

print(os.environ)

parser.add_argument('--gpu-count', type=int, default=os.environ['SM_NUM_GPUS'])
parser.add_argument('--model-dir', type=str, default=os.environ['SM_MODEL_DIR'])
parser.add_argument('--training', type=str, default=os.environ['SM_CHANNEL_TRANING'])
parser.add_argument('--validation', type=str, default=os.environ['SM_CHANNEL_VALIDATION'])


args, _ = parser.parser_known_args()

"""

这是我的错误。

代码语言:javascript
复制
-
KeyError                                  Traceback (most recent call last)
<ipython-input-4-f9bc0f149346> in <module>
      8 
      9     print(os.environ)
---> 10     parser.add_argument('--gpu-count', type=int, default=os.environ['SM_NUM_GPUS'])
     11     parser.add_argument('--training', type=str, default=os.environ['SM_CHANNEL_TRANING'])
     12 

/usr/local/lib/python3.7/os.py in __getitem__(self, key)
    679         except KeyError:
    680             # raise KeyError with the original key value
--> 681             raise KeyError(key) from None
    682         return self.decodevalue(value)
    683 

    **KeyError: 'SM_NUM_GPUS'**

can't find dictionary in the environment

key error,谁能帮帮我?

EN

回答 1

Stack Overflow用户

发布于 2021-03-23 18:01:36

看起来代码没有从环境中获取值。

您不能运行带有参数--gpu-count的代码,因此代码在操作系统级别签入环境变量。

代码语言:javascript
复制
SM_NUM_GPUS=1

您可以在代码中设置它,并在以下位置检查引用:https://github.com/aws/sagemaker-containers#sm_num_gpus

代码语言:javascript
复制
import os

# using it in argparse
parser.add_argument('num_gpus', type=int, default=os.environ['SM_NUM_GPUS'])

# using it as variable
num_gpus = int(os.environ['SM_NUM_GPUS'])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66758801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档