我使用以下命令编译了文件。
protoc object_detection/protos/*.proto --python_out=.
Run Code Online (Sandbox Code Playgroud)
结果编译成.py文件。
但是,我收到以下错误代码。
〜/ Documents / imgmlreport / inception / classification_inception / models / research / object_detection / utils / label_map_util.py在()中
20 import tensorflow as tf
21 from google.protobuf import text_format
---> 22 from object_detection.protos import string_int_label_map_pb2
23
24
ImportError: cannot import name 'string_int_label_map_pb2'
Run Code Online (Sandbox Code Playgroud)
所以我检查了utils,我已经有了一个string_int_label_map_pb2.py
为什么不能导入string_int_label_map_pb2.py?
我有一个带有 3bands 的 geotiff 图像。
band1,2 是实际图像值,band3 是实例角度值。
band1,2 是 float32 数据类型
下面的代码是我之前尝试过的。
但它不起作用。
我认为波段数据的范围太大,所以没有
from osgeo import gdal, osr, ogr
from PIL import Image
import numpy as np
ds = gdal.Open('image path', gdal.GA_ReadOnly)
rb = ds.GetRasterBand(1)
test = rb.ReadAsArray()
rb2 = ds.GetRasterBand(2)
test2 = rb2.ReadAsArray()
rb3 = ds.GetRasterBand(3)
test3 = rb3.ReadAsArray()
slice56 = test2
formatted = (slice56 * 255 / np.max(slice56)).astype('uint8')
img = Image.fromarray(formatted)
img.save('save image path')
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题??
我尝试像 while 循环一样跳过 for 循环中的几个步骤。
在 while 循环中,步骤根据特定条件进行调整,如下面的代码所示。
i = 0
while i <10:
if i == 3:
i = 5
else:
print(i)
i = i + 1
#result 0 1 2 6 7 8 9
Run Code Online (Sandbox Code Playgroud)
然而,我尝试以同样的方式调整for循环的步骤,但失败了。
for i in range(10):
if i == 3:
i = 5
else:
print(i)
#result 0 1 2 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud)
我不能直接在 for 循环中控制步骤“i”吗?
如果有办法,请告诉我,我将不胜感激。
我尝试在git url下的object_detection中进行train.py
https://github.com/tensorflow/models/tree/master/research/object_detection
但是,发生以下错误。
ModuleNotFoundError:没有名为“ object_detection”的模块
因此,我尝试通过编写以下代码来解决该问题。
import sys
sys.path.append('/home/user/Documents/imgmlreport/inception/models/research/object_detection')
from object_detection.builders import dataset_builder
Run Code Online (Sandbox Code Playgroud)
此问题尚未解决。
目录结构如下所示。
~/object_detection/train.py
~/object_detection/builders/dataset_bulider.py
Run Code Online (Sandbox Code Playgroud)
这是完整的错误按摩
/home/user/anaconda3/lib/python3.6/site-packages/h5py/ init .py:34:FutureWarning:不建议将issubdtype的第二个参数从
float转换np.floating为。将来,它将被视为
np.float64 == np.dtype(float).type。从._conv导入register_converters作为_register_converters追溯(最近一次通话):
导入培训器中的文件“ train.py”,第52行
来自object_detection.builders的文件“ /home/user/Documents/imgmlreport/inception/models/research/object_detection/trainer.py”,第26行,导入optimizer_builder
ModuleNotFoundError:没有名为“ object_detection”的模块
如何导入模块?
我正在使用代码读取tiff数据。
ds = 'path' , gdal.GA_ReadOnly)
Run Code Online (Sandbox Code Playgroud)
而且我找到了gdal API,却找不到阅读的乐队数量。
(例如)我有3个波段的图像,然后读取波段数并返回3(以防万一)
有什么办法找到乐队的数量吗?
我有以下数据集示例。
df_csv_y = pd.read_csv('y_factors.csv')
time value
0 736527.481944 27.20001
1 736527.482639 27.10001
2 736527.483333 27.10001
3 736527.484028 27.10001
4 736527.484722 27.10001
......
Run Code Online (Sandbox Code Playgroud)
我使用下面的代码尝试了索引。
df_csv_y[df_csv_y.time== 736527.482639]
Run Code Online (Sandbox Code Playgroud)
我索引了数据集中存在的值,但结果如下。
Empty DataFrame
Columns: [time, value]
Index: []
Run Code Online (Sandbox Code Playgroud)
检索整数时会得到结果,但无法检索上述数据集的time列之类的float数据。
我想知道如何解决这个问题。
我正在尝试使用学习的 .h5 文件进行预测。学习模型如下。
model =Sequential()
model.add(Dense(12, input_dim=3, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(4, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
Run Code Online (Sandbox Code Playgroud)
我把输入的形式写成如下。
x = np.array([[band1_input[input_cols_loop][input_rows_loop]],[band2_input[input_cols_loop][input_rows_loop]],[band3_input[input_cols_loop][input_rows_loop]]])
prediction_prob = model.predict(x)
Run Code Online (Sandbox Code Playgroud)
我认为形状是正确的,但出现了以下错误。
ValueError:检查时出错:预期dense_1_input 具有形状(3,) 但得到形状为(1,) 的数组
的形状x显然是(3,1),但上面的错误并没有消失(数据来自 csv 格式的文件(value 1, value 2, value 3, class))。
我怎么解决这个问题?
例如,我有以下csv数据集:
[1,2,3,4]
[3,5,2,5]
[,3,2,4]
Run Code Online (Sandbox Code Playgroud)
如您在上面的数据集中看到的,存在一个列表,其中包含无值。
在上述情况下,我想删除csv中具有None值的列表。
当我尝试时,我什至无法尝试擦除它,因为我无法读取空值。
请提出一种擦除方法。
这是我的尝试。
-在将xlsx数据放入名为data的变量之前。
while k < cols:
if data[i] != None:
with open('data.csv', 'a') as f:
writer = csv.writer(f)
writer.writerows(data)
f.close()
Run Code Online (Sandbox Code Playgroud) 我有以下数据框架.
ID Product quantity
9626 a 1
9626 b 1
9626 c 1
6600 f 1
6600 a 1
6600 d 1
Run Code Online (Sandbox Code Playgroud)
我希望通过ID加入行.以下是结果的示例.(数量列是可选的.此列不是必需的.)
ID Product quantity
9626 a,b,c 3
6600 a,d,f 3
Run Code Online (Sandbox Code Playgroud)
我使用了合并和求和,但它没有用.
这个问题只用循环语句解决了吗?
如果您能为我提供解决方案,我将不胜感激.