목록분류 전체보기 (303)
군침이 싹 도는 코딩
# 먼저 커널을 이용해서 3행 3열의 컨볼루션을 진행한다 # 이미지와 컨볼루션에 있는 같은 자리의 수를 곱하고 곱한 값 모두를 더해 피쳐 맵에 저장한다 # 이제 행과 열을 한칸씩 이동해 이것을 반복해서 피쳐맵을 완성한다 이때 이동하는 칸 수를 지정해줄수 있는데 이를 Stride 라고 한다 Stride는 이 글을 참고한다 : https://mugoori.tistory.com/143 Stride # 스트라이드란 컨볼루션이 진행되는 과정에서 이동하는 칸 수를 말한다 5행 5열의 이미지에서 스트라이드를 1로 지정하면 피쳐맵은 3행 3열이 된다 # 5행 5열 이미지에서 스트라이더를 2로 설정 mugoori.tistory.com # 피쳐맵의 사이즈를 계산하는 공식은 다음과 같다
# 스트라이드란 컨볼루션이 진행되는 과정에서 이동하는 칸 수를 말한다 5행 5열의 이미지에서 스트라이드를 1로 지정하면 피쳐맵은 3행 3열이 된다 # 5행 5열 이미지에서 스트라이더를 2로 설정하면 피쳐맵의 크기는 2행 2열이 된다
# CNN 이란 ANN 을 사용할때 사진의 위치정보나 2차원이 찌그러지는것을 방지하기위해서 이미지를 커널로 컨볼루션한 뒤 그것을 풀링하는 방법을 통해 피쳐맵이라는것을 만든다 피쳐맵은 점점 작아지며 이것을 작게 만들어 마지막에 ANN을 붙여 분류를 한다
confusion_matrix(y_test,y_pred) >>> ValueError: Classification metrics can't handle a mix of multilabel-indicator and multiclass targets # 컨퓨전 매트릭스를 사용할 때 이런 에러가 발생할때가 있다 이는 안에 들어가는 데이터가 원 핫 인코딩 된 데이터라서 그렇다 컨퓨전 매트릭스로 비교하기 위해서는 레이블 인코딩 된 값이 필요하다 y_train >>> array([[0., 0., 0., ..., 0., 0., 0.], [1., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., y_pred.argmax(axis=1) >>> array([7, ..
y_train >>> array([5, 0, 4, ..., 5, 6, 8], dtype=uint8) y_train = tf.keras.utils.to_categorical(y_train, num_classes= 10 ) y_train >>> array([[0., 0., 0., ..., 0., 0., 0.], [1., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 1., 0.]], dtype=float32) # 레이블 인코딩 된 y값을 손쉽게 원핫 인코딩으로 바꿀 수 있는 방법이 있다 텐서플로우..
# 네트워크를 json 파일로 저장하는 코드 fashion_mnist_network = model.to_json() with open('fashion_mnist_network.json','w') as file : file.write(fashion_mnist_network) # 저장된 네트워크를 읽어오는 코드 with open('fashion_mnist_network.json','r') as file : fashion_net = file.read() # 네트워크를 불어와서 변수에 저장 model4 = tf.keras.models.model_from_json(fashion_net) # 텐서 플로우 모델을 네트워크와 웨이트를 분리해서 저장할 수 있다 이때는 위 코드와 같이 사용해서 네트워크 파일은 json 확..
# save model.save('fashion_mnist_model') # load model2 = tf.keras.models.load_model('fashion_mnist_model') # 먼저 폴더 형태로 저장하는 법이다 텐서플로우의 save를 사용한다 저장은 구글 코랩에 되는것으로 코랩을 종료하면 사라진다 불러올때는 케라스/모델스/로드모델을 이용해서 저장한 폴더의 이름을 써주고 그것을 변수에 저장하면 된다 # save model.save('fashion_mnist_model.h5') # load model3 = tf.keras.models.load_model('fashion_mnist_model.h5') # save를 파일 1개로 저장하고싶을때에는 위와 동일하게 쓰지만 확장자명에 h5를 써준다 ..
model.fit(X_train,y_train,epochs=10,validation_data=(X_test, y_test)) >>> Epoch 1/10 1875/1875 [==============================] - 8s 4ms/step - loss: 0.5334 - accuracy: 0.8074 - val_loss: 0.4206 - val_accuracy: 0.8475 Epoch 2/10 1875/1875 [==============================] - 7s 4ms/step - loss: 0.4085 - accuracy: 0.8511 - val_loss: 0.4023 - val_accuracy: 0.8554 Epoch 3/10 1875/1875 [==============..