python - 如何在 keras/tensorflow 中为占位符提供值
问题描述
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense,Dropout,Activation,Flatten, Conv2D, MaxPooling2D
import pickle
import keras as ks
x1 =pickle.load(open("dX.pickle","rb"))
y2 =pickle.load(open("dY.pickle","rb"))
nx = x1/255.0
model = Sequential()
model.add(Conv2D(64,(3,3),input_shape = nx.shape[1:]))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(64,3,3))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size = (2,2)))
model.add(Flatten())
model.add(Dense(64))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss = "binary_crossentropy", optimizer ="adam", metrics = ['accuracy'])
model.fit((nx,y2), batch_size = 20, validation_split =0.1,epochs=1)
img = image.load_img(r'img.png', target_size=(224,224))
prediction = model.prediction(img)
print(prediction)
我正在关注一个教程https://www.youtube.com/watch?v=cAICT4Al5Ow&t=89s,它向您展示了如何设置一个简单的神经网络。但是当我运行它说的代码时。
tensorflow.python.framework.errors_impl.InvalidArgumentError:
You must feed a value for placeholder tensor 'activation_2_target' with dtype float and shape [?,?]
[[{{node activation_2_target}}]]
我很困惑这个数字是从哪里来的,因为教程从来没有命名它。我假设它是由某个类抽象的。我在哪里定义它?
解决方案
更改此行
model.fit((nx,y2), batch_size=20, validation_split=0.1, epochs=1)
对此
model.fit(nx, y2, batch_size=20, validation_split=0.1, epochs=1)
(nx, y2)
您仅以不带标签的元组形式提供了训练数据。
推荐阅读
- java - 关于最后一封带有 getSubject().contains 的电子邮件的 IMAP 问题
- c++ - 为什么会出现分段错误?
- stata - 如何在 coefplot 中添加阴影区域和线段?
- android - Kotlin - 通用类型安全,错误警告?java.lang.ClassCastException
- ios - Selector 方法必须与观察者所在的实例相同吗?
- hadoop - “WARN hdfs.DFSUtil: Namenode for null 对于 ID null 仍未解决。”
- amazon-web-services - AWS SQS - 队列消费者数量与传输中消息数量之间的关系
- sap - 动态隐藏 Adobe Form 中的徽标?
- android - 如何在editText上放置单选按钮
- opencv - 如何在 C++ 中使用 openCV 进行图像处理来查找铸铁的 ASTM 类型分布的百分比?