Аргументы «target» и «output» должны иметь одинаковый ранг (ndim) с keras.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Аргументы «target» и «output» должны иметь одинаковый ранг (ndim) с keras.

Сообщение Anonymous »

Код: Выделить всё

import pickle
import os
from tf_keras.models import Sequential
from tf_keras.layers import Conv2D, MaxPooling2D, Activation, Flatten, Dense
from keras_tuner.tuners import RandomSearch
from keras_tuner.engine.hyperparameters import HyperParameters

# Load data
X = []
y = []
DIRECTORY = 'data'
LOG_DIR = 'log'

for i in range(16):  # Edit number based on how many chunks you have
with open(os.path.join(DIRECTORY, f'X_chunk_{i}.pickle'), 'rb') as f:
X_chunk = pickle.load(f)
with open(os.path.join(DIRECTORY, f'y_chunk_{i}.pickle'), 'rb') as f:
y_chunk = pickle.load(f)

X.extend(X_chunk)
y.extend(y_chunk)

X = np.array(X, dtype=np.float32)
y = np.array(y, dtype=np.float32).flatten()

X = X.reshape(-1, 256, 256, 1)

print(len(X))

# Define the model creation function
def create_model(hp):
model = Sequential()

model.add(Conv2D(
hp.Int(name='input_units', min_value=32, max_value=256, step=32),
(3, 3),
input_shape=(256, 256, 1)
))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

for i in range(hp.Int(name='n_layers', min_value=1, max_value=4)):  # Adding variation of layers
model.add(Conv2D(
hp.Int(name=f'conv_{i}_units', min_value=32, max_value=256, step=32),
(3, 3)
))
model.add(Activation('relu'))

model.add(Flatten())
model.add(Dense(1))  # Change the number of units to 1
model.add(Activation("sigmoid"))  # Sigmoid for binary classification

model.compile(
optimizer="adam",
loss="binary_crossentropy",  # This is correct for binary classification
metrics=["accuracy"]
)

return model

# Define the tuner
tuner = RandomSearch(
create_model,  # Pass the function itself here
objective='val_accuracy',
max_trials=1,  # Number of model variations to test
executions_per_trial=1,
directory=LOG_DIR
)

tuner.search_space_summary()

# Search for the best hyperparameters
tuner.search(
x=X,
y=y,
epochs=1,
batch_size=64,
validation_split=0.15
)

# Summarize results
tuner.results_summary()
Сообщение об ошибке:
ValueError: Целевые и выходные данные аргументов должны иметь того же ранга (ндим). Получено: target.shape=(None,), output.shape=(None, 64)

Кажется, я не понимаю, почему он дает мне такое сообщение.
Мои спутниковые снимки и я пытаюсь определить, повреждены они или нет в результате урагана.
Я просто предварительно обрабатываю данные и разделяю их на фрагменты, чтобы иметь возможность мариновать их

Подробнее здесь: https://stackoverflow.com/questions/793 ... with-keras
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»