Python 不支持无值,Keras LSTM配合

Python 不支持无值,Keras LSTM配合,python,tensorflow,keras,Python,Tensorflow,Keras,亲爱的各位,我正在使用Keras 2.3.1和Tensorflow 2.0.0运行以下代码: def lstm_nn_model( trainings_data: np.array, prediction_data: np.array, target_train: np.array, learning_rate: float = 0.001, lstm_units: int = 100, batch_

亲爱的各位,我正在使用Keras 2.3.1和Tensorflow 2.0.0运行以下代码:

def lstm_nn_model(
        trainings_data: np.array,
        prediction_data: np.array,
        target_train: np.array,
        learning_rate: float = 0.001,
        lstm_units: int = 100,
        batch_size: int = 72,
        epochs: int = 1000,
        seq_len: float = 4):
    # LSTM part
    lstm_input = Input(batch_shape=trainings_data.shape, dtype='float32',
                       name='lstm_input')
    lstm_out = LSTM(lstm_units, return_sequences=False)(lstm_input)
    # Output
    output = Dense(1, name='output')(lstm_out)

    # compile model
    adam_opt = Adam(lr=learning_rate, beta_1=0.9, beta_2=0.999, epsilon=None,
                    decay=0.0, amsgrad=False)
    lstm_model = Model(inputs=lstm_input, outputs=output)
    lstm_model.compile(
        optimizer=adam_opt, loss='mean_squared_error', metrics=['accuracy']
    )
    # Train
    lstm_model.fit(
        x=trainings_data ,
        y=target_train,
        batch_size=batch_size,
        epochs=epochs,
        verbose=2
    )
    return lstm_model.predict(prediction_data)
我的数据没有NaN或Null。你可以下载我使用她的数据。有酸洗过的numpy数组(numpy版本1.17.1)。 事实上,我不知道为什么会发生这种情况,类似的答案也没有帮助。如果您需要帮助重现错误,请告诉我。提前谢谢

完整的错误消息:

ValueError                                Traceback (most recent call last)
<ipython-input-6-2930b20ab5e4> in <module>()
      2 target_train_data = target_train[3:]
      3 pred_data = pre_process_lstm_predictors(prediction_data, 3)
----> 4 pred_lstm = lstm_nn_model(train_data, pred_data, target_train_data)

~/Desktop/python_projects/meteoIntelligence-projects/src/dataScience/modellingServices.py in lstm_nn_model(trainings_data, prediction_data, target_train, learning_rate, lstm_units, batch_size, epochs, seq_len)
    267         batch_size=batch_size,
    268         epochs=epochs,
--> 269         verbose=2
    270     )
    271     return lstm_model.predict(prediction_data)

~/Desktop/venv/lib/python3.6/site-packages/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, max_queue_size, workers, use_multiprocessing, **kwargs)
   1211         else:
   1212             fit_inputs = x + y + sample_weights
-> 1213         self._make_train_function()
   1214         fit_function = self.train_function
   1215 

~/Desktop/venv/lib/python3.6/site-packages/keras/engine/training.py in _make_train_function(self)
    314                     training_updates = self.optimizer.get_updates(
    315                         params=self._collected_trainable_weights,
--> 316                         loss=self.total_loss)
    317                 updates = self.updates + training_updates
    318 

~/Desktop/venv/lib/python3.6/site-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs)
     89                 warnings.warn('Update your `' + object_name + '` call to the ' +
     90                               'Keras 2 API: ' + signature, stacklevel=2)
---> 91             return func(*args, **kwargs)
     92         wrapper._original_function = func
     93         return wrapper

~/Desktop/venv/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py in symbolic_fn_wrapper(*args, **kwargs)
     73         if _SYMBOLIC_SCOPE.value:
     74             with get_graph().as_default():
---> 75                 return func(*args, **kwargs)
     76         else:
     77             return func(*args, **kwargs)

