머신러닝을 통해'령화'티셔츠와'평성'티셔츠를 구분한다.
목표
2019.4.1.신원호'링화'가 발표되었다.
'사람들의 아름다운 마음의 교차 속에서 문화가 탄생하여 성장한다'는 뜻을 포함하고 있다
재해와 경기 변동의 영향이 남아 있는 평성시대의 과제에 따라 좋은 시대를 만들어 나가길 바란다.
한편 신년호와 관련된 상품도 곳곳에서 볼 수 있다.
그러고 보니 나는 평성 티셔츠가 생각났다
이번에 나는 이 상품들의 문자가 어느 정도 기계 학습을 통해 분류될 수 있는지 시험해 보고 싶다.
준비
1. [명령] [평화]의 텍스트 이미지를 준비합니다.
1. [명령] [평화]의 텍스트 이미지를 준비합니다.
data-org
- train
reiwa: 준비된'령화'중 16장을 여기에 놓았어요.
Heisei: 준비된'평성'중 16장이 여기에 저장되어 있습니다.
- validation
reiwa: 준비된'령화'중 4장을 여기에 놓았어요.
Heisei: 준비된'평성'중 4장이 여기에 저장되어 있습니다.
- 평가 6장
3. 기계 학습용 코드 준비(후술한learn.py)
가장 좋은 것은 학습 데이터의 수를 늘리는 것이지만, 준비 시간을 줄이기 위해서이다
ImageDataGenerator에서 회전/축소/등을 사용하여 장 수를 늘립니다.
코드
'learn.py'from tensorflow.python.keras import layers
from tensorflow.python.keras import models
from tensorflow.python.keras import optimizers
from tensorflow.python.keras.preprocessing.image import ImageDataGenerator
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
import glob
# モデルの定義
model = models.Sequential()
model.add(layers.Conv2D(16, (3, 3), activation='relu', input_shape=(256, 256, 3)))
model.add(layers.Conv2D(16, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(32, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(256, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
# モデルのコンパイル
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['acc'])
model.summary()
# クラス宣言
train_datagen = ImageDataGenerator(
rescale=1.0 / 255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1.0 / 255)
# フォルダ指定
batch_size=20
train_generator = train_datagen.flow_from_directory(
'data/train',
target_size=(256, 256),
batch_size=batch_size,
class_mode='binary')
validation_generator = test_datagen.flow_from_directory(
'data/validation',
target_size=(256, 256),
batch_size=batch_size,
class_mode='binary')
print(train_generator.class_indices)
# 学習
history = model.fit_generator(train_generator,
steps_per_epoch=10,
epochs=10,
validation_data=validation_generator,
validation_steps=10)
acc = history.history['acc']
val_acc = history.history['val_acc']
loss = history.history['loss']
val_loss = history.history['val_loss']
epochs = range(1, len(acc) + 1)
print(acc);
print(val_acc);
print(loss);
print(val_loss);
plt.plot(epochs, acc, 'bo', label='Training acc')
plt.plot(epochs, val_acc, 'b', label='Validation acc')
plt.title('Training and validation accuracy')
plt.legend()
plt.savefig("figure-acc.png")
plt.figure()
plt.plot(epochs, loss, 'bo', label='Training loss')
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and validation loss')
plt.legend()
plt.savefig("figure-loss.png")
# evaluation
paths = glob.glob("./data/evaluation/*.jpg")
for path in paths:
img = Image.open(path).convert('RGB')
img = img.resize((256, 256))
x = np.array(img)
x = x / 255.
x = x[None, ...]
pred_prob = model.predict(x, batch_size=1, verbose=0)
# 2値分類なので[0,1]の確率を出力する。0.5以上なら1とする。
pred = np.round(pred_prob, 0)
print("---{0}---".format(path))
print(pred_prob)
print("{0}の予測結果は{1}です.".format(path, pred))
테스트
학습 단계의 크기는 조정이 필요하지만, 먼저 15epoch를 지정하여 학습을 진행한다.
(더 좋은 매개 변수가 있어야 한다)2019-04-14 17:34:11.610592: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 254, 254, 16) 448
_________________________________________________________________
conv2d_1 (Conv2D) (None, 252, 252, 16) 2320
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 126, 126, 16) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 124, 124, 32) 4640
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 62, 62, 32) 0
_________________________________________________________________
flatten (Flatten) (None, 123008) 0
_________________________________________________________________
dense (Dense) (None, 512) 62980608
_________________________________________________________________
dense_1 (Dense) (None, 256) 131328
_________________________________________________________________
dense_2 (Dense) (None, 1) 257
=================================================================
Total params: 63,119,601
Trainable params: 63,119,601
Non-trainable params: 0
_________________________________________________________________
Found 32 images belonging to 2 classes.
Found 8 images belonging to 2 classes.
{'heisei': 0, 'reiwa': 1}
Epoch 1/15
10/10 [==============================] - 18s 2s/step - loss: 8.1931 - acc: 0.4750 - val_loss: 0.8280 - val_acc: 0.5000
Epoch 2/15
10/10 [==============================] - 16s 2s/step - loss: 0.7148 - acc: 0.4875 - val_loss: 0.7022 - val_acc: 0.5000
Epoch 3/15
10/10 [==============================] - 17s 2s/step - loss: 0.7318 - acc: 0.5250 - val_loss: 0.7039 - val_acc: 0.5000
Epoch 4/15
10/10 [==============================] - 18s 2s/step - loss: 0.6831 - acc: 0.5437 - val_loss: 0.7165 - val_acc: 0.5000
Epoch 5/15
10/10 [==============================] - 18s 2s/step - loss: 0.9253 - acc: 0.5375 - val_loss: 0.6806 - val_acc: 0.5375
Epoch 6/15
10/10 [==============================] - 16s 2s/step - loss: 0.6640 - acc: 0.6438 - val_loss: 0.6785 - val_acc: 0.4875
Epoch 7/15
10/10 [==============================] - 17s 2s/step - loss: 0.6093 - acc: 0.6812 - val_loss: 0.7921 - val_acc: 0.4000
Epoch 8/15
10/10 [==============================] - 16s 2s/step - loss: 0.6163 - acc: 0.6875 - val_loss: 0.8923 - val_acc: 0.4500
Epoch 9/15
10/10 [==============================] - 16s 2s/step - loss: 0.5593 - acc: 0.7312 - val_loss: 0.8695 - val_acc: 0.5625
Epoch 10/15
10/10 [==============================] - 17s 2s/step - loss: 0.5669 - acc: 0.7063 - val_loss: 0.8767 - val_acc: 0.3125
Epoch 11/15
10/10 [==============================] - 16s 2s/step - loss: 0.6163 - acc: 0.7188 - val_loss: 0.8409 - val_acc: 0.5000
Epoch 12/15
10/10 [==============================] - 16s 2s/step - loss: 0.5653 - acc: 0.7125 - val_loss: 0.9275 - val_acc: 0.4125
Epoch 13/15
10/10 [==============================] - 17s 2s/step - loss: 0.6229 - acc: 0.7625 - val_loss: 0.8779 - val_acc: 0.3500
Epoch 14/15
10/10 [==============================] - 17s 2s/step - loss: 0.5152 - acc: 0.7625 - val_loss: 0.8519 - val_acc: 0.5125
Epoch 15/15
10/10 [==============================] - 17s 2s/step - loss: 0.5381 - acc: 0.7563 - val_loss: 0.7191 - val_acc: 0.5000
실제 이미지 평가
최종 평가용 이미지 데이터 6장 사용
기대치: 평가 예측치: 평가---./data_org/evaluation/heisei1-2.jpg---
[[0.04057287]]
./data_org/evaluation/heisei1-2.jpgの予測結果は[[0.]]です.
기대치: 평가 예측치: 평가 ※ 점수 억지---./data_org/evaluation/heisei2-2.jpg---
[[0.4843383]]
./data_org/evaluation/heisei2-2.jpgの予測結果は[[0.]]です.
기대치: 령과 예측치: 령과 ※ 간신히 득점---./data_org/evaluation/reiwa1-1.jpg---
[[0.5244837]]
./data_org/evaluation/reiwa1-1.jpgの予測結果は[[1.]]です.
기대치: 명령과 예측치: 명령과---./data_org/evaluation/reiwa2-2.jpg---
[[0.93729514]]
./data_org/evaluation/reiwa2-2.jpgの予測結果は[[1.]]です.
기대치: 명령과 예측치: 명령과---./data_org/evaluation/reiwa3-2.jpg---
[[0.9273448]]
./data_org/evaluation/reiwa3-2.jpgの予測結果は[[1.]]です.
기대치: 명령과 예측치: 명령과---./data_org/evaluation/reiwa4-2.jpg---
[[0.9319874]]
./data_org/evaluation/reiwa4-2.jpgの予測結果は[[1.]]です.
기대치: 령과 예측치: 령과 ※ 간신히 득점---./data_org/evaluation/reiwa5-2.jpg---
[[0.6226176]]
./data_org/evaluation/reiwa5-2.jpgの予測結果は[[1.]]です.
감상
나는 평가 점수가 더욱 명확해질 것이라고 생각하지만, 몇 가지 무리한 데이터가 있다.
전체적인 결과는 기대만큼 많지만 샘플 수가 적습니다. 정말 성능에 문제가 없나요? 계속 확인할 필요가 있다고 생각합니다.남은 과제는 다음과 같다.
・과도한 학습, 학습 부족 여부 확인
→ 입력 데이터의 소음은 얼마나 큰 영향을 줍니까?
・ 하이퍼패라메트릭 조정
범용 성능 평가
만약 상세한 사람이 있다면 저를 지도해 주시기 바랍니다.
CodeingError 대책 OSError: cannot identify image file './data_org/train/showa//.DS_Store'
DS_Store는 Mac의 메타데이터인 것 같습니다.python 처리가 필요하지 않으면 아래 명령 등으로 삭제하세요.
$ find ./data_org/-name .DS_Store | xargs rm
참고 자료
위키백과, 우리 모두의 백과사전.
Python: 명령행 매개변수란 무엇입니까?(슈퍼 베이스)
맥에서DS_스토리지 종료
ImageDataGenerator 클래스
Sequential 모형으로 Keras를 시작해보도록 하겠습니다.
그 모델, 공부 많이 했어요?공부 안 했어요?하면, 만약, 만약...
Reference
이 문제에 관하여(머신러닝을 통해'령화'티셔츠와'평성'티셔츠를 구분한다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/seigot/items/45fc8d550ffa4cecf79a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from tensorflow.python.keras import layers
from tensorflow.python.keras import models
from tensorflow.python.keras import optimizers
from tensorflow.python.keras.preprocessing.image import ImageDataGenerator
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
import glob
# モデルの定義
model = models.Sequential()
model.add(layers.Conv2D(16, (3, 3), activation='relu', input_shape=(256, 256, 3)))
model.add(layers.Conv2D(16, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(32, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(256, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
# モデルのコンパイル
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['acc'])
model.summary()
# クラス宣言
train_datagen = ImageDataGenerator(
rescale=1.0 / 255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1.0 / 255)
# フォルダ指定
batch_size=20
train_generator = train_datagen.flow_from_directory(
'data/train',
target_size=(256, 256),
batch_size=batch_size,
class_mode='binary')
validation_generator = test_datagen.flow_from_directory(
'data/validation',
target_size=(256, 256),
batch_size=batch_size,
class_mode='binary')
print(train_generator.class_indices)
# 学習
history = model.fit_generator(train_generator,
steps_per_epoch=10,
epochs=10,
validation_data=validation_generator,
validation_steps=10)
acc = history.history['acc']
val_acc = history.history['val_acc']
loss = history.history['loss']
val_loss = history.history['val_loss']
epochs = range(1, len(acc) + 1)
print(acc);
print(val_acc);
print(loss);
print(val_loss);
plt.plot(epochs, acc, 'bo', label='Training acc')
plt.plot(epochs, val_acc, 'b', label='Validation acc')
plt.title('Training and validation accuracy')
plt.legend()
plt.savefig("figure-acc.png")
plt.figure()
plt.plot(epochs, loss, 'bo', label='Training loss')
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and validation loss')
plt.legend()
plt.savefig("figure-loss.png")
# evaluation
paths = glob.glob("./data/evaluation/*.jpg")
for path in paths:
img = Image.open(path).convert('RGB')
img = img.resize((256, 256))
x = np.array(img)
x = x / 255.
x = x[None, ...]
pred_prob = model.predict(x, batch_size=1, verbose=0)
# 2値分類なので[0,1]の確率を出力する。0.5以上なら1とする。
pred = np.round(pred_prob, 0)
print("---{0}---".format(path))
print(pred_prob)
print("{0}の予測結果は{1}です.".format(path, pred))
학습 단계의 크기는 조정이 필요하지만, 먼저 15epoch를 지정하여 학습을 진행한다.
(더 좋은 매개 변수가 있어야 한다)
2019-04-14 17:34:11.610592: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 254, 254, 16) 448
_________________________________________________________________
conv2d_1 (Conv2D) (None, 252, 252, 16) 2320
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 126, 126, 16) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 124, 124, 32) 4640
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 62, 62, 32) 0
_________________________________________________________________
flatten (Flatten) (None, 123008) 0
_________________________________________________________________
dense (Dense) (None, 512) 62980608
_________________________________________________________________
dense_1 (Dense) (None, 256) 131328
_________________________________________________________________
dense_2 (Dense) (None, 1) 257
=================================================================
Total params: 63,119,601
Trainable params: 63,119,601
Non-trainable params: 0
_________________________________________________________________
Found 32 images belonging to 2 classes.
Found 8 images belonging to 2 classes.
{'heisei': 0, 'reiwa': 1}
Epoch 1/15
10/10 [==============================] - 18s 2s/step - loss: 8.1931 - acc: 0.4750 - val_loss: 0.8280 - val_acc: 0.5000
Epoch 2/15
10/10 [==============================] - 16s 2s/step - loss: 0.7148 - acc: 0.4875 - val_loss: 0.7022 - val_acc: 0.5000
Epoch 3/15
10/10 [==============================] - 17s 2s/step - loss: 0.7318 - acc: 0.5250 - val_loss: 0.7039 - val_acc: 0.5000
Epoch 4/15
10/10 [==============================] - 18s 2s/step - loss: 0.6831 - acc: 0.5437 - val_loss: 0.7165 - val_acc: 0.5000
Epoch 5/15
10/10 [==============================] - 18s 2s/step - loss: 0.9253 - acc: 0.5375 - val_loss: 0.6806 - val_acc: 0.5375
Epoch 6/15
10/10 [==============================] - 16s 2s/step - loss: 0.6640 - acc: 0.6438 - val_loss: 0.6785 - val_acc: 0.4875
Epoch 7/15
10/10 [==============================] - 17s 2s/step - loss: 0.6093 - acc: 0.6812 - val_loss: 0.7921 - val_acc: 0.4000
Epoch 8/15
10/10 [==============================] - 16s 2s/step - loss: 0.6163 - acc: 0.6875 - val_loss: 0.8923 - val_acc: 0.4500
Epoch 9/15
10/10 [==============================] - 16s 2s/step - loss: 0.5593 - acc: 0.7312 - val_loss: 0.8695 - val_acc: 0.5625
Epoch 10/15
10/10 [==============================] - 17s 2s/step - loss: 0.5669 - acc: 0.7063 - val_loss: 0.8767 - val_acc: 0.3125
Epoch 11/15
10/10 [==============================] - 16s 2s/step - loss: 0.6163 - acc: 0.7188 - val_loss: 0.8409 - val_acc: 0.5000
Epoch 12/15
10/10 [==============================] - 16s 2s/step - loss: 0.5653 - acc: 0.7125 - val_loss: 0.9275 - val_acc: 0.4125
Epoch 13/15
10/10 [==============================] - 17s 2s/step - loss: 0.6229 - acc: 0.7625 - val_loss: 0.8779 - val_acc: 0.3500
Epoch 14/15
10/10 [==============================] - 17s 2s/step - loss: 0.5152 - acc: 0.7625 - val_loss: 0.8519 - val_acc: 0.5125
Epoch 15/15
10/10 [==============================] - 17s 2s/step - loss: 0.5381 - acc: 0.7563 - val_loss: 0.7191 - val_acc: 0.5000
실제 이미지 평가
최종 평가용 이미지 데이터 6장 사용
기대치: 평가 예측치: 평가---./data_org/evaluation/heisei1-2.jpg---
[[0.04057287]]
./data_org/evaluation/heisei1-2.jpgの予測結果は[[0.]]です.
기대치: 평가 예측치: 평가 ※ 점수 억지---./data_org/evaluation/heisei2-2.jpg---
[[0.4843383]]
./data_org/evaluation/heisei2-2.jpgの予測結果は[[0.]]です.
기대치: 령과 예측치: 령과 ※ 간신히 득점---./data_org/evaluation/reiwa1-1.jpg---
[[0.5244837]]
./data_org/evaluation/reiwa1-1.jpgの予測結果は[[1.]]です.
기대치: 명령과 예측치: 명령과---./data_org/evaluation/reiwa2-2.jpg---
[[0.93729514]]
./data_org/evaluation/reiwa2-2.jpgの予測結果は[[1.]]です.
기대치: 명령과 예측치: 명령과---./data_org/evaluation/reiwa3-2.jpg---
[[0.9273448]]
./data_org/evaluation/reiwa3-2.jpgの予測結果は[[1.]]です.
기대치: 명령과 예측치: 명령과---./data_org/evaluation/reiwa4-2.jpg---
[[0.9319874]]
./data_org/evaluation/reiwa4-2.jpgの予測結果は[[1.]]です.
기대치: 령과 예측치: 령과 ※ 간신히 득점---./data_org/evaluation/reiwa5-2.jpg---
[[0.6226176]]
./data_org/evaluation/reiwa5-2.jpgの予測結果は[[1.]]です.
감상
나는 평가 점수가 더욱 명확해질 것이라고 생각하지만, 몇 가지 무리한 데이터가 있다.
전체적인 결과는 기대만큼 많지만 샘플 수가 적습니다. 정말 성능에 문제가 없나요? 계속 확인할 필요가 있다고 생각합니다.남은 과제는 다음과 같다.
・과도한 학습, 학습 부족 여부 확인
→ 입력 데이터의 소음은 얼마나 큰 영향을 줍니까?
・ 하이퍼패라메트릭 조정
범용 성능 평가
만약 상세한 사람이 있다면 저를 지도해 주시기 바랍니다.
CodeingError 대책 OSError: cannot identify image file './data_org/train/showa//.DS_Store'
DS_Store는 Mac의 메타데이터인 것 같습니다.python 처리가 필요하지 않으면 아래 명령 등으로 삭제하세요.
$ find ./data_org/-name .DS_Store | xargs rm
참고 자료
위키백과, 우리 모두의 백과사전.
Python: 명령행 매개변수란 무엇입니까?(슈퍼 베이스)
맥에서DS_스토리지 종료
ImageDataGenerator 클래스
Sequential 모형으로 Keras를 시작해보도록 하겠습니다.
그 모델, 공부 많이 했어요?공부 안 했어요?하면, 만약, 만약...
Reference
이 문제에 관하여(머신러닝을 통해'령화'티셔츠와'평성'티셔츠를 구분한다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/seigot/items/45fc8d550ffa4cecf79a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
---./data_org/evaluation/heisei1-2.jpg---
[[0.04057287]]
./data_org/evaluation/heisei1-2.jpgの予測結果は[[0.]]です.
---./data_org/evaluation/heisei2-2.jpg---
[[0.4843383]]
./data_org/evaluation/heisei2-2.jpgの予測結果は[[0.]]です.
---./data_org/evaluation/reiwa1-1.jpg---
[[0.5244837]]
./data_org/evaluation/reiwa1-1.jpgの予測結果は[[1.]]です.
---./data_org/evaluation/reiwa2-2.jpg---
[[0.93729514]]
./data_org/evaluation/reiwa2-2.jpgの予測結果は[[1.]]です.
---./data_org/evaluation/reiwa3-2.jpg---
[[0.9273448]]
./data_org/evaluation/reiwa3-2.jpgの予測結果は[[1.]]です.
---./data_org/evaluation/reiwa4-2.jpg---
[[0.9319874]]
./data_org/evaluation/reiwa4-2.jpgの予測結果は[[1.]]です.
---./data_org/evaluation/reiwa5-2.jpg---
[[0.6226176]]
./data_org/evaluation/reiwa5-2.jpgの予測結果は[[1.]]です.
나는 평가 점수가 더욱 명확해질 것이라고 생각하지만, 몇 가지 무리한 데이터가 있다.
전체적인 결과는 기대만큼 많지만 샘플 수가 적습니다. 정말 성능에 문제가 없나요? 계속 확인할 필요가 있다고 생각합니다.남은 과제는 다음과 같다.
・과도한 학습, 학습 부족 여부 확인
→ 입력 데이터의 소음은 얼마나 큰 영향을 줍니까?
・ 하이퍼패라메트릭 조정
범용 성능 평가
만약 상세한 사람이 있다면 저를 지도해 주시기 바랍니다.
CodeingError 대책 OSError: cannot identify image file './data_org/train/showa//.DS_Store'
DS_Store는 Mac의 메타데이터인 것 같습니다.python 처리가 필요하지 않으면 아래 명령 등으로 삭제하세요.
$ find ./data_org/-name .DS_Store | xargs rm
참고 자료
위키백과, 우리 모두의 백과사전.
Python: 명령행 매개변수란 무엇입니까?(슈퍼 베이스)
맥에서DS_스토리지 종료
ImageDataGenerator 클래스
Sequential 모형으로 Keras를 시작해보도록 하겠습니다.
그 모델, 공부 많이 했어요?공부 안 했어요?하면, 만약, 만약...
Reference
이 문제에 관하여(머신러닝을 통해'령화'티셔츠와'평성'티셔츠를 구분한다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/seigot/items/45fc8d550ffa4cecf79a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
OSError: cannot identify image file './data_org/train/showa//.DS_Store'
위키백과, 우리 모두의 백과사전.
Python: 명령행 매개변수란 무엇입니까?(슈퍼 베이스)
맥에서DS_스토리지 종료
ImageDataGenerator 클래스
Sequential 모형으로 Keras를 시작해보도록 하겠습니다.
그 모델, 공부 많이 했어요?공부 안 했어요?하면, 만약, 만약...
Reference
이 문제에 관하여(머신러닝을 통해'령화'티셔츠와'평성'티셔츠를 구분한다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/seigot/items/45fc8d550ffa4cecf79a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)