Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
如何使用低级(C)接口将张量保存到TensorFlow中的文件中?_C_Tensorflow - Fatal编程技术网

如何使用低级(C)接口将张量保存到TensorFlow中的文件中?

如何使用低级(C)接口将张量保存到TensorFlow中的文件中?,c,tensorflow,C,Tensorflow,使用TensorFlow中的低级操作,我尝试将张量(其实际值)保存到磁盘,但找不到如何保存。 如果数据是代表图像的UInt8矩阵,那么我可以轻松地进行JPEG编码以创建内容,然后使用WriteFile将生成的内容写入具有给定名称的文件。同样,EncodeWav的工作方式也是一样的。 另一方面,如果我只想用数字保存一个矩阵,没有“EncodeData”、“TensorToContent”或类似的操作来将张量转换为内容,可以用WriteFile保存什么。 我可以从我的图形中获取张量作为输出,然后将其

使用TensorFlow中的低级操作,我尝试将张量(其实际值)保存到磁盘,但找不到如何保存。 如果数据是代表图像的UInt8矩阵,那么我可以轻松地进行JPEG编码以创建内容,然后使用WriteFile将生成的内容写入具有给定名称的文件。同样,EncodeWav的工作方式也是一样的。 另一方面,如果我只想用数字保存一个矩阵,没有“EncodeData”、“TensorToContent”或类似的操作来将张量转换为内容,可以用WriteFile保存什么。
我可以从我的图形中获取张量作为输出,然后将其保存在图形外部,但我的目的是在图形内部执行。

我花了一些时间,但最终找到了一个解决方案,尽管它可能不是最好的。如果你能提高,欢迎你

因此,我使用Save/Restore原始操作对。一旦被发现,它是相对直接的

“保存”有两个张量输入,一个张量输入列表和一个属性。第一个张量(标量字符串)必须给出文件名。第二个张量(1D字符串)包含要为文件中的张量指定的名称(用于稍后的恢复目的)。InputList实际上是要保存的张量的集合。该属性是要保存的张量的数据类型列表

“恢复”也很简单。它有两个张量输入、一个张量输出、一个类型属性和一个可选整数属性。如果可以查看更多文件,则第一个输入(标量字符串)给出文件名或文件模式。第二个输入(标量字符串)给出了要在文件中找到的张量的名称(请参见上面的“保存”)。输出是加载的张量本身。type属性指定要加载的张量的类型。如果匹配模式的多个文件中存在同名的张量,则可以使用可选属性,告诉您首选哪个张量


唯一需要注意的是“保存”中的输入列表。当在设计时将“保存”原始操作添加到图形中时,必须给出Inputlist中的输入数量,以及type list参数中的类型(相同数量!)。这意味着在运行时,当给出张量的实际名称并将张量列表作为输入列表时,您不能再更改张量的数量和数据类型。

如果数据是
uint8\t
,为什么不使用
fwrite
write
?数据不一定是uint8。这只是一个例子,当数据(以张量表示)可以转换为WriteFile可以接受的内容时。另一个问题是,我想在图形内部进行,而不是在图形外部。正如在OP中所说的,我可以将张量作为图形的输出(RunSession),然后用老式的文件操作保存它,但这不是目的。