4 글 보임 - 1 에서 4 까지 (총 4 중에서)
-
글쓴이글
-
2023년 1월 17일 15:36 #63106
그레잇사과형참가자import tensorflow as tf import numpy as np import pandas as pd import os import shutil import matplotlib.pyplot as plt from tensorflow.keras.utils import plot_model from tensorflow.keras.callbacks import TensorBoard from tensorflow.keras.applications.inception_v3 import InceptionV3 from tensorflow.keras.preprocessing.image import ImageDataGenerator
trainds = tf.keras.preprocessing.image_dataset_from_directory( '../Users/ADMIN/Desktop/data/set1/', image_size=(150,150), batch_size=64, subset='training', validation_split=0.2, seed=1234 )
valds = tf.keras.preprocessing.image_dataset_from_directory( '../Users/ADMIN/Desktop/data/set1/', image_size=(150,150), batch_size=64, subset='validation', validation_split=0.2, seed=1234 )
for i , answer in trainds.take(1): #사진을 보여주는코드임. print(i,answer) plt.imshow(i[0].numpy().astype("uint8")) plt.imshow(i[2].numpy().astype("uint8")) #텐서를 넘파이로 변환하여보여줌 plt.imshow(i[3].numpy().astype("uint8")) plt.show()
def prework(x,y): x=tf.cast(x/255.0, tf.float32) #연산이빨라지게 이미지들을 255값으로 나눈다 return x,y train=trainds.map(prework) #맵함수 는 함수에 들어오는값을 리스트값으로 반복 val=valds.map(prework)
inception_model=InceptionV3(input_shape=(150,150,3),include_top=False,weights=None) inception_model.load_weights("../Users/ADMIN/Desktop/data/inception_v3.h5") inception_model.summary()
# inception_model.summary() #가중치 에 학습안시키기
for i in inception_model.layers: i.trainable=False
unfreeze= False for i in inception_model.layers: #빠인 튜닝 if i.name == "mixed9": unfreeze = True if unfreeze == True: i.trainble = True #믹스드 레이어 10이 발견되면 그부분부터 가중치 학습
lastlayer=inception_model.get_layer("mixed10")
mylayer1 = tf.keras.Sequential([ tf.keras.layers.experimental.preprocessing.RandomFlip('horizontal_and_vertical'), #이미지를 비틀고 옮기고 등등해서 복사본을 만드는 방법의 함수 tf.keras.layers.experimental.preprocessing.RandomRotation(0.1), tf.keras.layers.experimental.preprocessing.RandomZoom(0.1), tf.keras.layers.Flatten(), tf.keras.layers.Dense(1024, activation="relu"), ])(lastlayer.output)
drop1=tf.keras.layers.Dropout(0.2)(mylayer1) out=tf.keras.layers.Dense(1,activation="sigmoid")(drop1)
model=tf.keras.Model(inception_model.input,out) model.compile(loss="binary_crossentropy", optimizer=tf.keras.optimizers.Adam(learning_rate=0.001), metrics=["accuracy"]) model.fit(trainds, validation_data=valds, epochs=15) plot_model(model, to_file='model.png', show_shapes=False, show_layer_names=False)
사과형님 안녕하심니까 2개의 질문입니다. for i , answer in trainds.take(1) < Take1 일때는 사진한장만 가져오는게 맞는건가요? plot_model(model, to_file='model.png', show_shapes=False, show_layer_names=False) <-학습은 잘되는데 이녀석이 실행이안됩니다. 미리감사요.
-
글쓴이글
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
- 답변은 로그인 후 가능합니다.