首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tensorflow keras model.fit上的图执行错误

tensorflow keras model.fit上的图执行错误
EN

Stack Overflow用户
提问于 2022-07-11 15:34:27
回答 1查看 913关注 0票数 0

我真的很感激你从一开始就帮我。

我正在尝试用tensorflow.keras制作一个简单的NN

它以前工作过,但从昨天起,我的代码给出了“图形执行错误”

我想知道哪个优化器和激活函数对我的神经网络有好处,

所以我定义了一个函数来方便地进行迭代。

x_train是有56栏的熊猫DataFrame,y_train是有2栏的熊猫DataFrame。

我猜输入维没有问题。

你们能帮我解决这个错误吗?

代码语言:javascript
复制
import ccxt
import pandas as pd
import numpy as np
import tensorflow as tf

import time
import math

import csv

from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(data_4candles, data_minmax)
x_test, x_val, y_test, y_val = train_test_split(x_test, y_test)

def model_compile_fit_predict(optimizer,activation,epochs,filepath):
    model = tf.keras.models.Sequential()

    model.add(tf.keras.layers.Dense(56, input_dim = 56, activation = activation))
    model.add(tf.keras.layers.Dense(56, activation = activation))
    model.add(tf.keras.layers.Dense(10, activation = activation))
    model.add(tf.keras.layers.Dense(2, activation = activation))

    
    model.compile(loss = 'mse', optimizer = optimizer, 
              metrics = ['accuracy',tf.keras.metrics.Precision(),tf.keras.metrics.Recall()])
    
    hist = model.fit(x_train, y_train, epochs = epochs, validation_data = (x_val, y_val))
    
    loss, accuracy, precision, recall_1 = model.evaluate(x_test, y_test)
    
    hist_acc = hist.history['accuracy']
    hist_loss = hist.history['loss']
    hist_val_acc = hist.history['val_accuracy']
    hist_val_loss = hist.history['val_loss']
    
    model.save(filepath = filepath)
    
    
    output = [activation, optimizer, 
              'test accuracy and loss: ', accuracy, loss, 
              'true positive / (true positive + false positive): ', precision,
              'true positive / (true positive + false negative): ', recall_1,
              'train epoch accuracy and loss: ',hist_acc,hist_loss,
              'validation epoch accuracy and loss: ', hist_val_acc,hist_val_loss]
    
    return output

activation_functions = ['relu', 'softplus', 'selu', 'elu']
optimizers = ['RMSprop', 'Adam', 'Adadelta', 
              'Adagrad', 'Adamax', 'Nadam', 'Ftrl']


dummy_list1 = list()
for i in optimizers:
    dummy_list2 = list()
    for j in activation_functions:
        output = model_compile_fit_predict(i,j,epochs=5,filepath = '/home/bae/MidasProject/ML/ML_file/'+i+'_'+j)
        dummy_list2.append(output)
    dummy_list1.append(dummy_list2)
        
output_2d = dummy_list1

因为这里我有一条错误消息

代码语言:javascript
复制
InvalidArgumentError                      Traceback (most recent call last)
Input In [17], in <cell line: 2>()
      3 dummy_list2 = list()
      4 for j in activation_functions:
----> 5     output = model_compile_fit_predict(i,j,epochs=5, filepath = '/home/bae/MidasProject/ML/ML_file/'+i+'_'+j)
      6     dummy_list2.append(output)
      7 dummy_list1.append(dummy_list2)

Input In [15], in model_compile_fit_predict(opt, activation, epochs, filepath)
      7 model.add(tf.keras.layers.Dense(2, activation = activation))
     10 model.compile(loss = 'mse', optimizer = opt, 
     11           metrics = ['accuracy',tf.keras.metrics.Precision(),tf.keras.metrics.Recall()])
---> 13 hist = model.fit(x_train, y_train, epochs = epochs, validation_data = (x_val, y_val))
     15 loss, accuracy, precision, recall_1 = model.evaluate(x_test, y_test)
     16 y_predict = model.predict(x_test)

File ~/.local/lib/python3.10/site-packages/keras/utils/traceback_utils.py:67, in filter_traceback.<locals>.error_handler(*args, **kwargs)
     65 except Exception as e:  # pylint: disable=broad-except
     66   filtered_tb = _process_traceback_frames(e.__traceback__)
---> 67   raise e.with_traceback(filtered_tb) from None
     68 finally:
     69   del filtered_tb

File ~/.local/lib/python3.10/site-packages/tensorflow/python/eager/execute.py:54, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
     52 try:
     53   ctx.ensure_initialized()
---> 54   tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
     55                                       inputs, attrs, num_outputs)
     56 except core._NotOkStatusException as e:
     57   if name is not None:

InvalidArgumentError: Graph execution error:

