运行代码出现错误:IndexError:listindexoutofrange
代码:
import osimport tensorflow as tffrom ini_file_io import load_train_inifrom model import unet_3D_xy# set cuda visable deviceos.environ["CUDA_VISIBLE_DEVICES"] = '0,1'def main(_): # load training parameter # ini_file = '../outcome/model/ini/tr_param.ini' param_sets = load_train_ini(ini_file) param_set = param_sets[55] print (('====== Phase >>> %s <<< ======') % param_set['phase']) if not os.path.exists(param_set['chkpoint_dir']): os.makedirs(param_set['chkpoint_dir']) if not os.path.exists(param_set['labeling_dir']): os.makedirs(param_set['labeling_dir']) # GPU setting, per_process_gpu_memory_fraction means 95% GPU MEM ,allow_growth means unfixed memory gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.95, allow_growth=True) with tf.Session(config=tf.ConfigProto(gpu_options=gpu_options, allow_soft_placement=True)) as sess: model = unet_3D_xy(sess, param_set) if param_set['phase'] == 'train': model.train() elif param_set['phase'] == 'test': # model.test() model.test_generate_map() elif param_set['phase'] == 'crsv': model.test4crsv()if __name__ == '__main__': tf.app.run()错误提示:Traceback (most recent call last): File "main.py", line 38, in <module> tf.app.run() File "C:Program FilesAnaconda3libsite-packages ensorflowpythonplatformapp.py", line 125, in run _sys.exit(main(argv)) File "main.py", line 15, in main param_set = param_sets[0]IndexError: list index out of range
解决问题:
sys.argv[0]
IndexError: list index out of range
解决思路:
argv[1]:sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始。Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。
解决办法:
热门标签: