We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hi, this is a very thankful job, u done. I tried to play with it, but some error occurs.
In baseline.py, when reached the notebook section [35] the following error occurs: TypeError: object of type 'generator' has no len()
Conda installed python is 3.11 instead given in Dockerfile ortools==8.2.8710 isn't installable
In every case of calling ortools 'cp_model.LinearExpr.Sum' function it returns this error.
Can You help to solve this?
Thanks
[35] bl_bin_pool = main.main(bl_order, procedure="bl", tlim=20) bl_bin_pool.get_original_layer_pool().to_dataframe() 2023-09-11 09:29:04.210 | INFO | baseline:baseline:165 - Solving baseline model 2023-09-11 09:29:04.201 | INFO | main:main:169 - BL procedure starting 2023-09-11 09:29:04.202 | INFO | main:main:179 - BL iteration 1/1 2023-09-11 09:29:04.205 | DEBUG | superitems:_gen_single_items_superitems:639 - Generated 20 superitems with a single item 2023-09-11 09:29:04.205 | INFO | superitems:gen_superitems:623 - Generating horizontal superitems of type 'two-width' 2023-09-11 09:29:04.206 | DEBUG | superitems:_gen_superitems_horizontal:685 - Generated 0 horizontal superitems with 2 items 2023-09-11 09:29:04.207 | DEBUG | superitems:_gen_superitems_horizontal:692 - Generated 0 horizontal superitems with 4 items 2023-09-11 09:29:04.207 | INFO | superitems:gen_superitems:626 - Generating vertical superitems with maximum stacking of 4 2023-09-11 09:29:04.208 | DEBUG | superitems:_gen_superitems_vertical:770 - Generated 15 wide vertical superitems 2023-09-11 09:29:04.209 | DEBUG | superitems:_gen_superitems_vertical:772 - Generated 0 deep vertical superitems 2023-09-11 09:29:04.209 | INFO | superitems:gen_superitems:628 - Generated 35 superitems 2023-09-11 09:29:04.209 | INFO | superitems:gen_superitems:630 - Remaining superitems after filtering by pallet dimensions: 35 2023-09-11 09:29:04.210 | INFO | baseline:baseline:165 - Solving baseline model --------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[35], line 1 ----> 1 bl_bin_pool = main.main(bl_order, procedure="bl", tlim=20) 2 bl_bin_pool.get_original_layer_pool().to_dataframe() File ~/work/src/main.py:194, in main(order, procedure, max_iters, superitems_horizontal, superitems_horizontal_type, superitems_max_vstacked, density_tol, filtering_two_dims, filtering_max_coverage_all, filtering_max_coverage_single, tlim, enable_solver_output, height_tol, cg_use_height_groups, cg_mr_warm_start, cg_max_iters, cg_max_stag_iters, cg_sp_mr, cg_sp_np_type, cg_sp_p_type, cg_return_only_last) 192 # Call the right packing procedure 193 if procedure == "bl": --> 194 layer_pool = baseline.baseline(superitems_pool, config.PALLET_DIMS, tlim=tlim) 195 elif procedure == "mr": 196 layer_pool = maxrects_warm_start( 197 superitems_pool, height_tol=height_tol, density_tol=density_tol, add_single=False 198 ) File ~/work/src/baseline.py:166, in baseline(superitems_pool, pallet_dims, tlim, num_workers) 164 # Call the baseline model 165 logger.info("Solving baseline model") --> 166 sol, solve_time = baseline_model( 167 fsi, ws, ds, hs, pallet_dims, tlim=tlim, num_workers=num_workers 168 ) 169 logger.info(f"Solved baseline model in {solve_time:.2f} seconds") 171 # Build the layer pool from the model's solution File ~/work/src/baseline.py:62, in baseline_model(fsi, ws, ds, hs, pallet_dims, tlim, num_workers) 58 # Constraints 59 # Ensure that every item is included in exactly one layer 60 for i in range(n_items): 61 model.Add( ---> 62 cp_model.LinearExpr.Sum( 63 fsi[s, i] * zsl[s, l] for s in range(n_superitems) for l in range(max_layers) 64 ) 65 == 1 66 ) 68 # Define the height of layer l 69 for l in range(max_layers): File /opt/conda/lib/python3.11/site-packages/ortools/sat/python/cp_model.py:183, in LinearExpr.Sum(cls, expressions) 180 @classmethod 181 def Sum(cls, expressions): 182 """Creates the expression sum(expressions).""" --> 183 if len(expressions) == 1: 184 return expressions[0] 185 return _SumArray(expressions) TypeError: object of type 'generator' has no len()
I tried to convert it to a docker container with the following params:
The Dockerfile:
FROM jupyter/base-notebook # Name your environment and choose the python version ARG env_name=python3.9.6 ARG py_ver=3.9.6 COPY --chown=${NB_UID}:${NB_GID} /init/requirements.txt /tmp/ COPY --chown=${NB_UID}:${NB_GID} /init/environment.yml /tmp/ RUN mamba env create -p "${CONDA_DIR}/envs/${env_name}" -f /tmp/environment.yml && \ mamba clean --all -f -y # Create Python kernel and link it to jupyter RUN "${CONDA_DIR}/envs/${env_name}/bin/python" -m ipykernel install --user --name="${env_name}" && \ fix-permissions "${CONDA_DIR}" && \ fix-permissions "/home/${NB_USER}" RUN "${CONDA_DIR}/envs/${env_name}/bin/pip" install --no-cache-dir \ 'flake8' USER root RUN apt update -y RUN apt install git -y RUN pip install --no-cache-dir -r /tmp/requirements.txt #USER ${NB_UID} RUN pip install git+https://github.com/IsaGrue/nb_black.git USER root RUN activate_custom_env_script=/usr/local/bin/before-notebook.d/activate_custom_env.sh && \ echo "#!/bin/bash" > ${activate_custom_env_script} && \ echo "eval \"$(conda shell.bash activate "${env_name}")\"" >> ${activate_custom_env_script} && \ chmod +x ${activate_custom_env_script} USER ${NB_UID} RUN echo "conda activate ${env_name}" >> "${HOME}/.bashrc"
The docker-compose.yaml
version: "3" services: app: container_name: 3dp-packing build: context: . dockerfile: ./Dockerfile # command: flask --app ./src/hello --debug run --host=0.0.0.0 --port=8080 image: 3dp-packing:latest volumes: - ${PWD}/work:/home/jovyan/work ports: - 8888:8888 - 8787:8787
requirements.txt
numpy pandas ortools==9.5.2237 matplotlib ipympl==0.7.0 rectpack tqdm==4.60.0 scipy seaborn streamlit==1.8.1 watchdogs==1.8.2 loguru==0.5.3
environment.yaml
name: 3d-bpp channels: - conda-forge - defaults dependencies: - black==21.7b0 - loguru==0.5.3 - matplotlib==3.4.2 - nb_black==1.0.7 - numpy - pandas - pip==21.2.1 - python==3.9.6 - seaborn==0.11.2 - tqdm==4.61.2 - streamlit==0.85.1 - pip: - ortools==9.5.2237 - rectpack==0.2.2
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Hi,
this is a very thankful job, u done.
I tried to play with it, but some error occurs.
In baseline.py, when reached the notebook section [35] the following error occurs: TypeError: object of type 'generator' has no len()
In every case of calling ortools 'cp_model.LinearExpr.Sum' function it returns this error.
Can You help to solve this?
Thanks
Related info
I tried to convert it to a docker container with the following params:
The Dockerfile:
The docker-compose.yaml
requirements.txt
environment.yaml
The text was updated successfully, but these errors were encountered: