안녕하세요! 오늘은 tensorflow 설치방법에 대해 작성해보려 합니다. teachable machine을 이용해서 python에서 만든 teachable machine모델을 사용해보려고 하는데 tensorflow가 필요하더라구요!
pip install tensorflow
가장 간단하게 명령 프롬프트(cmd)창을 켜서 pip install tensorflow을 입력해 설치를 했지만 파이썬에서는 아래와 같은 에러가 발생하면서 동작하지 않았습니다.
TypeError: Error when deserializing class 'DepthwiseConv2D' using config={'name': 'expanded_conv_depthwise', 'trainable': True, 'dtype': 'float32', 'kernel_size': [3, 3], 'strides': [1, 1], 'padding': 'same', 'data_format': 'channels_last', 'dilation_rate': [1, 1], 'groups': 1, 'activation': 'linear', 'use_bias': False, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'bias_regularizer': None, 'activity_regularizer': None, 'bias_constraint': None, 'depth_multiplier': 1, 'depthwise_initializer': {'class_name': 'VarianceScaling', 'config': {'scale': 1, 'mode': 'fan_avg', 'distribution': 'uniform', 'seed': None}}, 'depthwise_regularizer': None, 'depthwise_constraint': None}.
Exception encountered: Unrecognized keyword arguments passed to DepthwiseConv2D: {'groups': 1}
GPT에게 물어본 결과 주로 버전 호환성 문제로 발생한다고 하네요. 해결방법으로 tensorflow를 2.6.0 버전으로 설치를 해보라고 합니다.
pip install tensorflow==2.6.0
pip install tensorflow==2.6.0을 cmd창에 입력해 2.6.0 버전을 설치하려고 했지만! 역시 한번에 되는건 없습니다.. 프로그래밍 공부를 하면서 느낀점 중 하나는 버전이 굉장히 중요하다고 느꼈습니다. 2.6.0버전 설치도 아무 python 버전에 설치가 되는게 아니였습니다.
현재 제가 사용하고 있는 python은 3.12.2 버전을 사용하고 있습니다. tensorflow 홈페이지에서는 3.6 ~ 3.9버전에서 지원이 된다고 합니다. 그렇다면 기존의 python을 삭제하고 버전을 낮춰 설치해보도록 하겠습니다!
python 이전 버전은 공식 홈페이지에서 Downloads - All releases를 클릭하면 설치할 수 있습니다.
저는 3.9.11 버전을 설치하도록 하겠습니다! 클릭 후 아래로 내리면 설치할 수 있는 다양한 파일들이 있습니다. 저는 window를 사용하고 64bit를 사용하기 때문에 'Windows installer (64-bit)'를 클릭해 설치하겠습니다.
파이썬을 설치할 때 Add Python 3.x to PATH를 꼭 선택해주셔야 합니다! 아니면 나중에 환경변수 추가.. 뭐 이것저것 번거롭습니닿ㅎ 그리고 Install Now를 클릭해주시면 됩니다!
그리고 다시 tensorflow를 2.6.0 버전으로 설치하자 이런 글씨가 나타났습니다. 빨간색으로 나타나니까 좀 무섭네요.. 대강 보니 뒤에다가 --user을 추가해달라는 말 같습니다.
pip install tensorflow==2.6.0 --user
cmd 창에서는 설치가 되었다고 해서 버전 확인을 위해 아래 코드를 실행 시켜보았습니다.
import tensorflow as tf
print(tf.__version__)
역시나 역시나! 에러가 발생했습니다. 이거는 다음 번에 고치는걸로 하고.. 마치겠습니다!