質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

694閲覧

DockerでPython3系を新たに追加したい

ikayakioishii

総合スコア8

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

2クリップ

投稿2020/04/18 15:11

編集2020/04/19 02:07

前提・実現したいこと

論文の再現実験を行っている際に,python3系を使わないといけない宣言が出てきました.
Githubに上がっている推奨環境はpython2系だったので,python2.7とcudaとtensorflowのバージョンが推奨環境にあっている物をdockerhubから取ってきて,docker内で作業をしています.
新しくpython3系をdocker内に入れることは可能でしょうか.
homebrew等が使えず,よくネットに上がっているものでは解決策が見当たりません.
docker等に関して完全な初心者なので,教えていただきたいです.
(\url:https://github.com/JunweiLiang/next-prediction/tree/master/code/prepare_data)

発生している問題・エラーメッセージ

$ ls anno_person_box/*/* |while read line;do videoname=$(basename $line .p); \ python3 deep-high-resolution-net.pytorch/tools/test.py --cfg \ deep-high-resolution-net.pytorch/experiments/coco/hrnet/w48_384x288_adam_lr1e-3.yaml \ TEST.MODEL_FILE pose_hrnet_w48_384x288.pth OUTPUT_DIR hrnet_kp_out/${videoname} \ VIDEONAME ${videoname} FRAMEPATH actev_all_video_frames/ TEST.USE_GT_BBOX False \ COCO_JSON person_keypoints_val2017.json TEST.COCO_BBOX_FILE \ anno_person_box_json/${videoname}.json TEST.BATCH_SIZE_PER_GPU 32 \ GPUS "(0,)" CHECK_IMG True;done

ここでのpython3は推奨環境ではなかったので,初めから混在させる必要があったみたいです.

該当のソースコード

python

1from __future__ import absolute_import 2from __future__ import division 3from __future__ import print_function 4 5import argparse 6import os 7import pprint 8 9import torch 10import torch.nn.parallel 11import torch.backends.cudnn as cudnn 12import torch.optim 13import torch.utils.data 14import torch.utils.data.distributed 15import torchvision.transforms as transforms 16 17import _init_paths 18from config import cfg 19from config import update_config 20from core.loss import JointsMSELoss 21from core.function import validate 22from utils.utils import create_logger 23 24import dataset 25import models 26 27def parse_args(): 28 parser = argparse.ArgumentParser(description='Train keypoints network') 29 # general 30 parser.add_argument('--cfg', 31 help='experiment configure file name', 32 required=True, 33 type=str) 34 35 parser.add_argument('opts', 36 help="Modify config options using the command-line", 37 default=None, 38 nargs=argparse.REMAINDER) 39 40 parser.add_argument('--modelDir', 41 help='model directory', 42 type=str, 43 default='') 44 parser.add_argument('--logDir', 45 help='log directory', 46 type=str, 47 default='') 48 parser.add_argument('--dataDir', 49 help='data directory', 50 type=str, 51 default='') 52 parser.add_argument('--prevModelDir', 53 help='prev Model directory', 54 type=str, 55 default='') 56 57 args = parser.parse_args() 58 return args 59 60def main(): 61 args = parse_args() 62 update_config(cfg, args) 63 64 logger, final_output_dir, tb_log_dir = create_logger( 65 cfg, args.cfg, 'valid') 66 67 logger.info(pprint.pformat(args)) 68 logger.info(cfg) 69 70 # cudnn related setting 71 cudnn.benchmark = cfg.CUDNN.BENCHMARK 72 torch.backends.cudnn.deterministic = cfg.CUDNN.DETERMINISTIC 73 torch.backends.cudnn.enabled = cfg.CUDNN.ENABLED 74 75 model = eval('models.'+cfg.MODEL.NAME+'.get_pose_net')( 76 cfg, is_train=False 77 ) 78 79 if cfg.TEST.MODEL_FILE: 80 logger.info('=> loading model from {}'.format(cfg.TEST.MODEL_FILE)) 81 model.load_state_dict(torch.load(cfg.TEST.MODEL_FILE), strict=False) 82 else: 83 model_state_file = os.path.join( 84 final_output_dir, 'final_state.pth' 85 ) 86 logger.info('=> loading model from {}'.format(model_state_file)) 87 model.load_state_dict(torch.load(model_state_file)) 88 89 model = torch.nn.DataParallel(model, device_ids=cfg.GPUS).cuda() 90 91 # define loss function (criterion) and optimizer 92 criterion = JointsMSELoss( 93 use_target_weight=cfg.LOSS.USE_TARGET_WEIGHT 94 ).cuda() 95 96 # Data loading code 97 normalize = transforms.Normalize( 98 mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225] 99 ) 100 valid_dataset = eval('dataset.'+cfg.DATASET.DATASET)( 101 cfg, cfg.DATASET.ROOT, cfg.DATASET.TEST_SET, False, 102 transforms.Compose([ 103 transforms.ToTensor(), 104 normalize, 105 ]) 106 ) 107 valid_loader = torch.utils.data.DataLoader( 108 valid_dataset, 109 batch_size=cfg.TEST.BATCH_SIZE_PER_GPU*len(cfg.GPUS), 110 shuffle=False, 111 num_workers=cfg.WORKERS, 112 pin_memory=True 113 ) 114 115 # evaluate on validation set 116 validate(cfg, valid_loader, valid_dataset, model, criterion, 117 final_output_dir, tb_log_dir) 118 119 120if __name__ == '__main__': 121 main() 122

試したこと

brewが使えないのでinstallの方法がわかりません,,

補足情報(FW/ツールのバージョンなど)

論文著者のGithubで推奨環境とされていたのは,python2.7,tensorflow1.10です.
tensorflowに合わせてcudaのバージョンも変えました.
docker imageのURL:https://hub.docker.com/r/juliojj/cuda10.0-keras-tf-py2-gpu

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yumetodo

2020/04/18 17:31

そのとってきてるDocker Imageがなにか追記してください。しかし未だにpytno2を使わねばならんとは悲しいことで。
ikayakioishii

2020/04/19 02:08

一応,CVPR2019の論文なんですが,僕もpython2系には驚きました.. docker imageをdocker hubのURLから追加しました.
bsdfan

2020/04/19 08:04

同一のコンテナ内にpython2とpython3をインストールしたいということですか? 使用されているイメージのベースはubuntu16.04のようなのでapt-get install python3でインストールはできそうですが、それでikayakioishiiさんがやりたいことができるのかは、ちょっとわかりません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問