Я новичок в Python и AI. Я пытаюсь создать AI hello world.
Но у меня вопрос по коду. Путь: «C: \ ABC \ AAC \ data \ as001.jpg» || "C: \ ABC \ AAC \ data \ wb001.jpg"
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import os
import pathlib
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Conv2D, Flatten, Dropout, MaxPooling2D
print(tf.__version__)
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
SIZE = 250
CLASS_NAMES = ['Asparagus','White Bread']
data_dir = pathlib.Path().home().joinpath('Desktop', 'tmp', 'data')
CLASS_NAMES = np.array(['White Bread','Asaparagus'])
list_ds = tf.data.Dataset.list_files(str(data_dir/'*'))
def get_label(path):
parts = tf.strings.split(path, os.path.sep)
# 1. print(parts[-1])
return parts[-1]
def decode_img(img):
img = tf.image.decode_jpeg(img, channels=3)
img = tf.image.convert_image_dtype(img, tf.float32)
img = tf.image.resize(img, [SIZE, SIZE])
return tf.reshape(img, [-1, 250, 250, 3])
def process(path):
label = get_label(path)
img = tf.io.read_file(path)
img = decode_img(img)
return img, label
labeled_ds = list_ds.map(process)
for image, label in labeled_ds:
#2. print(label)
model = Sequential([
Conv2D(16, (3,3), padding='same', activation='relu', input_shape=(SIZE, SIZE, 3)),
MaxPooling2D(2,2),
Dropout(0.2),
Conv2D(32, (3,3), padding='same', activation='relu'),
MaxPooling2D(2,2),
Conv2D(64, (3,3), padding='same', activation='relu'),
MaxPooling2D(2,2),
Dropout(0.2),
Flatten(),
Dense(2, activation='softmax')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
history = model.fit(labeled_ds, epochs = 5, steps_per_epoch = 2)
Я пытаюсь понять, почему Print # 1 печатает Tensor ("strided_slice: 0", shape = (), dtype = string), но Print # 2 печатает фактическое значение tf.Tensor (b'as001.jpg ', shape = (), dtype = string)
Кроме того, я пытаюсь сопоставить значения (wb0 с 0 и as0 до 1) в функции процесса, но я не могу извлечь значение из части [-1].
Что я делаю не так?
Любая помощь приветствуется.