~/Desktop/venv/lib/python3.6/site-packages/keras/optimizers.py in get_updates(self, loss, params)
    541                 self.updates.append(K.update(vhat, vhat_t))
    542             else:
--> 543                 p_t = p - lr_t * m_t / (K.sqrt(v_t) + self.epsilon)
    544 
    545             self.updates.append(K.update(m, m_t))

~/Desktop/venv/lib/python3.6/site-packages/tensorflow_core/python/ops/math_ops.py in binary_op_wrapper(x, y)
    901         try:
    902           y = ops.convert_to_tensor_v2(
--> 903               y, dtype_hint=x.dtype.base_dtype, name="y")
    904         except TypeError:
    905           # If the RHS is not a tensor, it might be a tensor aware object

~/Desktop/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py in convert_to_tensor_v2(value, dtype, dtype_hint, name)
   1240       name=name,
   1241       preferred_dtype=dtype_hint,
-> 1242       as_ref=False)
   1243 
   1244 

~/Desktop/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py in internal_convert_to_tensor(value, dtype, name, as_ref, preferred_dtype, ctx, accept_composite_tensors)
   1294 
   1295     if ret is None:
-> 1296       ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
   1297 
   1298     if ret is NotImplemented:

~/Desktop/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/constant_op.py in _constant_tensor_conversion_function(v, dtype, name, as_ref)
    284                                          as_ref=False):
    285   _ = as_ref
--> 286   return constant(v, dtype=dtype, name=name)
    287 
    288 

