- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
训练具有三个特征的 LSTM 模型,但在预测时,我收到一个 matmul 错误,看起来预测调用的输入只期望一个特征。
matmul:In[0]:[2,3],In[1]:[1,101]
这看起来像是三个输入,但该层只需要 1 个输入,如果该层需要 3 个输入(如训练中那样),那么第二个矩阵将为 [3,101],并且 matmul 将起作用。
带数据的简化代码和下面的错误。
import tensorflow as tf
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
print(tf.__version__)
lag = 1
epochs = 2
learning_rate = 0.001
dropout = 0.2
feature_count = 3
data_raw = np.array([[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1]])
dataset = pd.DataFrame(data_raw)
times = pd.date_range('1990-01-01', periods=dataset.shape[0], freq='M')
dataset = dataset.set_index(times)
def MakeLayerLSTMInput(units, input_shape, return_sequences=False):
return tf.keras.layers.RNN(tf.keras.layers.LSTMCell(units=units, dropout=dropout, input_shape=input_shape),
return_sequences=return_sequences)
def MakeLayerLSTM(units, return_sequences=False):
return tf.keras.layers.RNN(tf.keras.layers.LSTMCell(units=units, dropout=dropout),
return_sequences=return_sequences)
def MakeLayerDense(units):
return tf.keras.layers.Dense(units=units)
def MakeModelStart():
return tf.keras.models.Sequential()
def MakeOptimizer():
return tf.train.AdamOptimizer(learning_rate=learning_rate)
def MakeModel():
model_inputs = (1, feature_count)
print("model_inputs "+str(model_inputs))
regressor = MakeModelStart()
regressor.add(MakeLayerLSTMInput(101, model_inputs))
regressor.add(MakeLayerDense(1))
regressor.compile(optimizer = MakeOptimizer(), loss = 'mean_squared_error')
return regressor
train_dataset = dataset.take(range(10))
test_dataset = dataset.take(range(10,12))
normalize = MinMaxScaler(feature_range = (0, 1))
train_dataset = normalize.fit_transform(train_dataset)
print('train shape: '+str(train_dataset.shape))
x_train = []
y_train = []
for i in range(lag, train_dataset.shape[0]):
x_train.append(train_dataset[i-lag:i, 0:feature_count])
y_train.append(train_dataset[i, 0])
x_train, y_train = np.array(x_train), np.array(y_train)
x_train = np.reshape(x_train, (train_dataset.shape[0]-lag, feature_count, 1))
print('normalized x train shape: '+str(x_train.shape))
print('normalized y train shape: '+str(y_train.shape))
regressor = MakeModel()
regressor.fit(x_train, y_train, epochs = epochs, batch_size = x_train.shape[0], verbose=1)
p_count=2
print("last years shape "+str(dataset.shape))
inputs = dataset[len(dataset) - len(test_dataset) - p_count :].values
print("inputs shape "+str(inputs.shape))
inputs = normalize.transform(inputs)
X_test = []
for i in range(p_count, len(inputs)):
X_test.append(inputs[i-p_count:i, 0:feature_count])
X_test = np.array(X_test)
print("X test shape "+str(X_test.shape))
X_test = np.reshape(X_test, (len(inputs) - p_count, X_test.shape[1], feature_count))
print("X test re-shape "+str(X_test.shape))
predicted = regressor.predict(X_test)
predicted = normalize.inverse_transform(predicted)
print("mse: "+str(mean_squared_error(test_dataset.values, predicted)))
输出:
(p36) D:\src\ml\MLPhase2>python ea-simple1.py
1.13.1
d:\apps\Miniconda3\envs\p36\lib\site-packages\sklearn\preprocessing\data.py:323: DataConversionWarning: Data with input dtype int32 were all converted to float64 by MinMaxScaler.
return self.partial_fit(X, y)
train shape: (10, 3)
normalized x train shape: (9, 3, 1)
normalized y train shape: (9,)
model_inputs (1, 3)
WARNING:tensorflow:From d:\apps\Miniconda3\envs\p36\lib\site-packages\tensorflow\python\ops\resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
WARNING:tensorflow:From d:\apps\Miniconda3\envs\p36\lib\site-packages\tensorflow\python\keras\backend.py:4010: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.
Instructions for updating:
Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.
WARNING:tensorflow:From d:\apps\Miniconda3\envs\p36\lib\site-packages\tensorflow\python\keras\utils\losses_utils.py:170: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
WARNING:tensorflow:From d:\apps\Miniconda3\envs\p36\lib\site-packages\tensorflow\python\ops\math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
Epoch 1/2
2019-04-24 13:19:13.920954: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
2019-04-24 13:19:14.192634: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1433] Found device 0 with properties:
name: GeForce RTX 2080 Ti major: 7 minor: 5 memoryClockRate(GHz): 1.635
pciBusID: 0000:42:00.0
totalMemory: 11.00GiB freeMemory: 9.03GiB
2019-04-24 13:19:14.204693: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1512] Adding visible gpu devices: 0
2019-04-24 13:19:14.858476: I tensorflow/core/common_runtime/gpu/gpu_device.cc:984] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-04-24 13:19:14.863341: I tensorflow/core/common_runtime/gpu/gpu_device.cc:990] 0
2019-04-24 13:19:14.866858: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1003] 0: N
2019-04-24 13:19:14.872024: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 8698 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080 Ti, pci bus id: 0000:42:00.0, compute capability: 7.5)
2019-04-24 13:19:15.863877: I tensorflow/stream_executor/dso_loader.cc:152] successfully opened CUDA library cublas64_100.dll locally
9/9 [==============================] - 2s 261ms/sample - loss: 0.0000e+00
Epoch 2/2
9/9 [==============================] - 0s 1ms/sample - loss: 0.0000e+00
last years shape (12, 3)
inputs shape (4, 3)
X test shape (2, 2, 3)
X test re-shape (2, 2, 3)
Traceback (most recent call last):
File "ea-simple1.py", line 69, in <module>
predicted = regressor.predict(X_test)
File "d:\apps\Miniconda3\envs\p36\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1113, in predict
self, x, batch_size=batch_size, verbose=verbose, steps=steps)
File "d:\apps\Miniconda3\envs\p36\lib\site-packages\tensorflow\python\keras\engine\training_arrays.py", line 329, in model_iteration
batch_outs = f(ins_batch)
File "d:\apps\Miniconda3\envs\p36\lib\site-packages\tensorflow\python\keras\backend.py", line 3076, in __call__
run_metadata=self.run_metadata)
File "d:\apps\Miniconda3\envs\p36\lib\site-packages\tensorflow\python\client\session.py", line 1439, in __call__
run_metadata_ptr)
File "d:\apps\Miniconda3\envs\p36\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 528, in __exit__
c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: Matrix size-incompatible: In[0]: [2,3], In[1]: [1,101]
[[{{node while/MatMul_2}}]]
[[{{node BiasAdd_4}}]]
最佳答案
问题在于 x_train.reshape 与 x_test.reshape 分别作为拟合和预测的输入不匹配。我有(-1,3,1)用于训练输入,(-1,1,3)用于预测输入。这只是我的错误。一点点橡皮鸭会有很大帮助。
关于python - 具有三个特征的 LSTM 训练,但由于输入形状而无法预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55835696/
我有一个测试即将进行,我想澄清两个有关参数的问题。 在我的笔记中指出,将参数传递给函数的推荐方法是使用“按引用传递” const type& x; // for "in" parameters
当我通过 OMG 2.5(Beta)推广的 UML 规范阅读以下概念时: in: Indicates that Parameter values are passed in by the caller
我试图在用户按下 Enter 时触发一个函数。我将此输入设置为只读的原因是限制用户在填充值后修改输入中的值。 该值来自将在点击属性中触发的弹出窗口。问题是 keyup.enter 没有触发该输入。 代
我在jQuery中使用模式弹出窗口控件,该弹出窗口具有由jQuery Tokenize输入插件提供动力的输入文本。问题是,当我在模式弹出文本框中键入内容时, token 化插件的搜索结果显示为隐藏在弹
我有一个问题。当我选中复选框时,系统工作正常,总值发生变化,但一旦我修改文本输入,它就会变为 0。我需要将此文本框输入排除在更改值之外。 这是 html: $15000 $
我正在努力让它发挥作用,但还是有些不对劲。 我想用 CSS 设置提交按钮的样式以匹配我已有的按钮。 风格: input[type="button"], input[type="submit"], b
import java.util.*;; public class selection { Scanner in=new Scanner(System.in); private
这可能是一个非常菜鸟的问题。假设我有一个带宽限制为 100MB/s 的网卡,那么输入/输出带宽是否有可能达到该限制 同时 ?或者我会在任何时候遇到这个不等式:in bandwidth + out ba
看着这个问题,Fill immutable map with for loop upon creation ,我很好奇是什么this表示在 Map(1 -> this) . scala> Map(1
我有这样的东西 一个 乙 问? 是或否 数字 数字或零 我想做的是: 如果 B1 = “Y”,则让用户在 B2 中输入一个数字。 如果 B1 = “N”,则将 B2 中的值更改为零,并且不允许用户在
我有一个包含许多列的表,我想添加 input标题单元格内的字段,但我希望输入适合根据正文内容的宽度。 这是没有 input 的样子领域: 这就是 input 的样子领域: 可以看出,像“index”和
关于为 FTP 客户端设置传出和传入文件夹,您遵循哪些最佳实践(如果有)?我们通常使用“outgoing”和“incoming”,但无论你如何表述方向,它都可以有两种解释方式,具体取决于名称相对于哪一
我正在尝试“求解”给定 d 的 Pell 方程:x^2 - d * y^2 = 1,或者至少我想得到最小的 x > 0 来求解方程。到目前为止,一切都很好。这是我的 Haskell 代码 minX :
我是VS Code的新手,可以使用Ctrl + Enter将代码运行到python交互式窗口中。我希望光标自动移动到下一行,因此我可以逐行浏览代码。 能做到吗? 最佳答案 如this blog pos
我正在创建一个 bool 值矩阵/二维数组,并且我想为 dategrid 推断一种不仅仅是“ANY”的类型。 let yearRange = [2000,2001,2002,2003,2004]; l
我有两个排序的列表,例如 a = [1, 4, 7, 8] b = [1, 2, 3, 4, 5, 6] 我想知道a中的每个项目是否在b中。对于上面的示例,我想找到 a_in_b = [True, T
菜鸟警报 这很奇怪 - 当我编写以下代码时,尝试在 AngularJS 中创建自定义指令: myModule.directive('myTab', function(){ console.lo
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
假设我正在使用 gdscript 静态类型,并且对于一个函数参数,我事先不知道我会得到什么。这就是 python 中 typing.Any 的作用。如何使用 gdscript 做到这一点? 似乎 Va
我使用 dropzone 上传多个图像,并且工作正常,直到我想为每个图像插入品牌和网址。 我遇到的唯一问题是,当我要从输入字段获取值时,我会从服务器获取来自字段(品牌、网址)的未定义值,但如果我使用静
我是一名优秀的程序员,十分优秀!