2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

머신러닝/에러처리

tensorflow1 -> tensorflow2 로 바뀌면서 변경해야 하는 코드들

파아란기쁨1 2022. 10. 27. 12:35
반응형
#from keras.layers.merge import Concatenate #tensorflow1
from keras.layers.merging.concatenate import Concatenate #tensorflow2

 

tensorflow 2.4부터 tensorflow.keras.utils.multi_gpu_model이 제거되어 사용 안됨
 
#from keras.engine import InputSpec #tensorflow1
from keras.layers import InputSpec #tensorflow2

tf1 버젼

x = tf.layers.conv2d(x, 32, 3, activation=tf.nn.relu,
          kernel_regularizer=tf.contrib.layers.l2_regularizer(0.04))
    x = tf.layers.max_pooling2d(x, (2, 2), 1)
    x = tf.layers.flatten(x)
    x = tf.layers.dropout(x, 0.1, training=training)
    x = tf.layers.dense(x, 64, activation=tf.nn.relu)
    x = tf.layers.batch_normalization(x, training=training)
    x = tf.layers.dense(x, 10, activation=tf.nn.softmax)

tf2 버젼(contrib 는 사용할 수 없다)

tf.keras.layers.Conv2D(32, 3, activation='relu',
                           kernel_regularizer=tf.keras.regularizers.l2(0.04),
                           input_shape=(28, 28, 1)),
    tf.keras.layers.MaxPooling2D(),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dropout(0.1),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.BatchNormalization(),
    tf.keras.layers.Dense(10)

 

 

 

Slim & contrib.layers를 위한 노트

예전 텐서플로 1.x 코드는 Slim 라이브러리를 많이 사용합니다. 이 라이브러리는 텐서플로 1.x의 tf.contrib.layers로 패키지되어 있습니다. contrib 모듈은 더 이상 텐서플로 2.0에서 지원하지 않고 tf.compat.v1에도 포함되지 않습니다. Slim을 사용한 코드를 TF 2.0으로 변환하는 것은 v1.layers를 사용한 코드를 변경하는 것보다 더 어렵습니다. 사실 Slim 코드는 v1.layers로 먼저 변환하고 그 다음 케라스로 변환하는 것이 좋습니다.

  • arg_scopes를 삭제하세요. 모든 매개변수는 명시적으로 설정되어야 합니다.
  • normalizer_fn과 activation_fn를 사용해야 한다면 분리하여 각각 하나의 층으로 만드세요.
  • 분리 합성곱(separable conv) 층은 한 개 이상의 다른 케라스 층으로 매핑합니다(깊이별(depthwise), 점별(pointwise), 분리(separable) 케라스 층).
  • Slim과 v1.layers는 매개변수 이름과 기본값이 다릅니다.
  • 일부 매개변수는 다른 스케일(scale)을 가집니다.
  • 사전 훈련된 Slim 모델을 사용한다면 tf.keras.applications나 TFHub를 확인해 보세요.

일부 tf.contrib 층은 텐서플로 내부에 포함되지 못했지만 TF 애드온(add-on) 패키지로 옮겨졌습니다.

 

from tensorflow.contrib import slim ->
import tf_slim as slim

 

tf.contrib.layers 를 사용하기 위해서 다음과 같이 사용한다.

1) pip install tf-slim (tf-slim 패키지 설치)

2) from tf_slim.layers import layers as slimLayers

3) tf.contrib.layers -> slimLayers 로 변경

 

 

코랩에서

import face_recognition  라이브러리 임포트시 다음과 같은 에러 발생시 GPU 모델을 선택해서 임포트

RuntimeError: Error while calling cudaGetDevice(&the_device_id) in file

 

 

 

https://codingman.tistory.com/229

 

[텐서플로워] Tensorflow 1.x버전 코드를 Tensorflow 2.x버전으로 사용

안녕하세요 코딩연습생입니다~ 정말 오랜만에 포스팅 하는거 같습니다..ㅠ 요즘 참 하는일 모두 하나하나 태글인거 같습니다..ㅎㅎ 정기적인 주식 관련 정보 포스팅을 하는 프로그램도 자주 뻑(

codingman.tistory.com

 

http://solarisailab.com/archives/2640

 

33. TensorFlow 2.0 Release 및 변경사항 정리 – tf.Session & tf.placeholder 삭제, @tf.function, tf_upgrade_v2 | 솔라

2019-09-30에 TensorFlow 2.0이 정식 Release 되었다. 그동안의 많은 개발사항을 반영한 메이저 업데이트가 이루어진만큼 API 구조가 대대적으로 변경되었다. 자세한 변경사항은 TensorFlow GitHub 저장소의 릴

solarisailab.com

 

반응형

'머신러닝 > 에러처리' 카테고리의 다른 글

cv2.COLOR_BGR2GRAY error  (0) 2022.09.26