不兼容的形状:[1020,1,1]与[1019,1,1]-Tensorflow

路易斯·汉里克

将我的神经网络的输出设置为1时遇到问题,它在数据数组中出现了问题,指责哪种形状更大,如果使用periods = len(valuesAnalisys) - 1,一切正常!

期间:

periods = 1

回:

Imcompatible shapes: [1020,1,1] vs. [1019,1,1]

神经网络:

datecollect = [x[0] for x in dataSet]
servers = [x[1] for x in dataSet]
valuesAnalisys = [float(x[2]) for x in dataSet]

base = np.array(valuesAnalisys)

periods = 1
future_forecast = 1

X = base[0:(len(base) - (len(base) % periods))]
X_batches = X.reshape(-1, periods, 1)

y = base[1:(len(base) - (len(base) % periods)) + future_forecast]
y_batches = y.reshape(-1, periods, 1)

X_test = base[-(periods + future_forecast):]
X_test = X_test[:periods]
X_test = X_test.reshape(-1, periods, 1)
y_test = base[-(periods):]
y_test = y_test.reshape(-1, periods, 1)

tf.reset_default_graph()

appetizer = 1
hidden_neurons = 100
exit_neurons = 1

xph = tf.placeholder(tf.float32, [None, periods, appetizer])
yph = tf.placeholder(tf.float32, [None, periods, exit_neurons])

cell = tf.contrib.rnn.BasicRNNCell(num_units = hidden_neurons, activation = tf.nn.relu)

cell = tf.contrib.rnn.OutputProjectionWrapper(cell, output_size = 1)

exit_rnn, _ = tf.nn.dynamic_rnn(cell, xph, dtype = tf.float32)
calculateError = tf.losses.mean_squared_error(labels = yph, predictions = exit_rnn)
otimizador = tf.train.AdamOptimizer(learning_rate = 0.001)
training = otimizador.minimize(calculateError)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())

    for epoch in range(2000):
        _, cost = sess.run([training, calculateError], feed_dict = {xph: X_batches, yph: y_batches})
        if epoch % 100 == 0:
            print("[INFO] Epoch: {} - Level Error: {}".format(epoch,cost))

    forecast = sess.run(exit_rnn, feed_dict = {xph: X_test})

y_test.shape
y_test2 = np.ravel(y_test)

final_forecast = np.ravel(forecast)

mae = mean_absolute_error(y_test2, final_forecast)

for (host, forecast, date) in list(zip(servers, final_forecast, datecollect)):
    send.postForecastMemory(host, forecast, cost, date)

输出:

A:CPU for cluster because envvar TF_XLA_FLAGS=--tf_xla_cpu_global_jit was not set.  If you want XLA:CPU, either set that envvar, or use experimental_jit_scope to enable XLA:CPU.  To confirm that XLA is active, pass --vmodule=xla_compilation_cache=1 (as a proper command-line flag, not via TF_XLA_FLAGS) or set the envvar XLA_FLAGS=--xla_hlo_profile.
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/client/session.py", line 1356, in _do_call
    return fn(*args)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/client/session.py", line 1341, in _run_fn
    options, feed_dict, fetch_list, target_list, run_metadata)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/client/session.py", line 1429, in _call_tf_sessionrun
    run_metadata)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [1020,1,1] vs. [1019,1,1]
         [[{{node gradients/mean_squared_error/SquaredDifference_grad/BroadcastGradientArgs}}]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "teste.py", line 61, in <module>
    _, custo = sess.run([treinamento, erro], feed_dict = {xph: X_batches, yph: y_batches})
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/client/session.py", line 950, in run
    run_metadata_ptr)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/client/session.py", line 1173, in _run
    feed_dict_tensor, options, run_metadata)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/client/session.py", line 1350, in _do_run
    run_metadata)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/client/session.py", line 1370, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [1020,1,1] vs. [1019,1,1]
         [[node gradients/mean_squared_error/SquaredDifference_grad/BroadcastGradientArgs (defined at teste.py:55) ]]

点击数据视图

形状:

[INFO] base shape: (1020,)
[INFO] X shape: (1019,)
[INFO] X batches shape: (1, 1019, 1)
[INFO] Y batches shape: (1, 1019, 1)
[INFO] X teste shape: (1, 1019, 1)
[INFO] Y teste shape: (1, 1019, 1)
扎比尔·纳粹

罪魁祸首似乎是RNN单元中固定的时间维度。

xph = tf.placeholder(tf.float32, [None, periods, appetizer])
yph = tf.placeholder(tf.float32, [None, periods, exit_neurons])

cell = tf.contrib.rnn.BasicRNNCell(num_units = hidden_neurons, activation = tf.nn.relu)

在这里,您在xph和yph中都将时间维指定为周期。因此,如果信号更长或更短,则会出现错误。

由于您未指定输入形状或模型摘要,因此我无法推断出模型层的确切尺寸。因此,使用占位符数字。

有两个可能的修复程序。

  1. 不要使用固定的时间维=周期,而应使用“无”。
xph = tf.placeholder(tf.float32, [None, None, appetizer])
yph = tf.placeholder(tf.float32, [None, None, exit_neurons])

但是,不利的一面是,每个批次中必须具有相同长度的信号,或者您可以简单地使用批次大小= 1进行训练,而不必担心时间长度。

  1. 使用截断/填充来解决长度问题。只需将信号传递给预处理功能即可添加/删除额外的时间点。
import numpy as np
def pre_process(x, fixed_len = 1000): # x.shape -> (100, 1000, 1)

    if x.shape[1] >= fixed_len:
       return x[:,:fixed_len,:]
    else:
       z_ph = np.zeros((x.shape[0], fixed_len, x.shape[2]))
       z_ph[:,:x.shape[1],:] = x
       return z_ph

