SemenAnnigilator
@SemenAnnigilator

ValueError: Input 0 of layer sequential_414 is incompatible with the layer: expected axis -1 of input shape to have value 1 but received input?

Подскажите, пожалуйста как решить эту проблему? Если нужно могу приложить Jupyter Notebook и папку с файлами(там изображения).
def define_discriminator(in_shape = (106, 106, 1)):
    model = Sequential()
    model.add(Conv2D(64, (3,3), strides = (2,2), padding = "same", input_shape = in_shape))
    model.add(LeakyReLU(alpha = 0.2))
    model.add(Dropout(0.5))
    model.add(Conv2D(64, (3,3), strides = (2,2), padding = "same"))
    model.add(LeakyReLU(alpha = 0.2))
    model.add(Dropout(0.5))
    model.add(Flatten())
    model.add(Dense(1, activation = "sigmoid"))
    opt = Adam(learning_rate = 0.0002, beta_1 = 0.5)
    model.compile(loss = "binary_crossentropy", optimizer = opt, metrics = ["accuracy"])
    return model
def define_generator(latent_dim):
    model = Sequential()
    n_nodes = 128 * 53 * 53
    model.add(Dense(n_nodes, input_dim = latent_dim))
    model.add(LeakyReLU(alpha = 0.2))
    model.add(Reshape((53, 53, 128)))
    model.add(Dense(1024))
    model.add(Conv2DTranspose(1024, (4,4), strides = (2,2), padding = "same"))
    model.add(Dense(1024))
    model.add(LeakyReLU(alpha = 0.2))
    model.add(Dense(1024))
    model.add(Conv2D(1, (7,7), padding = "same", activation = "sigmoid"))
    return model
def define_gan(g_model, d_model):
    d_model.trianabel = False
    model = Sequential()
    model.add(g_model)
    model.add(d_model)
    opt = Adam(learning_rate = 0.0002, beta_1 = 0.5)
    model.compile(loss = "binary_crossentropy", optimizer = opt)
    return model
def generate_real_samples(dataset, n_samples):
    ix = randint(0, dataset.shape[0], n_samples)
    X = dataset[ix].T
    Y = ones((n_samples, 1)).T
    return X, Y

def generate_latent_points(latent_dim, n_samples):
    x_input = randn(latent_dim * n_samples)
    x_input = x_input.reshape(n_samples, latent_dim)
    return x_input

def generate_fake_samples(g_model, latent_dim, n_samples):
    x_input = generate_latent_points(latent_dim, n_samples)
    X = g_model.predict(x_input).T
    Y = zeros((n_samples, 1)).T
    return X, Y

import tensorflow as tf
def train(g_model, d_model, gan_model, dataset, latent_dim, n_epochs=51, n_batch=10):
    bat_per_epo = int(dataset.shape[0] / n_batch)
    half_batch = int(n_batch / 2)
    for i in range(n_epochs):
        for j in range(bat_per_epo):
            X_real, y_real = generate_real_samples(dataset, half_batch)
            X_fake, y_fake = generate_fake_samples(g_model, latent_dim, half_batch)
            print(X_real, X_fake)
            print(y_real, y_fake)
            X, y = vstack((X_real, X_fake)), vstack((y_real, y_fake))
            d_loss, _ = d_model.train_on_batch(X, y)
            X_gan = generate_latent_points(latent_dim, n_batch)
            y_gan = ones((n_batch, 1))
            g_loss = gan_model.train_on_batch(X_gan, y_gan)
            print('>%d, %d/%d, d=%.3f, g=%.3f' % (i+1, j+1, bat_per_epo, d_loss, g_loss))
        if (i+1) % 10 == 0:
            summarize_performance(i, g_model, d_model, dataset, latent_dim)
            clear_output()

latent_dim = 100
d_model = define_discriminator()
g_model = define_generator(latent_dim)
gan_model = define_gan(g_model, d_model)
print(pixels.shape)
train(g_model, d_model, gan_model, np.array(pixels), latent_dim)
Код ошибки:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-611-b3360c520333> in <module>
      4 gan_model = define_gan(g_model, d_model)
      5 print(pixels.shape)
----> 6 train(g_model, d_model, gan_model, np.array(pixels), latent_dim)

<ipython-input-610-d7d51b905847> in train(g_model, d_model, gan_model, dataset, latent_dim, 
n_epochs, n_batch)
     13             print(X.shape)
     14             print(y.shape)
---> 15             d_loss, _ = d_model.train_on_batch(X, y)
     16             X_gan = generate_latent_points(latent_dim, n_batch)
     17             y_gan = ones((n_batch, 1))

~\anaconda3\envs\LikeProject\lib\site-packages\keras\engine\training.py in 
train_on_batch(self, x, 
y, sample_weight, class_weight, reset_metrics, return_dict)
   1854                                                     class_weight)
   1855       self.train_function = self.make_train_function()
-> 1856       logs = self.train_function(iterator)
   1857 
   1858     if reset_metrics:

~\anaconda3\envs\LikeProject\lib\site-packages\tensorflow\python\eager\def_function.py in 
__call__(self, *args, **kwds)
    883 
    884       with OptionalXlaContext(self._jit_compile):
--> 885         result = self._call(*args, **kwds)
    886 
    887       new_tracing_count = self.experimental_get_tracing_count()

