当前位置: 首页 > 知识库问答 >
问题:

Tensorflow无法解释存储在Numpy ndarray中的内容

蓬森
2023-03-14

你好,所以我有一个带有网址的熊猫df,然后下载/加载缓存,然后存储到df中。问题出现是因为熊猫将Numpy数组存储为ndarray,因此它们的形状会丢失。有什么方法可以告诉tenstorflow存储数组的形状吗?

def NN(self):
    #Trains on validation then commence batch prediction
    data = self.category_validation.agg({'URL':self.process_image,'label':self.le.fit_transform}).dropna()

    print(data['URL'].values[0])
    print(data['URL'].values[0].shape)
    print(data['URL'].values.shape)
    exit(1)


    #One of Keras' best templates
    self.nn = model(...)

    #Compile the model
    self.nn.compile(...)

    #Fit the first instance of the data
    self.nn.fit(data['URL'].values,data['label'].values)

TF.张量(...,形状=(299, 299, 3),dtype=浮点32) (299, 299, 3) (490,)

ValueError:无法将NumPy数组转换为Tensor(不支持的对象类型tensorflow.python.framework.ops.Tensor)。

    def process_image(self,url):
        #Read image from filepath and reshape it to the appropriate shape for model 
        path = "path/"+self.clean_url(url)

        #Checks if files exists, if not it tries to download if that doesn't work
        if os.path.exists(path):
            image = tf.keras.preprocessing.image.load_img(path,target_size=(299,299))
            image = tf.keras.preprocessing.image.img_to_array(image)
        elif self.get_image(url) == 0:
            return float('nan')
        else:
            image = tf.keras.preprocessing.image.load_img(path,target_size=(299,299))
            image = tf.keras.preprocessing.image.img_to_array(image)
            
        return image/255

共有2个答案

胡景澄
2023-03-14

好的,df.apply/agg函数假设Numpy数组的形状不明确。因此,我需要手动使用列表和for循环来迭代这些值,并将它们放入tmp列表中,然后将其转换为Numpy数组,只有这样才能将它们转换为张量。多么痛苦。

l = []

for image in df['URL'].values:
    l.append(image)
x_train = np.array(l)
...
裴威
2023-03-14

你愿意改变吗

self.nn.fit(data['URL']. value, data['tag']. value)

self.nn.fit数据['URL'].to_numpy(),数据['标签'].to_numpy())

 类似资料:
  • 我正在调试一个Azure Web应用程序上无法解释的内存消耗。我花了很多时间使用dotmemory、perfview和诊断工具挖掘日志、内存转储,但仍然无法理解为什么我们的应用程序内存一整天都在稳步增长。 我在堆中验证了多次,以确保请求前后的应用程序对象/模块都被释放,上面的屏幕截图显示了这一点。 如果你能分享一些关于如何找到消耗内存的东西的建议,我会的

  • 我得到一个奇怪的内存不足错误解码一个可绘制的图像资源960x926px jpg,分配3555856字节。图像仅放置在drawable-xxhdpi(3x)中,而我使用的是hdpi(1.5x)设备。两个问题: > 为什么堆中有足够的空闲内存却出现错误? 03-18 17:30:15.050 327 50-32750/?D/DALVIKVM:GC_FOR_ALLOC释放10809K,49%释放2373

  • 我有一个问题,我的GPU内存是没有释放后关闭在Python中的tenstorflow会话。这三行足以导致问题: 在第三行之后,内存不会被释放。我在很多论坛上走来走去,尝试了各种各样的建议,但都没有效果。有关详细信息,请参见下面我的评论: https://github.com/tensorflow/tensorflow/issues/19731 在这里,我已经记录了我设法杀死进程并释放内存的方法,但

  • 问题内容: 我读过(在TensorFlow中): a的值多次存储在内存中。 为什么将值多次存储在内存中? 问题答案: 因为恒定张量的数据已嵌入到图定义中。这意味着这些数据既存储在维护图定义的客户端中,又存储在运行时中,为所有张量分配其自己的内存。 IE浏览器,尝试 你会看到的 该场是原始内容,一样的。 现在,要查看运行时分配,可以使用运行。 如果您使用进行任何评估,都会看到类似的内容 这意味着运行

  • 主要内容:程序员的幽默计算机要处理的信息是多种多样的,如数字、文字、符号、图形、音频、视频等,这些信息在人们的眼里是不同的。但对于计算机来说,它们在内存中都是一样的,都是以二进制的形式来表示。 要想学习编程,就必须了解二进制,它是计算机处理数据的基础。 内存条是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别。这些元器件,实际上就是电路;电路的电压会变化,要么是 0V,要么是 5V,只有这两种电压。

  • 问题内容: 由于某些奇怪的原因,我似乎无法将UTF-8数据添加到我的MySQL数据库中。输入非拉丁字符时,将其存储为?????。其他所有东西都存储良好。因此,例如,“ this is aexample®™”可以很好地存储,而“和英辞典”则存储为“ ????”。 连接网址很好: 正如您所料,我正在使用PreparedStatement,甚至有人尝试输入“ set names utf8”。 该表本身似

  • 问题内容: 在以下示例中,我有一些有关内存使用的相关问题。 如果我在解释器中运行, 我的机器上使用的实际内存最高为80.9mb。那我 实际内存下降,但仅限于。解释器使用基线,因此不向 释放内存有什么好处?是否因为Python正在“提前计划”,以为你可能会再次使用那么多的内存? 它为什么特别释放- 释放的量基于什么? 有没有一种方法可以强制Python释放所有已使用的内存(如果你知道不会再使用那么多

  • 本文向大家介绍解决Tensorflow 内存泄露问题,包括了解决Tensorflow 内存泄露问题的使用技巧和注意事项,需要的朋友参考一下 使用tensorflow进行编程时,经常遇到操作不当,带来的内存泄露问题,这里有一个可以帮助debug问题所在方法: https://stackoverflow.com/questions/51175837/tensorflow-runs-out-of-mem