python - 如何将形状(3,3)的张量流图像值输入具有形状(?,2)的目标
问题描述
我正在尝试将形状 3,3 的值输入形状 (?, 2) 的张量。我的问题是如何重塑我的 (3,3) 值,使其与后者兼容。
这是我的主要训练循环:
for epoch in range(epochs):
batches = dg.get_mini_batches(batchSize,(128,128), allchannel=False)
for imgs ,labels in batches:
imgs=np.divide(imgs, 255)
error, sumOut, acu, steps,_ = sess.run([cost, summaryMerged, accuracy,global_step,optimizer],
feed_dict={input_img: imgs, target_labels: labels})
writer.add_summary(sumOut, steps)
print("epoch=", epoch, "Total Samples Trained=", steps*batchSize, "err=", error, "accuracy=", acu)
if steps % 100 == 0:
print("Saving the mdl")
saver.save(sess, mdl_save_path+mdl_name, global_step=steps)
Traceback (most recent call last):
File "C:/Users/name/PycharmProjects/tf-foodar/tf-foodar-beta.py", line 87, in <module>
feed_dict={input_img: imgs, target_labels: labels})
File "C:\Users\name\anaconda\envs\lib\site-packages\tensorflow\python\client\session.py", line 895, in run
run_metadata_ptr)
File "C:\Users\name\anaconda\envs\lib\site-packages\tensorflow\python\client\session.py", line 1104, in _run
% (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape())))
ValueError: Cannot feed value of shape (3, 3) for Tensor 'Target/Targets:0', which has shape '(?, 2)'
解决方案
你不能。
(3,3)
无法将具有形状的张量重新整形(使用tf.reshape
)为具有未知维度且固定的形状的张量。(?,2)
?
2
这是因为您有3 x 3 = 9
元素并且9/2 = 4.5
不是整数(4.5 是未知维度的计算值)。因此,您无法使用 shape 创建新张量(4.5, 2)
。
但是,你的推理有问题。问问自己:为什么我要向网络提供网络无法接受的数据?
推荐阅读
- php - 使用 MS SQL Server 的完全外连接连接 2 个表
- snowflake-cloud-data-platform - 将参数值传递给雪花函数时,函数 SQL 编译错误的参数类型无效
- amazon-web-services - 将物理名称从一个堆栈导出和导入到另一个堆栈
- node.js - 在 express-handlebars 中使用 javascript 代码
- django - 要选择的 Django 过滤器字段
- amazon-web-services - AWS Lambda EMF 指标未完全打印
- reactjs - 尝试将商品添加到我的购物车时出现未处理的拒绝错误
- java - jdbc 错误 SybResultSet.isClosed()Z 中的 SQLServerBulkCopy 是抽象的
- c++ - C++ 模板实例化,错误:非类类型“int”的成员
- extjs - ExtJs ComboBox 刷新选定(原始)值