Project dependencies may have API risk issues
PyDeps opened this issue · comments
Hi, In nerfies, inappropriate dependency versioning constraints can cause risks.
Below are the dependencies and version constraints that the project is using
absl-py==0.13.0
flax==0.3.4
gin-config@git+https://github.com/google/gin-config@243ba87b3fcfeb2efb4a920b8f19679b61a6f0dc
imageio==2.9.0
immutabledict==2.2.0
jax==0.2.20
numpy==1.19.5
opencv-python==4.5.3.56
Pillow==8.3.2
scikit-image==0.18.3
scipy==1.7.1
tensorboard==2.6.0
tensorflow>=2.6.1
The version constraint == will introduce the risk of dependency conflicts because the scope of dependencies is too strict.
The version constraint No Upper Bound and * will introduce the risk of the missing API Error because the latest version of the dependencies may remove some APIs.
After further analysis, in this project,
The version constraint of dependency absl-py can be changed to >=0.3.0,<=1.1.0.
The version constraint of dependency flax can be changed to >=0.2.1,<=0.5.3.
The version constraint of dependency gin-config can be changed to ==0.5.0.
The version constraint of dependency numpy can be changed to >=1.8.0,<=1.23.0rc3.
The version constraint of dependency Pillow can be changed to ==9.2.0.
The version constraint of dependency Pillow can be changed to >=2.0.0,<=9.1.1.
The version constraint of dependency scipy can be changed to >=1.2.0rc1,<=1.5.4.
The above modification suggestions can reduce the dependency conflicts as much as possible,
and introduce the latest version as much as possible without calling Error in the projects.
The invocation of the current project includes all the following methods.
The calling methods from the absl-py
absl.logging.log_every_n_seconds
The calling methods from the flax
flax.training.checkpoints.restore_checkpoint flax.linen.Embed flax.linen.vmap flax.linen.Dense flax.training.checkpoints.save_checkpoint flax.optim.Adam flax.linen.sigmoid
The calling methods from the gin-config
gin.config.markdown
The calling methods from the numpy
numpy.linalg.norm
The calling methods from the Pillow
PIL.Image.fromarray
The calling methods from the scipy
scipy.spatial.transform.Rotation.from_dcm scipy.interpolate.interp1d scipy.spatial.transform.Slerp
The calling methods from the all methods
jax.numpy.argmax jax.tree_multimap.items self.point3D_id_to_point3D_idx.items MLP self.output_activation gin.config.external_configurable set.discard cv2.CVX_64F.gray.cv2.Laplacian.var v_warp_field_cls self.appearance_encoder load_image nerfies.image_utils.rescale_image self.rng.permutation nerfies.models.construct_nerf os.path.join point3D_id.self.point3D_id_to_images.tobytes jax.numpy.stack setuptools.setup process_iterator self.images.iterkeys super.__init__ jax.numpy.trace im nerfies.image_utils.save_image points.reshape.reshape item_ids.self.rng.permutation.tolist FileExistsError _compute_loss_and_stats jax.numpy.clip rgb_mlp nerfies.utils.TimeTracker numpy.any numpy.asarray.min c.reshape.reshape point3D_idx.self.point3D_errors.tobytes numpy.squeeze jac_fn self.glo_encoder self.exists tensorflow.io.gfile.makedirs collections.defaultdict AnnealedSinusoidalEncoder jax.nn.initializers.glorot_uniform jax.jacfwd from_config nerfies.gpath.GPath.exists f.readline.strip flax.metrics.tensorboard.SummaryWriter.image self._create_preloaded_dataset d.pop.SCHEDULE_MAP tensorflow.io.gfile.GFile join tensorflow.io.gfile.listdir q.q.copy flax.optim.Adam.create jax.numpy.min self.radial_distortion.copy numpy.uint16.a.astype.clip.astype super camera.get_camera_matrix SinusoidalEncoder scipy.interpolate.interp1d path.suffix.lstrip sorted model.apply state.replace dataset.shuffle.map self.load_points3D nerfies.rigid_body.to_homogenous DualQuaternion compute_opaqueness_mask.astype expm1_safe nerfies.gpath.GPath.open tensorflow.shape self.save_points3D optimizer.apply_gradient positions.append self.embed cs absl.app.run jax.numpy.block jax.tree_util.tree_map Camera self.get_parameters.items numpy.cos v.mean flax.jax_utils.prefetch_to_device process_batch self.posenc dense COLMAPDatabase.connect.add_matches tensorflow.broadcast_to self.load_camera.scale iterator_from_dataset jax.numpy.zeros_like cond_2 jax.value_and_grad summary_dir.mkdir jax.vmap collections.OrderedDict jax.device_get numpy.mean nerfies.utils.tree_collate.items jax.lax.pmean checkpoint_dir.mkdir flax.metrics.tensorboard.SummaryWriter.scalar scipy.optimize.root absl.logging.warning self.image_path.endswith jax.random.split rgb.rgb_target.sum nerfies.datasets.iterator_from_dataset self.get_camera_matrix jax.numpy.diag nerfies.utils.strided_subset nerfies.rigid_body.exp_se3 self.point3D_id_to_point3D_idx.get jax.numpy.broadcast_to image.q.q.tobytes self.update isinstance executor.map array_to_string self.distortion_func nerfies.datasets.from_config.create_cameras_dataset self.warp_field rp_to_se3 len flax.jax_utils.unreplicate numpy.atleast_2d.dot tensorflow.io.gfile.glob flax.jax_utils.replicate compute_depth_map tuple dataset.shuffle.repeat scipy.spatial.transform.Rotation.from_dcm height.scale_factor.is_integer base nerfies.gpath.GPath nerfies.utils.shard numpy.random.RandomState self.appearance_ids.index jax.numpy.expand_dims numpy.uint32.data.np.array.reshape cross_prod_matrix jax.numpy.cos extra.get jax.random.normal tr_positive jax.numpy.exp self.cameras.items RuntimeError f.read.iter.c.c.join.decode self._meters.items jax.lax.stop_gradient nerfies.modules.NerfMLP tensorflow.python.data.util.nest.flatten_up_to nerfies.datasets.from_config.load_points jax.numpy.greater_equal self._save_cameras_txt self.metadata_encoder flax.linen.initializers.xavier_uniform jax.numpy.dot cross_prod_matrix.dot jax.numpy.searchsorted list metadata_path.exists tensorflow.linalg.matvec nerfies.datasets.nerfies.NerfiesDataSource self.points_encoder nerfies.configs.EvalConfig value.reshape time.time self.encode_metadata self.summary renders_dir.mkdir jax.numpy.pad enumerate self.load_camera.get_pixel_centers tensorflow.experimental.numpy.zeros_like float os.path.exists trunk_mlp jax.numpy.eye checkpoint_dir.exists nerfies.utils.TimeTracker.summary self.get_item model.create_warp_field.apply self.q0.q.dot absl.flags.DEFINE_multi_string numpy.sqrt list.discard hasattr format jax.numpy.log numpy.random.seed PIL.Image.fromarray.astype camera.pixels_to_rays.astype image.Image jax.numpy.full PIL.Image.fromarray.save flax.metrics.tensorboard.SummaryWriter delete_old_renders self.copy learning_rate_sched min numpy.full depth_exp.depth_target.abs.squeeze self.q0.norm tensorflow.cast matplotlib.colors.LinearSegmentedColormap.from_list ValueError self.point3D_id_to_point3D_idx.values out_cameras.append jax.process_count dataset.shuffle.batch PIL.Image.fromarray x.shape.xu.reshape.self.self.distortion_func.x.ravel tensorflow.range numpy.tile camera_dir.exists numpy.square self.tangential_distortion.copy nerfies.camera.Camera.from_json collections.defaultdict.items image_to_float32 _build_colormap line.strip copy.copy.pop fh.read base_encoder self.ToR nerfies.model_utils.vmap_module self.load_images self.norm jax.numpy.mean jax.numpy.cumsum numpy.empty nerfies.tf_camera.TFCamera reshape_image Quaternion.FromR self.q.ToR nerfies.utils.jacobian_to_curl self.cosine_easing_window nerfies.utils.TimeTracker.tic jax.config.parse_flags_with_absl dict.pop writer.histogram nerfies.datasets.from_config.load_test_cameras os.makedirs IOError nerfies.model_utils.compute_depth_index self.get_warp_id Quaternion jax.numpy.sort nerfies.image_utils.save_depth downsample_image iter nerfies.schedules.from_config tensorflow.python.data.util.nest.flatten gin.config.markdown self.GetNameFromType x.objective.root.x.reshape.reshape model.create_warp_field jax.numpy.divide COLMAPDatabase.connect.add_keypoints meter.reduce COLMAPDatabase.connect.add_camera numpy.zeros f.read out_times.slerp.as_dcm numpy.where tensorflow.experimental.numpy.stack point3D_idx.self.points3D.tobytes nerfies.model_utils.TrainState complex conjugate yd.copy self.executescript numpy.rec.fromarrays jax.nn.softplus numpy.kron from_tuple jax.numpy.clip.reshape nerfies.utils.unshard set self.warp_ids.index _load_dataset_ids numpy.random.randint jax.numpy.split tensorflow.experimental.numpy.where flax.linen.Embed UINT8_MAX.UINT8_MAX.image.clip.astype cond_idx flax.linen.vmap rays_dir.reshape.reshape jax.numpy.eye.jtj.sum struct.Struct UINT16_MAX.image.clip nerfies.utils.TimeTracker.record_time nerfies.model_utils.sample_along_rays self._save_cameras_bin jax.numpy.where state.replace.replace numpy.asarray.copy range copy.copy ret_maps.append jax.random.choice jax.numpy.array numpy.array numpy.asarray.max self.base_schedule self.trunk tensorflow.io.gfile.rmtree self.get_time_id numpy.ascontiguousarray metadata_path.open nerfies.configs.ExperimentConfig numpy.cross self._load_images_txt abs rotations.append self.load_camera numpy.linalg.norm jax.local_devices numpy.expand_dims scalar_params.replace.replace nerfies.visualization.colorize image.tvec.tobytes imageio.imread NerfModel.init any rgb.weights.sum numpy.argmax self._load_points3D_txt tqdm.tqdm render_fn nerfies.glo.GloEncoder math.ceil flax.linen.initializers.uniform jax.numpy.concatenate alpha_mlp log1p_safe dataset.shuffle.unbatch tensorflow.io.gfile.mkdir ref_camera.copy jax.numpy.sqrt key.self._meters.update issubclass self.R cv2.Laplacian x.reshape nerfies.training.save_checkpoint tensorflow.TensorSpec qsq.sum v_elastic_fn numpy.concatenate._numpy tensorflow.experimental.numpy.abs nerfies.configs.TrainConfig colormap numpy.zeros_like camera.Camera tensorflow.experimental.numpy.array numpy.uint64 self.points3D.append numpy.std jax.tree_multimap json.load flax.linen.Dense jax.tree_util.tree_multimap self._get_item_signature self.get_appearance_id self.camera_encoder line.startswith nerfies.gpath.GPath.glob numpy.atleast_2d self.folder.endswith rotation.Quaternion cv2.imdecode jax.jit colorize_depth self.save_images numpy.allclose sqlite3.connect self.principal_point.copy dict self._create_lazy_dataset jax.numpy.squeeze self.mlp absl.logging.info xs.interp.astype numpy.stack.reshape self.point3D_ids.append cond_1 self.R.T.dot width.scale_factor.is_integer jax.numpy.expm1 self._save_images_txt COLMAPDatabase.connect normalize immutabledict.immutabledict numpy.eye jax.numpy.linspace i.decode numpy.take background_loss.mean.mean self.make_rng self.point3D_id_to_images.items GPath nerfies.modules.AnnealedSinusoidalEncoder self.load_depth rgb_mlp.reshape self.sigma_activation numpy.sin load_scene_info safe_norm flax.training.checkpoints.restore_checkpoint next self.trunk_width.dense f.write self.__mul__ _log_to_tensorboard image.point3D_ids.astype _radial_and_tangential_undistort reduction.self.summary.items nearest_rotation_svd absl.flags.mark_flag_as_required alpha_mlp.reshape warp_alpha_sched self.COLMAPDatabase.super.__init__ exit dtype.blob.np.frombuffer.reshape inv_scale.is_integer nerfies.image_utils.image_to_uint8 get_colormap self.data_dir.open self.load_camera.pixels_to_rays numpy.max jax.numpy.sin nerfies.model_utils.volumetric_rendering re nerfies.datasets.core.load_camera absl.flags.DEFINE_string renders_dir.exists zip _camera_to_rays_fn jax.numpy.maximum spline camera.get_params.tobytes multiply tensorflow.stack flax.linen.sigmoid numpy.arctan2 self._meters.values self.pixels_to_rays jax.local_device_count nerfies.datasets.from_config.create_iterator tensorflow.data.Dataset.from_generator camera.get_params R.Quaternion.FromR.ToAxisAngle jax.numpy.linalg.norm numpy.getbuffer jax.device_count elastic_loss_weight_sched elastic_loss.sum.mean save_image struct.Struct.pack array_to_blob tensorflow.image.ssim_multiscale self.load_camera.get_parameters u.dot branch.stats.items self._load_cameras_txt v.reduce.values struct.unpack nerfies.rigid_body.from_homogenous jax.numpy.linalg.svd jax.numpy.ones k.meters.update item_id.replace.replace jax.numpy.take_along_axis stats.items bytearray nerfies.training.ScalarParams jax.numpy.reshape.flatten point3D_idx.self.point3D_colors.tobytes jax.pmap flax.optim.Adam path.rmtree jax.numpy.reshape self.load_cameras cond_3 Exception numpy.floor round time_dict.items nerfies.utils.TimeTracker.toc tensorflow.convert_to_tensor minmax str self.camera_ids.index jax.process_indexs camera.get_parameters.get _compute_residual_and_jacobian numpy.clip v.reduce scale_values jax.numpy.tile self._values.clear inv_softplus out.update numpy.tile.astype jax.numpy.nanmean gin.parse_config_files_and_bindings numpy.square.sum jax.numpy.ones_like norm _load_image line.split item.pop self._save_points3D_bin self.get_parameters numpy.arange numpy.concatenate interp z_vals.weights.sum self.load_colmap_project_file self.points_to_local_points jax.numpy.max compute_multiscale_ssim set.isdisjoint logit elastic_loss.sum.mean.sum nerfies.datasets.from_config float.is_integer numpy.uint16.a.astype.clip copy.deepcopy time_alpha_sched upsample_image numpy.broadcast_to jax.process_index tensorflow.python.data.util.nest.pack_sequence_as tensorflow.numpy_function self._load_cameras_bin _norm camera.get_pixel_centers.astype numpy.uint16.a.astype.clip.clip self.create_warp_field self.hidden_activation get_image_ids_from_pair_id jax.numpy.power exp_so3 flax.training.checkpoints.save_checkpoint scipy.interpolate.CubicSpline self.save_cameras level.self.nerf_mlps jax.numpy.sum safe_acos functools.partial weights.sum numpy.asarray.ravel map layer jax.numpy.nanmedian tensorflow.io.gfile.isdir jax.numpy.cumprod NotImplementedError v.tolist max points.astype.astype image.np.asarray.astype numpy.linspace numpy.ones_like numpy.asarray nerfies.modules.MLP self.q.dot tensorflow.meshgrid self.getT camera.Camera.GetNumParams jax.numpy.cross self.point3D_errors.append numpy.load numpy.arcsin camera_dir.glob nerfies.camera.Camera numpy.min numpy.random.rand numpy.stack nerfies.model_utils.noise_regularize process_batch.items nerfies.utils.tree_collate summary_dir.exists jax.numpy.log1p COLMAPDatabase.connect.add_image tensorflow.experimental.numpy.sum rgb.rgb_target.abs.sum interpolate_colormap int nerfies.configs.ModelConfig setuptools.find_packages self.load_rgb jax.numpy.arccos jax.numpy.linalg.det numpy.trace blob_to_array tensorflow.data.Dataset.from_tensor_slices self.render_samples nerfies.gpath.GPath.mkdir jax.tree_map jax.numpy.logical_xor tensorflow.experimental.numpy.sqrt numpy.identity compute_background_loss self.point3D_valid tensorflow.dtypes.as_dtype image.q.ToR tensorflow.io.gfile.exists nerfies.utils.jacobian_to_div nerfies.modules.SinusoidalEncoder.model_utils.vmap_module tensorflow.experimental.numpy.ones_like self.position.copy self.get_condition_inputs cls numpy.prod jax.devices numpy.float64 f.readline numpy.radians self.get_time gin.configurable self.branches losses.values self._load_images_bin jax.numpy.zeros ptrain_step os.remove absl.logging.log_every_n_seconds matplotlib.cm.get_cmap meter.reset self.get_camera_id self.images.items nerfies.utils.parallel_map skew grad_fn jax.lax.all_gather compute_opaqueness_mask self.get_inverse_camera_matrix from_dict nerfies.utils.TimeTracker.reset numpy.rec.fromarrays.tobytes time.sleep COLMAPDatabase.connect.initialize_tables math.cos self.warp numpy.concatenate.reshape numpy.uint16.b.astype.clip image_to_uint16 points3D.dot.dot itertools.combinations piecewise_constant_pdf self.time_encoder writer.scalar self.point3D_colors.append type self.viewdir_encoder self.q0.dot depth_med.depth_target.abs.squeeze logit_layer jax.nn.sigmoid jax.numpy.finfo nerfies.modules.TimeEncoder render_dir.iterdir jax.numpy.concatenate.append xd.copy gin.operative_config_str self.images.values self._save_points3D_txt self.get concurrent.futures.ThreadPoolExecutor jax.numpy.abs nerfies.model_utils.sample_pdf jax.random.uniform numpy.abs x.np.square.sum nerfies.utils.general_loss_with_squared_residual nerfies.utils.TimeTracker.summary_str nerfies.warping.create_warp_field broadcast_condition data.np.uint32.map.list.np.array.reshape self.create_dataset itertools.chain batch.rgb.mean numpy.ones self._save_images_bin jax.numpy.asarray fid.seek numpy.all xs.cs.astype self._values.append self.point_encoder ret_t.set_shape jax.numpy.minimum jax.random.PRNGKey functools.lru_cache jax.numpy.full_like print scalar_params.warp_reg_loss_scale.scalar_params.warp_reg_loss_alpha.warp_reg_residual.utils.general_loss_with_squared_residual.mean numpy.matmul cv2.resize numpy.uint16.b.astype.clip.astype numpy.reshape numpy.savetxt UINT16_MAX.UINT16_MAX.image.clip.astype numpy.finfo struct.pack numpy.frombuffer UINT8_MAX.image.clip model_fn dataset.shuffle.shuffle cv2.cvtColor open q0.dot self._load_points3D_bin self.load_camera.copy COLMAPDatabase.connect.close self.pixel_to_local_rays _log_histograms sum COLMAPDatabase.connect.execute tensorflow.config.experimental.set_visible_devices model_out.model_out.sum numpy.meshgrid x.objective.root.x.reshape fid.write slerp batch.model_out.mean absl.flags.DEFINE_enum scipy.spatial.transform.Slerp flax.metrics.tensorboard.SummaryWriter.text get_pair_id NerfModel self.orientation.copy save_dir.mkdir nerfies.utils.compute_psnr schedule.get
@developer
Could please help me check this issue?
May I pull a request to fix it?
Thank you very much.
could you please share actual working jax, jaxlib version?