Detected at node 'assert_less_equal/Assert/AssertGuard/Assert' defined at (most recent call last):
    File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
      return _run_code(code, main_globals, None,
    File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
      exec(code, run_globals)
    File "/home/bae/.local/lib/python3.10/site-packages/ipykernel_launcher.py", line 17, in <module>
      app.launch_new_instance()
    File "/home/bae/.local/lib/python3.10/site-packages/traitlets/config/application.py", line 976, in launch_instance
      app.start()
    File "/home/bae/.local/lib/python3.10/site-packages/ipykernel/kernelapp.py", line 712, in start
      self.io_loop.start()
    File "/home/bae/.local/lib/python3.10/site-packages/tornado/platform/asyncio.py", line 215, in start
      self.asyncio_loop.run_forever()
    File "/usr/lib/python3.10/asyncio/base_events.py", line 600, in run_forever
      self._run_once()
    File "/usr/lib/python3.10/asyncio/base_events.py", line 1896, in _run_once
      handle._run()
    File "/usr/lib/python3.10/asyncio/events.py", line 80, in _run
      self._context.run(self._callback, *self._args)
    File "/home/bae/.local/lib/python3.10/site-packages/ipykernel/kernelbase.py", line 510, in dispatch_queue
      await self.process_one()
    File "/home/bae/.local/lib/python3.10/site-packages/ipykernel/kernelbase.py", line 499, in process_one
      await dispatch(*args)
    File "/home/bae/.local/lib/python3.10/site-packages/ipykernel/kernelbase.py", line 406, in dispatch_shell
      await result
    File "/home/bae/.local/lib/python3.10/site-packages/ipykernel/kernelbase.py", line 730, in execute_request
      reply_content = await reply_content
    File "/home/bae/.local/lib/python3.10/site-packages/ipykernel/ipkernel.py", line 383, in do_execute
      res = shell.run_cell(
    File "/home/bae/.local/lib/python3.10/site-packages/ipykernel/zmqshell.py", line 528, in run_cell
      return super().run_cell(*args, **kwargs)
    File "/home/bae/.local/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 2881, in run_cell
      result = self._run_cell(
    File "/home/bae/.local/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 2936, in _run_cell
      return runner(coro)
    File "/home/bae/.local/lib/python3.10/site-packages/IPython/core/async_helpers.py", line 129, in _pseudo_sync_runner
      coro.send(None)
    File "/home/bae/.local/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3135, in run_cell_async
      has_raised = await self.run_ast_nodes(code_ast.body, cell_name,
    File "/home/bae/.local/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3338, in run_ast_nodes
      if await self.run_code(code, result, async_=asy):
    File "/home/bae/.local/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3398, in run_code
      exec(code_obj, self.user_global_ns, self.user_ns)
    File "/tmp/ipykernel_25723/2605155955.py", line 5, in <cell line: 2>
      output = model_compile_fit_predict(i,j,epochs=5, filepath = '/home/bae/MidasProject/ML/ML_file/'+i+'_'+j)
    File "/tmp/ipykernel_25723/817902483.py", line 13, in model_compile_fit_predict
      hist = model.fit(x_train, y_train, epochs = epochs, validation_data = (x_val, y_val))
    File "/home/bae/.local/lib/python3.10/site-packages/keras/utils/traceback_utils.py", line 64, in error_handler
      return fn(*args, **kwargs)
    File "/home/bae/.local/lib/python3.10/site-packages/keras/engine/training.py", line 1409, in fit
      tmp_logs = self.train_function(iterator)
    File "/home/bae/.local/lib/python3.10/site-packages/keras/engine/training.py", line 1051, in train_function
      return step_function(self, iterator)
    File "/home/bae/.local/lib/python3.10/site-packages/keras/engine/training.py", line 1040, in step_function
      outputs = model.distribute_strategy.run(run_step, args=(data,))
    File "/home/bae/.local/lib/python3.10/site-packages/keras/engine/training.py", line 1030, in run_step
      outputs = model.train_step(data)
    File "/home/bae/.local/lib/python3.10/site-packages/keras/engine/training.py", line 894, in train_step
      return self.compute_metrics(x, y, y_pred, sample_weight)
    File "/home/bae/.local/lib/python3.10/site-packages/keras/engine/training.py", line 987, in compute_metrics
      self.compiled_metrics.update_state(y, y_pred, sample_weight)
    File "/home/bae/.local/lib/python3.10/site-packages/keras/engine/compile_utils.py", line 501, in update_state
      metric_obj.update_state(y_t, y_p, sample_weight=mask)
    File "/home/bae/.local/lib/python3.10/site-packages/keras/utils/metrics_utils.py", line 70, in decorated
      update_op = update_state_fn(*args, **kwargs)
    File "/home/bae/.local/lib/python3.10/site-packages/keras/metrics/base_metric.py", line 140, in update_state_fn
      return ag_update_state(*args, **kwargs)
    File "/home/bae/.local/lib/python3.10/site-packages/keras/metrics/metrics.py", line 818, in update_state
      return metrics_utils.update_confusion_matrix_variables(
    File "/home/bae/.local/lib/python3.10/site-packages/keras/utils/metrics_utils.py", line 606, in update_confusion_matrix_variables
      tf.debugging.assert_less_equal(
Node: 'assert_less_equal/Assert/AssertGuard/Assert'
assertion failed: [predictions must be <= 1] [Condition x <= y did not hold element-wise:] [x (sequential/dense_3/Relu:0) = ] [[27222.8672 37717.7305][41931.543...]...] [y (Cast_7/x:0) = ] [1]
     [[{{node assert_less_equal/Assert/AssertGuard/Assert}}]] [Op:__inference_train_function_1350]

我用的是两台电脑

代码语言:javascript
复制
MacBook Pro : macOS Monterey 12.4
          Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz, 
          Intel Iris Plus Graphics 1536 MB, 
Desktop : Ubuntu 22.04
      Intel i7-11700
      NVIDIA RTX 3070

我尝试了所有可能的组合

在两台电脑上,

有GPU,没有GPU,

在conda环境中(使用python 3.9),在我的主目录(python3.10)中

重新安装tensorflow对我没用。

EN

回答 1

Stack Overflow用户

发布于 2022-07-12 07:01:35

感谢上面评论的@Dr.Snoopy和@GiorgosLivanos,

问题是我使用损失函数和度量来进行分类,而不是我所做的回归。

代码语言:javascript
复制
model.compile(loss = "mean_absolute_percentage_error", optimizer = optimizer, 
              metrics = ['custom_metrics'])

应该像这样改变!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72941082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档