gpt4 book ai didi

tensorflow - 在 tensorflow 中恢复使用可变输入长度训练的模型导致 InvalidArgumentError

转载 作者:行者123 更新时间:2023-12-03 12:24:15 25 4
gpt4 key购买 nike

我对 tensorflow 比较陌生,目前正在尝试不同复杂度的模型。我对包的保存和恢复功能有疑问。就我对教程的理解而言,我应该能够恢复经过训练的图形,并在以后使用一些新输入运行它。但是,当我尝试这样做时出现以下错误:

InvalidArgumentError (see above for traceback): Shape [-1,10] has negative dimensions [[Node: Placeholder = Placeholderdtype=DT_FLOAT, shape=[?,10], _device="/job:localhost/replica:0/task:0/cpu:0"]]



我对消息的理解是,恢复的图形不喜欢任意保留一维,而这对于我事先不知道我的输入有多大的实际情况是必要的。一个代码片段作为一个最小的例子,产生上面的错误,可以在下面找到。我知道如何单独恢复每个张量,但是当模型变得复杂时,这很快就会变得不切实际。我很感谢我得到的任何帮助,如果我的问题很愚蠢,我深表歉意。
import numpy as np
import tensorflow as tf

def generate_random_input():
alist = []
for _ in range(10):
alist.append(np.random.uniform(-1, 1, 100))
return np.array(alist).T
def generate_random_target():
return np.random.uniform(-1, 1, 100)

x = tf.placeholder('float', [None, 10])
y = tf.placeholder('float')

# the model
w1 = tf.get_variable('w1', [10, 1], dtype=tf.float32, initializer=tf.contrib.layers.xavier_initializer(seed=1))
b1 = tf.get_variable('b1', [1], dtype=tf.float32, initializer=tf.contrib.layers.xavier_initializer(seed=1))

result = tf.add(tf.matmul(x, w1), b1, name='result')

loss = tf.reduce_mean(tf.losses.mean_squared_error(predictions=result, labels=y))
optimizer = tf.train.AdamOptimizer(0.03).minimize(loss)
saver = tf.train.Saver()
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
sess.run([optimizer, loss], feed_dict={x: generate_random_input(), y: generate_random_target()})
saver.save(sess, 'file_name')

# now load the model in another session:
sess2 = tf.Session()
saver = tf.train.import_meta_graph('file_name.meta')
saver.restore(sess2, tf.train.latest_checkpoint('./'))
graph = tf.get_default_graph()
pred = graph.get_operation_by_name('result')
test_result = sess2.run(pred, feed_dict={x: generate_random_input()})

最佳答案

在最后一行中,您不使用数据 feed_dict label_palceholder。所以在占位符中,除了批量大小之外,[-1] 维度仍然是 -1。这就是原因。

关于tensorflow - 在 tensorflow 中恢复使用可变输入长度训练的模型导致 InvalidArgumentError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44930754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com