X_batches = pre_process(X_batches, YOU_CHOOSE_THIS_LENGTH) # based on the length of your data
X_test = pre_process(X_test, YOU_CHOOSE_THIS_LENGTH)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Colab中的Tensorflow错误-ValueError:形状(无,1)和(无,10)不兼容

来自分类Dev

TensorFlow GradCAM-model.fit()-ValueError:形状(None,1)和(None,2)不兼容

来自分类Dev

TensorFlow:“输入形状的预期轴-1 ...”

来自分类Dev

Tensorflow输入形状不兼容

来自分类Dev

Tensorflow错误“形状Tensorshape()必须具有等级1”

来自分类Dev

TensorFlow 1D 模型,MaxPooling 的错误输入形状

来自分类Dev

从Tensorflow 1.x到Tensorflow 2.1.0

来自分类Dev

Tensorflow.js:提要(int32)的dtype与键'input_1'(float32)的dtype不兼容

来自分类Dev

ValueError:形状1和2不兼容

来自分类Dev

Tensorflow Keras Python3 期望输出形状 (1,) 但得到形状 (3,)

来自分类Dev

链接数据内容时的 Tensorflow 值错误 - 无法为 Tensor 'Placeholder_1:0' 提供形状 (1, 1) 的值,

来自分类Dev

TensorFlow/Keras - 预期 global_average_pooling2d_1_input 具有形状 (1, 1, 2048) 但得到形状为 (7, 7, 2048) 的数组

来自分类Dev

TensorFlow的无效参数错误(形状不兼容)

来自分类Dev

在tensorflow中获取ValueError,表明我的形状不兼容

来自分类Dev

meanSquaredError错误:形状10,1和10,2必须匹配(tensorflow.js)

来自分类Dev

Tensorflow ValueError:logits和标签必须具有相同的形状((None,42)vs(None,1))

来自分类Dev

Tensorflow CNN 错误:形状 [-1,784] 具有负维度?

来自分类Dev

在Tensorflow 1层中选择特定功能

来自分类Dev

Tensorflow 1和2语法差异

来自分类Dev

使用Google Colab的TensorFlow 1中的TensorBoard

来自分类Dev

Tensorflow目标列始终返回1

来自分类Dev

Tensorflow错误:最小张量等级:1但得到了:1

来自分类Dev

ValueError:形状(无,1)和(无,2)不兼容

来自分类Dev

“ ValueError:形状(无,1)和(无,6)不兼容”

来自分类Dev

形状(1,)和()在cond运算符上不兼容

来自分类Dev

使用自动编码器的 1 的不兼容形状

来自分类Dev

Tensorflow Keras形状不匹配

来自分类Dev

TensorFlow.js:ValueError:检查时出错:预期density_Dense1_input的形状为[null,38],但数组的形状为[38,1]

来自分类Dev

Tensorflow概率:ValueError:Tensor的形状(2,2)与提供的形状(2,)不兼容

Related 相关文章

  1. 1

    Colab中的Tensorflow错误-ValueError:形状(无,1)和(无,10)不兼容

  2. 2

    TensorFlow GradCAM-model.fit()-ValueError:形状(None,1)和(None,2)不兼容

  3. 3

    TensorFlow:“输入形状的预期轴-1 ...”

  4. 4

    Tensorflow输入形状不兼容

  5. 5

    Tensorflow错误“形状Tensorshape()必须具有等级1”

  6. 6

    TensorFlow 1D 模型,MaxPooling 的错误输入形状

  7. 7

    从Tensorflow 1.x到Tensorflow 2.1.0

  8. 8

    Tensorflow.js:提要(int32)的dtype与键'input_1'(float32)的dtype不兼容

  9. 9

    ValueError:形状1和2不兼容

  10. 10

    Tensorflow Keras Python3 期望输出形状 (1,) 但得到形状 (3,)

  11. 11

    链接数据内容时的 Tensorflow 值错误 - 无法为 Tensor 'Placeholder_1:0' 提供形状 (1, 1) 的值,

  12. 12

    TensorFlow/Keras - 预期 global_average_pooling2d_1_input 具有形状 (1, 1, 2048) 但得到形状为 (7, 7, 2048) 的数组

  13. 13

    TensorFlow的无效参数错误(形状不兼容)

  14. 14

    在tensorflow中获取ValueError,表明我的形状不兼容

  15. 15

    meanSquaredError错误:形状10,1和10,2必须匹配(tensorflow.js)

  16. 16

    Tensorflow ValueError:logits和标签必须具有相同的形状((None,42)vs(None,1))

  17. 17

    Tensorflow CNN 错误:形状 [-1,784] 具有负维度?

  18. 18

    在Tensorflow 1层中选择特定功能

  19. 19

    Tensorflow 1和2语法差异

  20. 20

    使用Google Colab的TensorFlow 1中的TensorBoard

  21. 21

    Tensorflow目标列始终返回1

  22. 22

    Tensorflow错误:最小张量等级:1但得到了:1

  23. 23

    ValueError:形状(无,1)和(无,2)不兼容

  24. 24

    “ ValueError:形状(无,1)和(无,6)不兼容”

  25. 25

    形状(1,)和()在cond运算符上不兼容

  26. 26

    使用自动编码器的 1 的不兼容形状

  27. 27

    Tensorflow Keras形状不匹配

  28. 28

    TensorFlow.js:ValueError:检查时出错:预期density_Dense1_input的形状为[null,38],但数组的形状为[38,1]

  29. 29

    Tensorflow概率:ValueError:Tensor的形状(2,2)与提供的形状(2,)不兼容

热门标签

归档