~\anaconda3\envs\LikeProject\lib\site-packages\tensorflow\python\eager\def_function.py in 
_call(self, *args, **kwds)
    931       # This is the first call of __call__, so we have to initialize.
    932       initializers = []
--> 933       self._initialize(args, kwds, add_initializers_to=initializers)
    934     finally:
    935       # At this point we know that the initialization is complete (or less

~\anaconda3\envs\LikeProject\lib\site-packages\tensorflow\python\eager\def_function.py in 
_initialize(self, args, kwds, add_initializers_to)
    757     self._graph_deleter = FunctionDeleter(self._lifted_initializer_graph)
    758     self._concrete_stateful_fn = (
--> 759         self._stateful_fn._get_concrete_function_internal_garbage_collected(  # 
pylint: 
disable=protected-access
    760             *args, **kwds))
    761 

~\anaconda3\envs\LikeProject\lib\site-packages\tensorflow\python\eager\function.py in 
_get_concrete_function_internal_garbage_collected(self, *args, **kwargs)
   3064       args, kwargs = None, None
   3065     with self._lock:
-> 3066       graph_function, _ = self._maybe_define_function(args, kwargs)
   3067     return graph_function
   3068 

~\anaconda3\envs\LikeProject\lib\site-packages\tensorflow\python\eager\function.py in 
_maybe_define_function(self, args, kwargs)
   3461 
   3462           self._function_cache.missed.add(call_context_key)
-> 3463           graph_function = self._create_graph_function(args, kwargs)
   3464           self._function_cache.primary[cache_key] = graph_function
   3465 

~\anaconda3\envs\LikeProject\lib\site-packages\tensorflow\python\eager\function.py in 
_create_graph_function(self, args, kwargs, override_flat_arg_shapes)
   3296     arg_names = base_arg_names + missing_arg_names
   3297     graph_function = ConcreteFunction(
-> 3298         func_graph_module.func_graph_from_py_func(
   3299             self._name,
   3300             self._python_function,

~\anaconda3\envs\LikeProject\lib\site-packages\tensorflow\python\framework\func_graph.py in 
func_graph_from_py_func(name, python_func, args, kwargs, signature, func_graph, autograph, 
autograph_options, add_control_dependencies, arg_names, op_return_value, collections, 
capture_by_value, override_flat_arg_shapes, acd_record_initial_resource_uses)
   1005         _, original_func = tf_decorator.unwrap(python_func)
   1006 
-> 1007       func_outputs = python_func(*func_args, **func_kwargs)
   1008 
   1009       # invariant: `func_outputs` contains only Tensors, CompositeTensors,

~\anaconda3\envs\LikeProject\lib\site-packages\tensorflow\python\eager\def_function.py in 
wrapped_fn(*args, **kwds)
    666         # the function a weak reference to itself to avoid a reference cycle.
    667         with OptionalXlaContext(compile_with_xla):
--> 668           out = weak_wrapped_fn().__wrapped__(*args, **kwds)
    669         return out
    670 

~\anaconda3\envs\LikeProject\lib\site-packages\tensorflow\python\framework\func_graph.py in 
wrapper(*args, **kwargs)
    992           except Exception as e:  # pylint:disable=broad-except
    993             if hasattr(e, "ag_error_metadata"):
--> 994               raise e.ag_error_metadata.to_exception(e)
    995             else:
    996               raise

ValueError: in user code:

    C:\Users\nefar\anaconda3\envs\LikeProject\lib\site-packages\keras\engine\training.py:853 
train_function  *
        return step_function(self, iterator)
    C:\Users\nefar\anaconda3\envs\LikeProject\lib\site-packages\keras\engine\training.py:842 
step_function  **
        outputs = model.distribute_strategy.run(run_step, args=(data,))
    C:\Users\nefar\anaconda3\envs\LikeProject\lib\site- 
packages\tensorflow\python\distribute\distribute_lib.py:1286 run
        return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
    C:\Users\nefar\anaconda3\envs\LikeProject\lib\site- 
packages\tensorflow\python\distribute\distribute_lib.py:2849 call_for_each_replica
        return self._call_for_each_replica(fn, args, kwargs)
    C:\Users\nefar\anaconda3\envs\LikeProject\lib\site- 
packages\tensorflow\python\distribute\distribute_lib.py:3632 _call_for_each_replica
        return fn(*args, **kwargs)
    C:\Users\nefar\anaconda3\envs\LikeProject\lib\site-packages\keras\engine\training.py:835 
run_step  **
        outputs = model.train_step(data)
    C:\Users\nefar\anaconda3\envs\LikeProject\lib\site-packages\keras\engine\training.py:787 
train_step
        y_pred = self(x, training=True)
    C:\Users\nefar\anaconda3\envs\LikeProject\lib\site- 
packages\keras\engine\base_layer.py:1020 
__call__
        input_spec.assert_input_compatibility(self.input_spec, inputs, self.name)
    C:\Users\nefar\anaconda3\envs\LikeProject\lib\site-packages\keras\engine\input_spec.py:250 
assert_input_compatibility
        raise ValueError(

    ValueError: Input 0 of layer sequential_414 is incompatible with the layer: expected axis 
-1 
of input shape to have value 1 but received input with shape (4, 106, 106, 5)
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы