TensorFlow `mnist_softmax.py` 해석 1

2800 단어
mnist_softmax.py 파일을 실행할 때 가장 아래에 있는 코드가 실제로 실행됩니다.
if __name__ == '__main__':
  parser = argparse.ArgumentParser()
  parser.add_argument('--data_dir', type=str, default='inputdata',
                      help='Directory for storing input data')
  FLAGS, unparsed = parser.parse_known_args()
  tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)

다음은 각각 이 단락의 코드를 해석한다

1 정보main__


여기에는 Python 프로그램에서 자주 사용하는 기교가 사용되었다.즉 if __name__ == '__main__':를 사용하여 이 프로그램을 독립적으로 실행할 수도 있고 모듈로 다른 프로그램에 가져올 수도 있다.

python에서ifname__ == '__main__': 의 구문 분석 링크

.py 파일을 열 때 코드의 맨 아래에서 자주 볼 수 있다if __name__ == '__main__':. 그 역할을 소개해 드리겠습니다.python에서 각.py 파일은 하나의 모듈이자 대상이며 모든 모듈은 내장 속성__name__이 있습니다.모듈의 __name__ 값은 모듈을 어떻게 사용하느냐에 따라 달라집니다.
  • 만약에 import 모듈이 있다면 모듈__name__의 값은 보통 모듈 파일 이름(경로나 파일 확장자 없음)이다.
  • 하지만 표준 프로그램처럼 모듈을 직접 실행할 수도 있습니다. 이 경우 __name__의 값은 특별히 부족한 값"__main__"이 됩니다.

  • 요컨대
  • cmd 또는spyder에서 파일을 직접 운행mnist_softmax.py하면 __name__의 값은 '__main__'이다.
  • 다른 코드에서 import mnist_softmax를 사용하여 이 파일(모듈)을 가져오면 __name__의 값이 'mnist_softmax'입니다.
  • if __name__ == '__main__'로 이 .py 파일을 직접 실행하고 있는지 판단한다.

  • 2 Parser 정보


    코드에서 이 두 줄은 이 프로그램에 명령행 파라미터를 처리하는 기능을 추가하여 프로그램의 입력 파라미터를 처리하는 데 쓰인다.
      parser = argparse.ArgumentParser()
      parser.add_argument('--data_dir', type=str, default='inputdata',
                          help='Directory for storing input data')
    

    즉, Anaconda 명령줄이나 시스템의 cmd에서 프로그램을 실행할 때 디렉터리 파라미터--data-dir= ' '를 추가하여 데이터를 지정한 디렉터리에 저장할 수 있습니다.실행할 때 이 파라미터를 추가하지 않아도 됩니다. 이 파라미터는 기본값default='inputdata'을 얻을 수 있습니다.
    코드의 다음 줄
     FLAGS, unparsed = parser.parse_known_args()
    

    는 받은 매개변수의 값을 FLAGS에 지정합니다.이 문장을 지나가면 FLAG입니다.data_디렉터리에 있는 인자를 디렉터리에 저장합니다.
    예를 들어 cmd에서 실행 중인 경우
    python mnist_softmax.py --data-dir="Data"
    

    FLAGS.data_dir = 'Data' .이 프로그램은 현재 디렉토리의 Data 폴더에서 MNIST 데이터 파일을 찾습니다.
    물론 파라미터의 운행을 하지 않아도 된다.하면, 만약, 만약...
    python mnist_softmax.py
    

    프로그램은 기본값default='inputdata'을 사용합니다.FLAGS.data_dir = 'inputdata'

    3 tf에 관하여.app.run

    tf.app.run(main=main, argv=[sys.argv[0]] + unparsed) 이 단락의 코드는 너무 많이 알 필요가 없다.이것만 알면 코드에 정의된main 함수 def main(_): 를 호출하고 실행하는 데 사용됩니다.

    좋은 웹페이지 즐겨찾기