gpt4 book ai didi

python - 如何防止我的 Colab notebook 在标准化我的图像时崩溃?

转载 作者:行者123 更新时间:2023-12-02 06:53:41 25 4
gpt4 key购买 nike

我正在尝试制作一个能够识别人类情绪的模型。我的代码和 RAM 一开始就很好:
RAM and DISK
但是当我尝试标准化我的图像时,RAM 急剧上升
jumped up RAM
然后 Colab 就崩溃了:
Crash msg 1
Crash msg 2
Crash msg 3

这是导致 colab 崩溃的代码块:

import os
import matplotlib.pyplot as plt
import cv2

data = []

for emot in os.listdir('./data/'):
for file_ in os.listdir(f'./data/{emot}'):
img = cv2.imread(f'./data/{emot}/{file_}', 0)
img = cv2.bitwise_not(img)
img /= 255.0 # <--- This is the line that causes colab to crash
data.append([img, emotions.index(emot)])

如果我删除 img/= 255.0,它不会崩溃,但是我有未规范化的图像!: Not crashed
我什至尝试在另一个 block 中对其进行规范化:

for i in range(len(data)):
data[i][0] = np.array(data[i][0]) / 255.0

但是它不工作并且仍然崩溃

最佳答案

我想举个例子。首先让我们看一下下面的代码。

import numpy as np
x = np.random.randint(0, 255, size=(100, 32, 32), dtype=np.int16)

print('Present data type', x.dtype)
# What you did
y = x/255
print('Present data type', y.dtype)
# What you should do
z = (x/255).astype(np.float16)
print('Present data type', z.dtype)

输出:

Present data type int16
Present data type float64
Present data type float16

如果你仔细观察,我正在划分 x变量和声明 y=x/255 , 数据类型变为 float64 .如果你划分一个 int NumPy 数组的数据类型,默认情况下,它被类型转换为 float64 .通常,'float64' 包含更大的内存。因此在划分 int 时类型 NumPy 矩阵,对于较大的数据集,应该始终将其转换为较短的数据类型。

如果您流畅地执行的代码没有 img /= 255.0 block ,那么是这样的。划分后,你应该类型转换 img尽可能低的变量float类型,例如 np.float16np.float32 .然而,np.float16有一些限制,TensorFlow 不完全支持它(TF 将其转换为 32 位 float ),您可以使用 np.float32数据类型。

因此,尝试添加 img.astype(np.float16)img.astype(np.float32)img /= 255.0 行之后.

给出修改后的代码,

import os
import matplotlib.pyplot as plt
import cv2

data = []

for emot in os.listdir('./data/'):
for file_ in os.listdir(f'./data/{emot}'):
img = cv2.imread(f'./data/{emot}/{file_}', 0)
img = cv2.bitwise_not(img)
img = (img/255.0).astype(np.float16) # <--- This is the suggestion
data.append([img, emotions.index(emot)])

关于python - 如何防止我的 Colab notebook 在标准化我的图像时崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62977311/

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