继安装了cuda cudnn最新版之后发现没有对应的tensorflow 因为之前安装的一个2.8.0用这倒也是挺正常的构建了个sequential线性的神经网络,但是在构建的时候虽然能正常跑也能进行训练但是,再用layers给中间层添加初始化和正则化处罚项的时候就直接报错了,而且没法用pycharm进补全(连提示都没)称之为没法正确的引用第三方库,一开始是以为导的包的问题就到处找正确导包的格式,因为在tensorflow2.0下
├── tensorflow
├── _api
├── compiler
├── contrib
├── core
├── examples
├── include
├── python
├── tools
└── __init__.py
keras不是他的子包所以直接引用pycharm会报unresolved reference但是呢它可以正常运行所以问题不在这。
然后我再检查cuda版本和tensorflow版本对应的时候发现我tensorflow2.8.0有点新,cuda11.5也有点新而且tensorflow官网最新的对应关系才到2.6.0。所以干脆重新把这一套重新装一遍。结果发现是anaconda里的keras版本和tensorflow版本不对应(教程都已变得重复cuda和tensorflow和cudnn版本的对应谁知道keras这里还有个坑)细心那细心
4/13更新
在使用mnist数据集进行分类处理的时候,出现了形状不兼容的问题Incompatible shapes: [64,28] vs. [64]
原因在于,密集层无法处理像图像这样的 2D 数据,您应该首先将输入展平为向量,然后将其传递给您的模型,否则,您将在输出中获得其他维度,然后是您的标签和 logits(模型输出)不兼容,你会得到错误。所以要在模型前添加一个展平层
model.add(layers.Flatten(input_shape=(x_train.shape[1:])))#增加这一行代码即可
model.add(layers.Dense(32))
model.add(layers.Dense(32))
model.add(layers.Dense(10))