Python ValueError:尚未创建连续模型的权重
我正在测试一个基本的神经网络模型。但在进一步讨论之前,我遇到了屏幕截图中显示的这个错误 这是我的代码:Python ValueError:尚未创建连续模型的权重,python,tensorflow,keras,Python,Tensorflow,Keras,我正在测试一个基本的神经网络模型。但在进一步讨论之前,我遇到了屏幕截图中显示的这个错误 这是我的代码: import numpy as np # Training Data x_train = np.array([[1.0,1.0]]) y_train = np.array([2.0]) for i in range(3,10000,2): x_train = np.append(x_train,[[i,i]],axis = 0) y_train = np.append(y
import numpy as np
# Training Data
x_train = np.array([[1.0,1.0]])
y_train = np.array([2.0])
for i in range(3,10000,2):
x_train = np.append(x_train,[[i,i]],axis = 0)
y_train = np.append(y_train,[i+i],axis = 0)
# Test Data
import numpy as np
x_test = np.array([[2.0,2.0]])
y_test = np.array([4.0])
for i in range(4,8000,4):
x_test = np.append(x_test,[[i,i]],axis = 0)
y_test = np.append(y_test,[i+i])
from tensorflow import keras
from keras.layers import Flatten # to flatten the input data
from keras.layers import Dense # for the hidden layer
# We'll follow sequential method i.e. one after the other(input layer ---> hidden layer---> output layer)
model = keras.Sequential()
# For input layer
model.add(Flatten(input_shape = x_train[0].shape)) # input layer
# For Hidden layer
model.add(Dense(2,activation = 'relu')) # '2' represents a no. of neurons
# For Output layer
model.add(Dense(1)) # By default, activation = 'linear'
# before training
bf_train = model.get_weights()
bf_train
错误是:
ValueError:尚未创建连续模型的权重。权重是在第一次对输入调用模型时创建的,或者使用
input\u形状调用build()
时创建的。您不应该将tf 2.x
和独立keras
混合使用。您应该导入如下内容
from tensorflow import keras
from tensorflow.keras.layers import Flatten # to flatten the input data
from tensorflow.keras.layers import Dense # for the hidden layer
现在,运行代码,您将获得一些权重
[array([[-0.43643105, -1.0268047 ],
[ 1.0003897 , 1.1105307 ]], dtype=float32),
array([0., 0.], dtype=float32),
array([[-0.19884515],
[-0.78100944]], dtype=float32),
array([0.], dtype=float32)]
谢谢你的解决方案。你真的节省了我的时间。但是有一个问题,为什么?如果您使用的是TF2.x
,那么您应该知道keras
不再是一个独立的库,而是tf
的一部分。非常感谢,男士:-)