~/Desktop/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/constant_op.py in constant(value, dtype, shape, name)
    225   """
    226   return _constant_impl(value, dtype, shape, name, verify_shape=False,
--> 227                         allow_broadcast=True)
    228 
    229 

~/Desktop/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/constant_op.py in _constant_impl(value, dtype, shape, name, verify_shape, allow_broadcast)
    263       tensor_util.make_tensor_proto(
    264           value, dtype=dtype, shape=shape, verify_shape=verify_shape,
--> 265           allow_broadcast=allow_broadcast))
    266   dtype_value = attr_value_pb2.AttrValue(type=tensor_value.tensor.dtype)
    267   const_tensor = g.create_op(

~/Desktop/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/tensor_util.py in make_tensor_proto(values, dtype, shape, verify_shape, allow_broadcast)
    435   else:
    436     if values is None:
--> 437       raise ValueError("None values not supported.")
    438     # if dtype is provided, forces numpy array to be the type
    439     # provided if possible.

ValueError回溯(最近一次调用)
在()
2目标列车数据=目标列车[3:]
3预测数据=预测过程预测值(预测数据,3)
---->4 pred_lstm=lstm_nn_模型(列车数据、pred_数据、目标列车数据)
lstm\u nn\u模型中的~/Desktop/python\u projects/meteentelligence projects/src/dataScience/modellingServices.py(训练数据、预测数据、目标训练、学习率、lstm\u单位、批量大小、历次、顺序)
267批次大小=批次大小,
268时代=时代,
-->269详细=2
270     )
271返回lstm_模型。预测(预测数据)
~/Desktop/venv/lib/python3.6/site-packages/keras/engine/training.py in-fit(self、x、y、批大小、历元、冗余、回调、验证拆分、验证数据、洗牌、类权重、样本权重、初始历元、每个历元的步骤、验证步骤、验证频率、最大队列大小、工作人员、使用多处理、**kwargs)
1211其他:
1212拟合输入=x+y+样本权重
->1213自我制造训练功能()
1214配合功能=自我训练功能
1215
~/Desktop/venv/lib/python3.6/site-packages/keras/engine/training.py in\u make\u train\u函数(self)
314培训\u更新=self.optimizer.get\u更新(
315参数=自身收集的可训练重量,
-->316损耗=自身总损耗)
317更新=自我更新+培训更新
318
包装中的~/Desktop/venv/lib/python3.6/site-packages/keras/legacy/interfaces.py(*args,**kwargs)
89 warnings.warn('Update your`'+object\u name+'`调用+
90'Keras 2 API:'+签名,堆栈级别=2)
--->91返回函数(*args,**kwargs)
92包装器._原始函数=func
93返回包装器
符号包装中的~/Desktop/venv/lib/python3.6/site-packages/keras/backend/tensorflow\u backend.py(*args,**kwargs)
73如果符号范围值:
74带有get_graph()。作为_default():
--->75返回函数(*args,**kwargs)
76.其他:
77返回函数(*args,**kwargs)
获取更新中的~/Desktop/venv/lib/python3.6/site-packages/keras/optimizers.py(self、loss、params)
541自我更新。追加(K.更新(vhat,vhat_t))
542其他:
-->543 p_t=p-lr_t*m_t/(K.sqrt(v_t)+self.epsilon)
544
545 self.updates.append(K.update(m,m_t))
二进制包装中的~/Desktop/venv/lib/python3.6/site-packages/tensorflow\u core/python/ops/math\u ops.py(x,y)
901尝试:
902y=ops.convert\u to\u tensor\u v2(
-->903 y,dtype\u hint=x.dtype.base\u dtype,name=“y”)
904除类型错误外:
905#如果RHS不是张量,它可能是张量感知对象
~/Desktop/venv/lib/python3.6/site-packages/tensorflow\u core/python/framework/ops.py in convert\u to\u tensor\u v2(值、数据类型、数据类型提示、名称)
1240 name=名称,
1241首选类型=类型提示,
->1242 as_ref=False)
1243
1244
内部转换为张量中的~/Desktop/venv/lib/python3.6/site-packages/tensorflow\u core/python/framework/ops.py(值、数据类型、名称、as\u ref、首选数据类型、ctx、接受复合张量)
1294
1295如果ret为无:
->1296 ret=conversion\u func(值,dtype=dtype,name=name,as\u ref=as\u ref)
1297
1298如果未实施ret:
~/Desktop/venv/lib/python3.6/site-packages/tensorflow\u core/python/framework/constant\u op.py in\u constant\u tensor\u conversion\u函数(v,dtype,name,as\u ref)
284 as_ref=False):
285=作为参考
-->286返回常量(v,dtype=dtype,name=name)
287
288
~/Desktop/venv/lib/python3.6/site-packages/tensorflow\u core/python/framework/constant\u op.py in常量(值、数据类型、形状、名称)
225   """
226返回\u常量\u impl(值、数据类型、形状、名称、验证\u形状=False,
-->227允许_广播=真)
228
229
~/Desktop/venv/lib/python3.6/site-packages/tensorflow\u core/python/framework/constant\u op.py in\u constant\u impl(值、数据类型、形状、名称、验证形状、允许广播)
263张量使用。生成张量原型(
264值,dtype=dtype,shape=shape,verify\u shape=verify\u shape,
-->265允许广播=允许广播)
266 dtype\u value=attr\u value\u pb2.AttrValue(type=tensor\u value.tensor.dtype)
267常数张量=g.创建(
在make\u tensor\u proto中~/Desktop/venv/lib/python3.6/site-packages/tensorflow\u core/python/framework/tensor\u util.py(值、数据类型、形状、验证形状、允许广播)
435其他:
436如果值为无:
-->437 raise VALUE ERROR(“不支持无值”)
438#如果提供了dtype,则强制numpy数组为该类型
439#如果可能的话提供。

非常简单,您不能在
Adam
中设置
epsilon=None
。它需要是一个数字(通常是一个小数字>0)。只需使用
Adam\u opt=Adam(lr=learning\u rate)
,其余的都是默认值。

非常简单,您不能在
Adam
中设置
epsilon=None
。它需要是一个数字(通常是一个小数字>0)。只需使用
adam\u opt=adam(lr=learning\u rate)
,其余的都是默认值