python - ValueError:尚未创建模型序列的权重
问题描述
我正在测试一个基本的神经网络模型。但在继续之前,我遇到了屏幕截图中显示的这个错误。
这是我的代码:
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:尚未创建模型序列的权重。首次在输入build()
上调用模型或使用input_shape
.
解决方案
你不应该混合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)]
推荐阅读
- c - 在将 C 向下转换从 unsigned int 转换为 unsigned char 时,为什么 movl 比 movb 更受欢迎?
- python - 从 Python tkinter 标签列表(数组)更改特定标签的属性未按预期工作
- c++ - 定义transform_view::iterator的iterator_category的问题?
- c - 在C中将字符串逐个字母存储到数组中
- function - 等价于类函数
- android - 如何修复 Android Studio 上已弃用的协程 Actor、UI
- c# - ConfigurationErrorsException:该条目已被添加。(林克)
- reactjs - 字段:android - 不应有附加属性“enableDangerousExperimentalLeanBuilds”
- wolfram-mathematica - 隐式微分
- angular - 如何从条件 ng-container 将数据传递给 ng-template