Я работаю над моделью TensorFlow для распознавания лиц, в которой я предварительно обрабатываю изображения, генерирую встраивания и затем сохраняю их в базе данных CSV. Модель отлично работает при прогнозировании по пакету изображений (форма: (12000, 112, 112, 3)), но когда я пытаюсь прогнозировать по одному изображению (форма: (1, 112, 112, 3)), я возникла следующая ошибка:
InvalidArgumentError: Graph execution error:
Detected at node sequential_13_1/flatten_13_1/Reshape defined at (most recent call last):
...
only one input size may be -1, not both 0 and 1
Я сузил проблему до следующей строки в своем коде:
Я работаю над моделью TensorFlow для распознавания лиц, в которой я предварительно обрабатываю изображения, генерирую встраивания и затем сохраняю их в базе данных CSV. Модель отлично работает при прогнозировании по пакету изображений (форма: (12000, 112, 112, 3)), но когда я пытаюсь прогнозировать по одному изображению (форма: (1, 112, 112, 3)), я возникла следующая ошибка: [code]InvalidArgumentError: Graph execution error:
Detected at node sequential_13_1/flatten_13_1/Reshape defined at (most recent call last): ... only one input size may be -1, not both 0 and 1 [/code] Я сузил проблему до следующей строки в своем коде: [code]new_embedding = model.predict(new_image) # Generating embedding for new image [/code] Вот мой код для создания вложений и добавления нового человека в базу данных: [code]import tensorflow as tf import numpy as np import pandas as pd from sklearn.metrics.pairwise import cosine_similarity
# Example usage: new_image = preprocessing_new_person("/path/to/image.jpg") new_label = 'New Person' add_to_database(new_image, new_label, model) [/code] Вот полный код модели CNN (проблема не в CNN, поскольку первое предсказание с использованием 12000 изображений работает нормально): [code]import tensorflow as tf from tensorflow.keras import layers, models import numpy as np import pandas as pd import random from sklearn.metrics.pairwise import cosine_similarity
from tensorflow.keras import layers, models
def generate_triplets(data, labels, num_triplets): """ Generates triplets for metric learning.
Parameters: - data: numpy array of image data - labels: numpy array of corresponding labels - num_triplets: number of triplets to generate
Returns: - x_triplets: numpy array of triplets (anchor, positive, negative) - y_triplets: numpy array of labels for the triplets (all ones as labels) """ x_triplets = [] y_triplets = [] label_indices = {label: np.where(labels == label)[0] for label in np.unique(labels)}
for _ in range(num_triplets): anchor_label = random.choice(list(label_indices.keys())) positive_label = anchor_label negative_label = random.choice([label for label in label_indices.keys() if label != anchor_label])
x_triplets = np.array(x_triplets) # Reshape the triplets to merge the triplet dimension into the batch dimension x_triplets = x_triplets.reshape(-1, x_triplets.shape[2], x_triplets.shape[3], x_triplets.shape[4])
y_triplets = np.array(y_triplets) # Repeat labels three times to match the reshaped triplets y_triplets = np.repeat(y_triplets, 3)
return x_triplets, y_triplets
# Define the CNN model def create_model(input_shape): model = models.Sequential()
# Check if triplet condition is satisfied valid_triplets = tf.reduce_mean(tf.cast(pos_dist + alpha < neg_dist, tf.float32)) return valid_triplets
# Training the model input_shape = (112, 112, 3) model = create_model(input_shape)
optimizer = tf.keras.optimizers.Adam(learning_rate=0.0004) # Compile the model with the validation metric model.compile(optimizer=optimizer, loss=triplet_loss, metrics=[triplet_validation_metric]) model.summary()
# Generate triplets (train and test data assumed to be preloaded) x_triplets_train, y_triplets_train = generate_triplets(train_data, train_labels, num_triplets=1500) x_triplets_test, y_triplets_test = generate_triplets(test_data, test_labels, num_triplets=1500)
# Train the model model.fit(x_triplets_train, y_triplets_train, epochs=20, validation_data=(x_triplets_test, y_triplets_test), batch_size=30) [/code] Помните, что входной размер верен, но модель все равно не дает прогноза
Я работаю над моделью TensorFlow для распознавания лиц, в которой я предварительно обрабатываю изображения, генерирую встраивания и затем сохраняю их в базе данных CSV. Модель отлично работает при прогнозировании по пакету изображений (форма:...
Я пытаюсь обучить экспериментальную модель Tensorflow из официального API обнаружения объектов Tensorflow, в частности модели сетчатки. Однако я сталкиваюсь с следующей ошибкой во время учебного процесса:
restoring or initializing model...
train |...
Я пытаюсь обучить экспериментальную модель Tensorflow из официального API обнаружения объектов Tensorflow, в частности модели сетчатки. Однако я сталкиваюсь с следующей ошибкой во время учебного процесса:
restoring or initializing model...
train |...
Когда я точно настраиваю Llama3.2(11B/8B) для генерации целевого текста
with self.maybe_autocast():
outputs = self.llama_model(
input_ids=None,
inputs_embeds=concat_inputs_embeds,
attention_mask=mask,
labels=targets
)
loss = outputs.loss
return...
Когда я точно настраиваю Llama3.2(11B/8B) для генерации целевого текста
with self.maybe_autocast():
outputs = self.llama_model(
input_ids=None,
inputs_embeds=concat_inputs_embeds,
attention_mask=mask,
labels=targets
)
loss = outputs.loss
return...