<｜begin▁of▁sentence｜>### Instruction:
Given a sample undirected graph G with edges [(1, 2), (2, 3), (3, 4), (4, 5), (5, 1), (3, 5)], can you use the node2vec_embed function from graspologic to generate a node embedding? The embedding should have a dimension of 64, use 10 random walks of length 40 per source node, utilize the interpolate walk lengths by node degree, and set the seed for reproducibility. After generating the embedding, print out its shape and the corresponding node labels.
### Response:
import networkx as nx
from graspologic.embed import node2vec_embed

# Create a sample undirected graph
G = nx.Graph()
G.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 5), (5, 1), (3, 5)])

# Generate the node2vec embedding
embedding, labels = node2vec_embed(
    graph=G,
    num_walks=10,
    walk_length=40,
    return_hyperparameter=1,
    inout_hyperparameter=1,
    dimensions=64,
    window_size=10,
    workers=4,
    iterations=5,
    interpolate_walk_lengths_by_node_degree=True,
    random_seed=42
)

print('Embedding shape:', embedding.shape)
print('Node labels:', labels)
<|EOT|>
