Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 当列表包含1000000个元素时,转换为tf.constant太慢_Tensorflow - Fatal编程技术网

Tensorflow 当列表包含1000000个元素时,转换为tf.constant太慢

Tensorflow 当列表包含1000000个元素时,转换为tf.constant太慢,tensorflow,Tensorflow,进行培训的最佳方式是什么。太慢了!我不知道为什么会这么慢 samples_all = tf.constant(samples_all)//more than 1000000 elems labels_all = tf.constant(labels_all) [sample, label] = tf.train.slice_input_producer([samples_all, labels_all]) 所有示例都包含超过1000000个表示图像路径的字符串元素。代码中的前两行太长,无法执行

进行培训的最佳方式是什么。太慢了!我不知道为什么会这么慢

samples_all = tf.constant(samples_all)//more than 1000000 elems
labels_all = tf.constant(labels_all)
[sample, label] = tf.train.slice_input_producer([samples_all, labels_all])

所有示例都包含超过1000000个表示图像路径的字符串元素。代码中的前两行太长,无法执行。

下面是一个示例,在我的MacBook上,将2M字符串加载到字符串变量中所花费的时间不到1秒。变量对于大常量的效率高于
tf.constant
,后者在图中内联。请注意,还有
tf.string\u input\u producer
,它可以处理大量字符串列表,而无需将它们全部加载到TensorFlow内存中

n = 2000000
string_list = np.asarray(["string"]*n);

sess = tf.Session()
var_input = tf.placeholder(dtype=tf.string, shape=(n,))
var = tf.Variable(var_input)

start = time.time()
# var.initializer is equivalent to var.assign(var_input).op
sess.run(var.initializer, feed_dict={var_input: string_list})
elapsed = time.time()-start
rate = n*6./elapsed/10**6    
print("%.2f MB/sec"%(rate,))  # => 15.13 MB/sec

请在您的问题中添加更多细节。对我来说似乎不完整。@psyco谢谢你的重播,我已经改变了问题。@keyur9779你是什么意思?你发错人了吗?1000000太大了,不能用作常量,你应该改用变量,然后用
samples\u all
使用
var.assign
feed\u dict
@YaroslavBulatov对其进行初始化,谢谢!好的,我试试看