parser.add_argument('-t', '--testing', action='store_true', help="Test the trained model on testing dataset") parser.add_argument('--digit', default=5, type=int, help="Digit to manipulate") parser.add_argument('-w', '--weights', default=None, help="The path of the saved weights. Should be specified when testing") parser.add_argument('--lr', default=0.001, type=float, help="Initial learning rate") parser.add_argument('--gpus', default=4, type=int) args = parser.parse_args() print(args) if not os.path.exists(args.save_dir): os.makedirs(args.save_dir) # load data (x_train, y_train), (x_test, y_test) = load_captcha() if DATA_SOURCE == 'captcha' else load_mnist() # define model with tf.device('/cpu:0'): model, eval_model, manipulate_model = CapsNet(input_shape=x_train.shape[1:], n_class=len(np.unique(np.argmax(y_train, 1))), routings=args.routings) model.summary() plot_model(model, to_file=args.save_dir+'/model.png', show_shapes=True) # train or test if args.weights is not None: # init the model weights with provided one model.load_weights(args.weights) if not args.testing: # define muti-gpu model multi_model = multi_gpu_model(model, gpus=args.gpus)
'-w', '--weights', default=None, help="The path of the saved weights. Should be specified when testing") parser.add_argument('--lr', default=0.001, type=float, help="Initial learning rate") parser.add_argument('--gpus', default=2, type=int) args = parser.parse_args() print(args) if not os.path.exists(args.save_dir): os.makedirs(args.save_dir) # load data (x_train, y_train), (x_test, y_test) = load_mnist() # define model with tf.device('/cpu:0'): model, eval_model, manipulate_model = CapsNet( input_shape=x_train.shape[1:], n_class=len(np.unique(np.argmax(y_train, 1))), routings=args.routings) model.summary() plot_model(model, to_file=args.save_dir + '/model.png', show_shapes=True) # train or test if args.weights is not None: # init the model weights with provided one model.load_weights(args.weights) if not args.testing: # define muti-gpu model
parser.add_argument('--lam_recon', default=0.392, type=float) # 784 * 0.0005, paper uses sum of SE, here uses MSE parser.add_argument('--num_routing', default=3, type=int) # num_routing should > 0 parser.add_argument('--shift_fraction', default=0.1, type=float) parser.add_argument('--debug', default=0, type=int) # debug>0 will save weights by TensorBoard parser.add_argument('--save_dir', default='./result') parser.add_argument('--is_training', default=1, type=int) parser.add_argument('--weights', default=None) parser.add_argument('--lr', default=0.001, type=float) parser.add_argument('--gpus', default=2, type=int) args = parser.parse_args() print(args) if not os.path.exists(args.save_dir): os.makedirs(args.save_dir) # load data (x_train, y_train), (x_test, y_test) = load_mnist() # define model with tf.device('/cpu:0'): model, eval_model = CapsNet(input_shape=x_train.shape[1:], n_class=len(np.unique(np.argmax(y_train, 1))), num_routing=args.num_routing) model.summary() plot_model(model, to_file=args.save_dir+'/model.png', show_shapes=True) # define muti-gpu model multi_model = multi_gpu_model(model, gpus=args.gpus) # train or test if args.weights is not None: # init the model weights with provided one model.load_weights(args.weights) if args.is_training: